Bài phát biểu kỹ thuật WP21
(ma.tt)- Đã 21 năm kể từ khi WordPress do Matt Mullenweg và Mike Little fork b2/cafélog và phát hành bản đầu tiên, và trong quá trình phát triển sắp tới cũng cần nắm lại những điều kiện đã tạo nên thành công ban đầu
- Định hướng sản phẩm bám theo nguyên tắc việc dễ thì phải trực quan, còn việc phức tạp cũng phải làm được
- Các tính năng web động như blog, bình luận, pingback khiến website thú vị hơn, và web động được đánh giá có giá trị lớn hơn website tĩnh
- Hệ sinh thái plugin và theme cần có hạ tầng phát triển ở cấp độ tương đương WordPress core, và trong năm 2024 thì cách phụ thuộc vào tải lên ZIP là không phù hợp
- Vòng phản hồi gần với người dùng, diễn đàn lấy cộng đồng làm trung tâm, phần xem trước theme tốt và Playground sẽ quyết định trải nghiệm WordPress trong tương lai
Kỷ niệm 21 năm WordPress và nguyên tắc sản phẩm
- Đã tròn 21 năm kể từ khi WordPress do Matt Mullenweg và Mike Little fork công việc b2/cafélog của Michel và phát hành bản đầu tiên
- Trong quá trình phát triển sắp tới cũng cần tiếp tục ghi nhớ những yếu tố đã góp phần vào thành công ban đầu của WordPress
- Nguyên tắc sản phẩm cốt lõi là những gì đơn giản phải dễ và trực quan, còn những gì phức tạp cũng phải có thể thực hiện được
Blog, tài liệu và tính năng cộng đồng
- Blog, bình luận, pingback phải thú vị
- Website tĩnh cũng ổn, nhưng quan điểm ở đây là website động tốt hơn
- Gần như mọi website đều có thể được cải thiện nếu có một blog thật tốt
- Tài liệu phải dễ chỉnh sửa như wiki
- Wiki được xem là một công cụ “tuyệt vời”
- Trong cộng đồng, diễn đàn phải giữ vai trò trung tâm
- bbPress và BuddyPress cần được quan tâm nhiều hơn
Hệ sinh thái plugin và theme
- Mọi plugin và theme nên có hạ tầng phát triển ở mức tương đương với những gì dùng để xây dựng chính WordPress
- quản lý phiên bản
- bug tracker
- diễn đàn
- tài liệu
- quốc tế hóa
- phòng chat
- P2
- lộ trình dễ dàng để đi tới đóng góp và cộng đồng
- Trong năm 2024, việc xử lý plugin và theme bằng cách tải lên ZIP là không phù hợp
- Phần xem trước theme phải thật xuất sắc
- Một bộ sưu tập theme phi thương mại với đa dạng thẩm mỹ và chức năng là rất quan trọng
Vòng phản hồi và tính minh bạch quan trọng hơn quy tắc
- Không nên quá thiên về guideline và yêu cầu
- Tốt hơn là thiết kế động lực marketplace tốt, vòng phản hồi tự động và tính minh bạch với người dùng
- Ranh giới giữa tính năng và thiết kế cần được đẩy xa hơn nữa
- Cần không khoan nhượng với spam và hành vi mang tính spam
- Vòng phản hồi cần mở rộng theo mức sử dụng và toàn bộ cộng đồng thay vì phụ thuộc vào gatekeeper
Bản sắc của core và điểm chạm với người dùng
- WordPress core nên có chính kiến và độc đáo
- Easter egg
- ngôn ngữ có cá tính dù khó dịch
- tính cách như nhạc jazz
- Tất cả những người phát triển phần mềm và đưa ra quyết định đều phải sử dụng chính phần mềm đó
- Nhà phát triển và người ra quyết định nên ở gần người dùng cuối phổ thông thông qua các hoạt động như hỗ trợ, meetup, sự kiện và bất cứ điều gì có thể
Playground và trải nghiệm ban đầu
- Playground được kỳ vọng sẽ thay đổi mọi thứ
- Ngày 27 tháng 5 năm 2003, ngày bản phát hành WordPress đầu tiên ra mắt, Matt Mullenweg đã viết trong một bài blog 953 từ tại hiên nhà bố mẹ rằng: “Tôi đã phát hành WordPress, và tôi thấy rất vui”
- Tối hôm đó, anh ấy đã thiết lập WP cho bạn mình là Ramie Speight, và hỗ trợ kỹ thuật qua điện thoại cho Mike Tremoulet, người anh gặp tại một buổi gặp mặt blogger địa phương
- Những người bạn thời trung học của anh ấy đã dùng WordPress trên các domain riêng của họ, và vòng phản hồi đó đã đóng vai trò lớn trong việc định hình phần mềm
1 bình luận
Ý kiến trên Hacker News
Thật đáng tiếc khi WordPress dường như không những không tuân thủ chuẩn phát triển, mà còn chủ động muốn phá vỡ chúng
Họ dùng biến toàn cục ở khắp nơi và khuyến khích mã spaghetti bằng theme cổ điển, rồi ở theme mới lại bắt nhét JSON vào trong chú thích HTML, khiến editor không hỗ trợ, dễ phát sinh lỗi, và nói chung là một thiết kế kỳ quặc
Thật sự tự hỏi liệu các kỹ sư senior có nghiêm túc quyết định đưa template JSON vào trong chú thích HTML không; nhìn theo hướng thuyết âm mưu thì cũng giống như họ muốn giết thị trường freelancer hay agency số và đẩy mọi người vào trình dựng site WYSIWYG của WP.com
Kiểu như CSS trong JS trong HTML trong PHP, và dựa vào một cấu trúc ngầm định về việc file nào được đọc theo thứ tự nào để tạo ra toàn bộ trang
Ban đầu trông có vẻ tiện, nhưng lại khiến phần tử HTML không được đóng đúng trong cùng một file mà kết thúc ở file khác, nên cũng không thể tái sử dụng
Trông như lỗi của người mới, nhưng hàng nghìn theme đã phụ thuộc vào đó nên giờ bị trói chặt; điều này tương phản với cách render block và macro trong template Jinja2
WordPress tồn tại cho khách hàng không có ngân sách và khách hàng giá rẻ, những người có ảo tưởng rằng họ cần một website đơn giản; và tôi cho rằng chính khái niệm site đơn giản đó cũng đã chết rồi
https://timber.github.io/docs/v2/
Chỉ cần chuyển sang server mới có đường dẫn cài đặt hơi khác là hỏng ngay
Đáng tiếc là như vậy có thể ảnh hưởng xấu đến câu marketing “nền tảng của chúng tôi vận hành 43,4% tổng số website”
Thật đáng tiếc khi những phán xét vội vàng và quan điểm mạnh đã trở thành một phần của cộng đồng
Sau khi làm khá nhiều việc phát triển WordPress trong 2–3 tháng qua, tôi muốn nói rằng khả năng cô lập mã mà block (Gutenberg) mang lại là rất tuyệt
Khi dùng như plugin độc lập hoặc cùng Advanced Custom Fields, bạn có thể tạo ra một website và luồng phát triển hoàn toàn module hóa, tức một design system, với 100% quyền kiểm soát trực tiếp cả HTML
Tôi khuyên mọi người nên hiểu và học WordPress cho đúng. Tôi không có quan hệ hay liên quan gì đến WordPress
Hôm nay đột nhiên Gutenberg và ACF Blocks đang xung đột ở đâu đó về việc parse nội dung của trường media lồng nhau
Nguyên nhân có thể là “người dùng đã nhập mô tả ảnh mà lẽ ra không được nhập”, hoặc cũng có thể là “đối tượng toàn cục của plugin đã làm nhiễm bẩn một đối tượng toàn cục khác được truyền vào
acf_register_block_type()”Có lẽ tôi phải gọi cho vị khách hàng vốn đã tức giận để bảo họ tránh phán xét vội vàng và quan điểm mạnh
Bây giờ có thể không còn như vậy, nhưng hoài nghi là điều dễ hiểu. Trong các bản cập nhật tôi kiểm tra hằng tuần thấy khá nhiều CVE, dù tất cả có thể chỉ là rủi ro thấp hoặc liên quan đến plugin hầu như không ai dùng
index.phpcủa WordPress để cố hiểu cách nó hoạt độngTôi vẫn nhớ là ngoài dòng chú thích “code is poetry” ở đầu file, tôi chẳng hiểu được gì cả
Nhờ vậy mà cách tôi nghĩ về mã nguồn đã thay đổi và tôi càng bị cuốn vào lập trình hơn
Nếu bài viết cần metadata thì cài ACF; nếu muốn lọc theo metadata đó, truy vấn SQL sẽ timeout ngay khi chỉ có vài bộ lọc chạy đồng thời. Nhìn vào schema kỳ lạ của WP là hiểu lý do
Gutenberg hứa hẹn các component React có thể chỉnh sửa kiểu WYSIWYG, nhưng lại đưa ra những quyết định kỳ quặc như lưu thuộc tính trong HTML, đưa HTML đã render vào database, và bắt developer component duy trì một mảng thay đổi deprecated mỗi khi họ thay đổi thứ gì đó
Cũng có những nỗ lực refactor WordPress và gắn Laravel vào để tháo gỡ[1], nhưng từng lớp đều là ác mộng, và có vẻ ngay cả tác giả của các phần khác nhau cũng khó đánh giá vì sao mọi thứ lại hỏng một cách ngẫu nhiên
Hệ sinh thái plugin có thể hấp dẫn, nhưng cách triển khai plugin rất khác nhau, nên nhiều khả năng sẽ đẩy cho người dùng những cục CSS và JS cồng kềnh
Tôi đã chuyển sang Directus và Astro; còn nếu triển khai PHP phổ thông hơn thì có lẽ tôi sẽ dùng CMS dựa trên Laravel như October hoặc Statamic
[1]: https://roots.io/
Giai đoạn 2009–2011 tôi đã xử lý khá nhiều, bao gồm cả viết và sửa plugin, nhưng chưa bao giờ cảm thấy mình hiểu đúng; chỉ hiểu hoặc chấp nhận ở mức đại khái
Thích WordPress. Mọi người tự cài đặt, cài hàng chục plugin vô dụng, không an toàn và đầy lỗi; rồi theo thời gian khi trang web hỏng, bạn có thể tính phí cho một giải pháp an toàn và vững chắc hơn
Cảm giác như một dự án cuối tuần chưa hoàn thành bị kéo dài quá lâu rồi đem công khai; nó xử lý mọi thứ bằng cách lặp lại một vòng lặp
fordài 5 màn hình chạy quanh một biến toàn cục khổng lồWordPress là ví dụ yêu thích của tôi cho câu “không cần hoàn hảo, chỉ cần chạy được”
Nhiều dự án hay chết vì làm bước đầu tiên quá phức tạp. Khi mọi người bắt đầu dùng, sau này lúc nào cũng có thể cải thiện, nhưng trước hết phải ra mắt đã
Nghiêm trọng đến mức ngay cả các nhà phát triển ngôn ngữ PHP cũng không thể triển khai một số tính năng hay bản sửa lỗi. Vì đội WordPress không muốn migration mã, và WordPress chiếm một phần rất lớn trong mức sử dụng PHP
WP là công cụ hoàn hảo cho 95% công việc, nhưng việc tinh chỉnh 5% cuối cùng thì cực kỳ bực bội
Tôi đã dùng rất nhiều, và việc nó tồn tại lâu như vậy là bằng chứng cho tính hữu dụng. Hy vọng nó sẽ tiếp tục thêm 21 năm nữa
Thành thật mà nói, tôi chưa bao giờ thấy WordPress dễ dùng. Mọi thứ chỉ màu hồng cho đến khi còn tìm được theme và plugin tốt; ngay khi cần một tùy chỉnh rất nhỏ là bắt đầu rối lên
Nhưng khi thực sự mở site, mã plugin/theme và các file CSS ra, tôi lại vật lộn hàng giờ để đạt hiệu ứng mong muốn, và dù thành công thì cũng thường làm hỏng phần khác của site
Bỏ qua giai thoại mang tính châm biếm đó, Matt đã làm tốt và câu chuyện cuối cũng hay
Cập nhật cần can thiệp thủ công, theme phải sửa, plugin thì bị bỏ rơi. Vì không muốn gánh những thứ này, từ khoảng năm 2017 tôi đã chuyển tất cả site sang Hugo/Jekyll/MkDocs, v.v.
Nếu là blog thì tôi muốn dùng Ghost hơn WP, và tôi cũng thích JS hơn PHP
Điều thú vị là khi nhiều người nói “tôi là lập trình viên WordPress”, thực ra họ đang nói đến những trải nghiệm và bộ kỹ năng hoàn toàn khác nhau
Với một số người, đó là cài theme và plugin trong màn hình quản trị WordPress rồi viết nội dung trang
Với người khác, đó là viết HTML bằng template PHP và mã PHP kiểu cũ để tùy biến hành vi WordPress, tức classic theme
Với người khác nữa, đó là viết JS+React cùng Docker, CI/CD cho block theme mới
Mong nhiều công ty hơn áp dụng chính sách nghỉ phép sabbatical của Automattic
https://automattic.com/benefits/sabbatical/
Điều khiến tôi thấy mình già là khi nhìn “WP” mà nghĩ đến WordPerfect(https://en.wikipedia.org/wiki/WordPerfect) chứ không phải WordPress
WordPress giờ đã đến tuổi được công nhận là người trưởng thành ngay cả ở những quốc gia bảo thủ nhất, còn WordPerfect thì đã bước vào tuổi khủng hoảng trung niên
Điều ấn tượng ở WordPress là các web nerd mặc nhiên kỳ vọng nó phải dễ, rồi nổi giận khi hóa ra không phải vậy
Như mọi thứ khác, WordPress cũng phải học, và nó có quan điểm riêng
Nó cũng có lịch sử kỳ lạ, và tôi đặc biệt không thích cách nó xử lý mục media, nhưng dù sao vẫn có phương pháp luận
Nếu tôi nói mình biết Go, JS, Perl, Java, Ruby, C rồi nổi giận vì Rust khó học, chắc chắn tôi sẽ bị phản bác
WordPress trông như chỉ làm những việc đơn giản, nhưng thực ra là một nền tảng khá rộng. Có thể bạn sẽ cần đọc tài liệu một chút
Nếu bạn tiếp quản một site dùng Elementor, hãy hỏi người đã làm nó cách thay đổi đơn giản, họ có thể giúp được
Nếu bạn tiếp quản một site dùng Visual Composer hoặc Divi, bạn sẽ muốn bắn những người đã làm ra chúng
Nếu bạn nghĩ Gutenberg tệ, thì bây giờ hoàn toàn không phải vậy. Nhớ lại thời Divi thì thật sự kinh khủng
Chỉ cần có chút timeout nào trong quá trình chạy UI JavaScript kinh khủng đặt trên WordPress, việc lưu một bài blog cũng có thể khiến toàn bộ website rơi vào trạng thái không thể khôi phục
Bản địa hóa tiếng Ý và tiếng Pháp tệ như game Nhật thập niên 90, còn các tùy chọn responsive về cơ bản không hoạt động, trừ khi gọi việc ẩn/hiện nội dung ở các breakpoint cụ thể là responsive
Mọi thứ cực kỳ mong manh vì “theme” frontend gần như là một đống JavaScript thời jQuery không thể đọc nổi
Tôi chắc chắn 100% rằng nếu Elegant Themes không đổ cực nhiều tiền vào quảng cáo thì chẳng ai dùng nó