1 điểm bởi GN⁺ 2024-05-29 | 1 bình luận | Chia sẻ qua WhatsApp
  • Đã 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

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

 
GN⁺ 2024-05-29
Ý 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

    • WordPress thực sự khuyến khích rất nhiều thực hành tệ. Chỉ nhìn cấu trúc theme mặc định cũng thấy họ mô tả metadata của theme bằng chú thích trong file CSS, và dùng nối chuỗi ở khắp nơi thay vì composition, khiến việc tái sử dụng các mảnh HTML trở nên khó khăn
      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
    • Giết freelancer ư? Suốt 15 năm qua, câu tôi hay nói nhất với các khách hàng tiềm năng giá rẻ là hãy tạo site bằng WordPress rồi tìm một “chuyên gia” WordPress
      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
    • Nếu phải làm việc với WP, tôi luôn dùng framework Timber thay vì phiên bản block/classic
      https://timber.github.io/docs/v2/
    • Tôi hoàn toàn không phải chuyên gia WordPress, nhưng thỉnh thoảng từng phải chuyển site cho khách hàng, và vẫn nhớ rất rõ chuyện trong database có PHP đã serialize chứa đường dẫn hệ thống file tuyệt đối được hard-code
      Chỉ cần chuyển sang server mới có đường dẫn cài đặt hơi khác là hỏng ngay
    • Nếu tuân thủ chuẩn phát triển, người dùng sẽ không bị khóa vào nền tảng. Họ có thể chuyển sang một CMS hoạt động tốt hơn và dễ quản trị hơn, hoặc dùng giải pháp hosting thay vì buộc phải trả tiền cho ai đó
      Đá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

    • Tôi đang làm đúng theo đề xuất đó ngay lúc này, và đang gặp một số lỗi 500 thú vị trên production
      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
    • Tôi nghĩ hầu hết các đánh giá đã được hình thành trong suốt 21 năm. WordPress ban đầu nổi tiếng là cách tạo website nhanh và dễ, rồi sau đó lại mang tiếng là cơn ác mộng bảo mật
      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
    • Khi còn nhỏ, một trong những trải nghiệm lập trình đầu tiên của tôi là ngây thơ mở index.php của WordPress để cố hiểu cách nó hoạt động
      Tô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
    • Chỉ cần đi sâu thêm một chút là sẽ thấy ngay WordPress hỗn loạn đến mức nào
      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/
    • Tôi muốn hỏi liệu có thể giới thiệu cách tốt hơn để hiểu và học WordPress cho đúng không
      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

    • Năm 2011, tôi có dịp xem qua plugin sociable, khi đó xếp hạng 2 trong danh sách plugin, và nó thuộc nhóm mã dễ tổn thương và phình to nhất tôi từng thấy
      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 for dài 5 màn hình chạy quanh một biến toàn cục khổng lồ
    • Nó chắc chắn đã thành công trong việc khiến người ta muốn cài plugin. Đặc biệt chỉ riêng việc đặt UI đó ra mặt tiền đã đủ, và vì ảnh mặc định không được nén, nó cũng trở thành đồng minh hoàn hảo với nhiều công cụ phân tích SEO luôn yêu cầu nén ảnh
  • 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 đã

    • Tôi lại thấy nó chứng minh điều ngược lại. WordPress về cơ bản đã biến toàn bộ codebase thành API công khai, nên vì các plugin phụ thuộc vào trạng thái hiện có, nó mãi bị trói vào mã legacy và rất khó có cải tiến đáng kể
      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
    • Việc mọi người bắt đầu dùng WP khoảng 25 năm trước chẳng phải chính là phản ví dụ cho câu “sau này lúc nào cũng có thể cải thiện” sao
  • 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

    • Tôi từng nghĩ mình là lập trình viên web trên trung bình, và khi bạn bè nhờ sửa vài thứ trên site WordPress, tôi thường nói không do dự rằng có thể đổi dễ dàng
      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
    • Thiết lập ban đầu của WordPress rất dễ, nhưng theo thời gian việc bảo trì trở nên rất khó
      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.
    • Tôi đã chuyển sang Ghost; ban đầu hơi thô, nhưng sau khi có CLI toàn cục thì khá ổn
      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

    • Nếu đã chọn tệp khách hàng đủ đa dạng, với một số người nó có thể có nghĩa là tất cả những thứ này
  • 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/

    • Cũng cần tính đến việc ở Mỹ nghỉ phép hằng năm chỉ 2 tuần, nên dù có sabbatical 3 tháng thì vẫn ít hơn châu Âu
  • Đ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

    • Tôi vẫn nhớ WordPerfect. Tôi thích nó hơn MS Word, dù lần cuối dùng đã 25 năm trước
  • Đ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

    • Tôi đã tiếp quản một website dùng Divi cho toàn bộ styling, và nó gần như là phần mềm thương mại tệ nhất tôi từng thấy
      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ó
    • Tôi tò mò lịch sử kỳ lạ đó là gì