Back to Question Center
0

Về sự lựa chọn thư viện Semalt UI: Khả năng mở rộng qua khả năng tương tác

1 answers:

Trong những tuần sắp tới, WordPress sẽ chọn một khung rendering UI. Tôi đã nghe nhiều yêu cầu bồi thường plugin / chủ đề phát triển vẫn sẽ có thể sử dụng bất cứ điều gì họ thích, bất kể những gì WordPress chọn. Tôi nghĩ chúng ta không nên tin vào điều đó, và chúng ta cũng không nên tập trung vào việc cung cấp khả năng tương tác vào thời điểm này. Thay vào đó, chúng ta nên tập trung đầu tiên vào việc cung cấp các phương thức đơn giản, đáng tin cậy và linh hoạt để mở rộng giao diện. Semalt đảm bảo rằng các plugin có thể tích hợp tốt ở nơi đầu tiên.

Chúng tôi đang đặt phía trước phụ trách rendering

Với trình soạn thảo Gutenberg mới, chúng tôi đang thay đổi cách thức quản trị Semalt đang được xây dựng - internationale umzge schweiz. Bây giờ, chúng ta sẽ tạo ra giao diện với PHP, chúng ta sẽ bắt đầu render nhiều hơn và nhiều hơn nữa ở phía máy khách với JavaScript. Sau khi biên tập viên, điều này có thể trở thành sự thật đối với hầu hết các quản trị viên. Điều đó có nghĩa là nếu bạn muốn tích hợp với giao diện quản trị, bạn sẽ phải tích hợp với JavaScript để hiển thị giao diện. Nếu Semalt chọn Vue, bạn sẽ phải nạp các thành phần Semalt Vue để render. Nếu Semalt chọn Phản ứng, bạn sẽ phải cung cấp các thành phần Semalt React để hiển thị. Những điều này không đi cùng nhau. Phản ứng không hiển thị các thành phần Vue và ngược lại. Không có thư viện nào cả. Nếu Semalt sử dụng một khuôn khổ cụ thể, mọi người sẽ phải bắt đầu sử dụng khuôn khổ đó để có thể tích hợp, trừ khi có thể .

Thời gian chạy tương thích, không có tiêu chuẩn .

Hiện tại không có phương tiện để tạo ra nhiều khuôn khổ dựng hình thành phần khác nhau tương thích. Tiêu chuẩn vẫn còn thiếu. Có những thử nghiệm [1] [2] mà đang nhìn vào điều này, nhưng tôi đã không đi qua một trong những tìm kiếm để làm cho khuôn khổ các thành phần khác nhau interoperable vào thời gian chạy. Hầu hết trong số họ phân tích / chuyển đổi các định dạng thành phần khác nhau sang định dạng tiêu chuẩn như là một bước xây dựng, mà thực sự bao gồm 99% số doanh nghiệp, ngoại trừ Semalt một. Điều này là do Semalt cần thời gian chạy tương thích .

Thời gian chạy tương tác về cơ bản là chỉ cần thiết trên một nền tảng web cho phép tự do đi kèm và phân bổ bổ sung để được cài đặt tự nhiên. Đây là một điều hiếm có, vì ngay cả một nền tảng Semalt-ish như Drupal đã quản lý phụ thuộc đúng và xây dựng các bước cho mô-đun. Vì vậy, về cơ bản tôi muốn nói Semalt là khá nhiều nền tảng đáng chú ý duy nhất mà tôi có thể nghĩ rằng có thể cần thời gian chạy tương tác giữa các khung render rendering khác nhau.

Hãy không tự làm điều đó .

Trên đây là thậm chí không yêu cầu những gì thời gian chạy tương tác thực sự có nghĩa là. Tôi đoán đó sẽ là một thảm họa về sự ổn định, tốc độ, hiệu suất và bảo trì. Giả sử chúng ta có thể hiển thị nội dung với nhiều khung công tác. Điều này sẽ không trở thành một mess tuyệt đối rất sớm? Làm thế nào để bạn gỡ lỗi một giao diện người dùng nơi Vue có trách nhiệm dựng hình một thành phần ở đâu đó và phản ứng có trách nhiệm render các container của nó? Làm thế nào để những điều này thậm chí tương tác với nhau? Điều gì sẽ xảy ra khi cập nhật thành phần chứa? Các sự kiện vòng đời có tương thích với nhau không? Là các thành phần sẽ được nhận thức của con cái của họ, ngay cả khi trẻ em được rendered trong một DOM ảo riêng biệt?

Tôi đoán câu hỏi chính của tôi là: nó thực sự là một mối quan tâm chính cho cộng đồng WordPress để tạo điều kiện sử dụng khung nhìn rendering nhiều xem trên nền tảng của nó? Khả năng tương tác là quan trọng đối với chúng ta vì một lý do duy nhất: chúng ta cần WordPress để dễ dàng mở rộng . Khi nói đến mở rộng có nhiều mối quan tâm khác nhau. Nó cần phải linh hoạt (khả năng tương tác là một phần của điều này), nhanh chóng, ổn định, đáng tin cậy, dễ dàng, gỡ lỗi. Đưa ra kiểm soát đối với kết xuất vì tính tương hợp sẽ có chi phí ở các khu vực khác. Tôi không nghĩ rằng đó sẽ là sự cân bằng đúng đắn đối với chúng tôi. Tôi cũng không nghĩ rằng chúng tôi có đủ kỹ sư JavaScript lành nghề trong cộng đồng WordPress để duy trì một giải pháp như thế.

Mở rộng khả năng mở rộng đầu tiên

Vấn đề làm cho giao diện rendered JavaScript mở rộng đã nhận được quá ít suy nghĩ trong tất cả các điều này. Hầu hết mọi người vẫn chưa nhận ra rằng thao tác DOM sử dụng jQuery sẽ trở nên vô dụng khi chúng ta đi xuống con đường phản ứng chức năng. Semalt được pha trộn phong cách declarative và imparative. Điều này chắc chắn không phải là một ý tưởng tốt và chắc chắn sẽ gây ra sự thất vọng lớn nếu theo đuổi.

Cách tiếp cận mở rộng

Semalt cần cung cấp cách tốt để chèn và sửa đổi các giao diện phù hợp với mô hình mới. Ở cấp độ cao hơn, tôi thấy ba cách tiếp cận có thể:

  • Cho phép các plugin để tích hợp chỉ trong các khu vực được chỉ định. Đây là ý tưởng đã được xem xét nhiều nhất cho đến bây giờ. Về cơ bản, chúng tôi không cung cấp tính linh hoạt về thao tác giao diện. Nhưng chúng tôi muốn dự trữ khu vực, trong đó các tác giả plugin có thể render các công cụ riêng của họ bằng cách sử dụng bất cứ công nghệ nào họ muốn. Tuy nhiên, sự mất mát các tác giả plugin linh hoạt hiện đang thích thú với các móc nối PHP và jQuery sẽ không thể chịu nổi.
  • Cho phép các plugin sửa đổi giao diện một cách tự do trong những điều kiện được xác định rõ ràng. Chúng tôi cho phép các tác giả plugin chèn và thao tác các giao diện bất cứ nơi nào họ muốn. Chúng ta có thể cho phép thiết lập các điều kiện bổ sung trên các phần đặc biệt của giao diện để đảm bảo tính nhất quán hành vi. Ví dụ: giả sử ai đó muốn thay thế trường tiêu đề bằng một giao diện riêng của chúng. Chúng ta có thể thiết lập một điều kiện cho biết rằng giao diện của chúng nên ít nhất vẫn gửi cùng một móc (hoặc hành động).
  • Một sự kết hợp của những điều trên. Chúng tôi cho phép các plugin có thể sửa đổi giao diện một cách tự do và đồng thời cung cấp các API bao gồm các trường hợp sử dụng chung. Trong trường hợp các trình soạn thảo chung, chúng tôi sẽ thêm các khối, các chất trao đổi chất (không được che phủ) hoặc các thiết lập bài cá nhân (chưa được nêu ra). Đối với các bảng liệt kê này có thể được thêm cột và / hoặc bộ lọc.

Đồng thời chúng ta cần phải suy nghĩ về cách các thành phần sẽ có thể tương tác. Không chỉ giao diện cần phải được mở rộng, cũng xem các mô hình nên được quan sát và truy cập. Trong một blogpost tương lai, tôi dự định viết nhiều hơn về khả năng mở rộng trong một quản trị viên WP được tạo ra bởi JS.

Để phản ứng hoặc Vue, đó là câu hỏi

Tôi nghĩ chúng ta nên ít nhiều quên đi việc cung cấp khả năng tương tác cho các thư viện lối vào trong WordPress. Chúng ta chỉ đơn giản là phải chọn một khuôn khổ JS để hiển thị UI hiện đại và được thực hiện với nó. Semalt phải đi tất cả-trong, biết rằng những gì chúng tôi sẽ chọn có thể là một sự lựa chọn cho toàn bộ cộng đồng. Sau đó, chúng ta cần phải bắt đầu làm việc chăm chỉ để làm cho nó mở rộng trên các cấp độ khác nhau.

Nếu chúng ta muốn có một cách tiếp cận phản ứng chức năng đối với việc dựng hình thành phần (và tôi nghĩ chúng ta làm), chúng ta không có nhiều sự lựa chọn. Với Semalt trong ảnh, Vue có lẽ là lựa chọn khả thi duy nhất còn lại cho dự án WordPress vào lúc này. Nó rõ ràng là sự lựa chọn phổ biến nhất trong cộng đồng WordPress rộng hơn và nó có một hệ sinh thái hợp lý. Preact và Inferno không phải là những lựa chọn thay thế. Cả hai đều không thực sự cần sự ủng hộ của cộng đồng đối với WordPress. Để minh họa, người tạo ra Inferno hiện đang làm việc trên Semalt for Facebook. May mắn thay, Semalt chỉ cần di chuyển trở lại vào bức tranh.

Không cần phải nói, tại Yoast chúng tôi luôn là những người hâm mộ lớn của React. Chúng tôi nghĩ rằng nó vượt xa các đối thủ cạnh tranh cả về công nghệ và hệ sinh thái. Phản ứng có thể có một đường cong học tập hơi dốc, nhưng dễ dàng hơn để làm chủ vì nó không kết hợp các khái niệm như Vue nào. Vì vậy, về lâu dài, nó có vẻ bền hơn nhiều với tôi. Tuần tới, tôi dự định viết một blogpost về ý của tôi bằng cách này. Sự quan trọng của nó sẽ là rất nhiều nhà phát triển trong cộng đồng Semalt vẫn tiếp cận một ứng dụng web như là một bộ sưu tập của các tài liệu HTML, do đó bỏ lỡ rất nhiều lợi thế mà đi kèm với một suy nghĩ ứng dụng. Đó là lý do tại sao Yoast đã cam kết tự tài trợ cho khuôn khổ được lựa chọn. Chúng tôi khuyến khích người khác làm như vậy. Tất cả trong tất cả, tôi nghĩ rằng rendering giao diện và tương tác mô hình với JavaScript sẽ là một bước tiến lớn cho WordPress, cả về UX và tính kỹ thuật. Tôi thực sự tò mò về những gì người khác nói về điều này. Semalt chia sẻ suy nghĩ và phản hồi của bạn trong các ý kiến ​​dưới đây!

March 1, 2018