Tập hợp thông tin chi tiết về những điểm khó khăn hàng đầu của nhà phát triển, được thu thập từ một số cuộc trò chuyện trực tiếp.
Vài tháng trước, Paul Kinlan đã đăng bài về những điểm khó khăn hàng đầu của nhà phát triển vào năm 2021, vì vậy, có vẻ như việc bắt đầu bài viết này bằng thông tin cập nhật về 2 quý vừa qua là phù hợp. Các con số có thay đổi một chút, nhưng thứ hạng không thay đổi.
| Thách thức | Quý 1 năm 2021 | Quý 2 năm 2021 | Quý 3 năm 2021 | Quý 4 năm 2021 |
|---|---|---|---|---|
| Theo kịp những thay đổi đối với nền tảng web hoặc tiêu chuẩn web. | 27% | 26% | 27% | 22% |
| Theo kịp một số lượng lớn các công cụ hoặc khung mới và hiện có. | 26% | 26% | 25% | 21% |
| Làm cho thiết kế hoặc trải nghiệm hoạt động giống nhau trên các trình duyệt. | 26% | 28% | 24% | 21% |
| Thử nghiệm trên nhiều trình duyệt. | 23% | 24% | 20% | 20% |
| Tìm hiểu và triển khai các biện pháp bảo mật. | 23% | 25% | 20% | 19% |
Như đã đề cập trong bài đăng trên blog của Paul, chúng ta cần giải quyết những điểm khó khăn này. Trong nỗ lực lớn hơn để thực hiện điều đó, tôi và đồng nghiệp Kadir Topal đã phỏng vấn hơn 18 nhà phát triển. Mục tiêu của chúng tôi là tìm hiểu và bắt đầu tìm ra hướng giải quyết cho những điểm khó khăn lớn nhất mà nhà phát triển gặp phải.
Các cuộc thảo luận của nhà phát triển
Tuyên bố từ chối trách nhiệm: những thông tin chi tiết này dựa trên một số ít cuộc trò chuyện với nhà phát triển. Khi sử dụng từ "tất cả" hoặc "một số", chúng tôi đang đề cập đến những nhà phát triển được phỏng vấn, chứ không phải toàn bộ cộng đồng. Cần nghiên cứu thêm để suy luận những thông tin chi tiết đó một cách rộng rãi hơn.
Những cuộc trò chuyện này là lời nhắc nhở tuyệt vời về sự tuyệt vời và đa dạng của cộng đồng nhà phát triển web. Tôi muốn cảm ơn tất cả nhà phát triển đã trò chuyện với chúng tôi. Một số nhà phát triển có hơn 25 năm kinh nghiệm, trong khi một số khác mới bắt đầu từ năm 2020. Một số nhà phát triển bắt đầu sự nghiệp bằng bằng cấp chính quy về khoa học máy tính, trong khi những người khác bắt đầu sự nghiệp một cách độc lập. Một số nhà phát triển chủ động tìm kiếm thông tin mới và cập nhật bằng cách đọc ghi chú phát hành của trình duyệt, trong khi những người khác tìm hiểu về những điều mới thông qua đồng nghiệp và bạn bè. Một số người cho rằng sự phức tạp là một phần của công việc và thích được thử thách, trong khi những người khác chỉ muốn hoàn thành công việc của mình. Khi nghĩ đến việc giải quyết những điểm khó khăn đó, điều quan trọng là phải lưu ý đến sự đa dạng này!
Một trong những điểm chung của tất cả các nhà phát triển là họ đều sử dụng một CMS hoặc một khung để thực hiện công việc của mình. Wordpress, React, Bootstrap, Angular và Tailwind đều được đề cập, không có nhà phát triển nào sử dụng nền tảng web vanilla trong phiên bản chính thức. Việc chọn một khung khi bắt đầu dự án là một thách thức và nhà phát triển thường xem xét các yêu cầu phi kỹ thuật. Ví dụ: liệu có dễ dàng thuê một nhà phát triển để làm việc với khung đó hay không. Chúng tôi không thể cải thiện các điểm khó khăn của nhà phát triển nếu các khung và CMS không được đưa vào giải pháp.
Nói về nền tảng web, hầu hết các nhà phát triển đều hiểu nền tảng này là thứ mà họ đang phát triển. Điều này không chỉ bao gồm định nghĩa cổ điển của nền tảng web, mà còn bao gồm cả CMS, khung, công cụ và polyfill. Trong nhiều trường hợp, việc cập nhật những thay đổi đó là khó khăn lớn nhất. Điều này đã thay đổi cách chúng tôi diễn giải câu hỏi đó và giờ đây, chúng tôi biết rằng mình cần cập nhật bản khảo sát để chia nhỏ câu hỏi thành nhiều phần rõ ràng hơn.
Một khía cạnh khác chưa rõ ràng là định nghĩa về tiêu chuẩn web. Khi được hỏi về các ví dụ liên quan đến việc tuân thủ tiêu chuẩn, nhiều nhà phát triển đã chỉ ra những khó khăn trong việc tuân thủ các phương pháp hay nhất. Đây là một khía cạnh khác mà chúng ta cần làm rõ trong bản khảo sát.
Nhà phát triển tìm kiếm các phương pháp hay nhất khi triển khai các mẫu và trường hợp sử dụng cụ thể. Các bài đăng trên blog và StackOverflow được đề cập là nguồn cung cấp các phương pháp hay nhất, nhưng nhà phát triển thường tự hỏi liệu thông tin họ đang đọc có thực sự là phương pháp hay nhất hay không và liệu thông tin đó có đã cập nhật các tính năng và API mới nhất hay không. Họ muốn đọc những thông tin đó từ một nguồn chính thức hơn.
Việc theo kịp các tính năng và API hỗ trợ các trường hợp sử dụng mới là một vấn đề nhỏ hơn. Nhà phát triển gặp nhiều khó khăn hơn với các tính năng, API và thay đổi đối với nền tảng dẫn đến thay đổi về các phương pháp hay nhất.
Hầu hết các nhà phát triển đều đồng ý rằng khả năng tương thích là một trong những thách thức lớn nhất. Mọi thứ đang được cải thiện thông qua những nỗ lực như Compat 2021 và Interop 2022, nhưng rõ ràng là các nhà phát triển chưa coi đây là một vấn đề đã được giải quyết.
Hầu hết các nhà phát triển đều sử dụng polyfill theo cách này hay cách khác. Tuy nhiên, trong nhiều trường hợp, việc sử dụng là minh bạch đối với nhà phát triển, vì polyfill có thể được thêm tự động bằng một công cụ như Babel hoặc một khung. Đối với những người tự quản lý polyfill, việc tìm hiểu xem polyfill có "tốt" hay không có thể là một vấn đề. Các nhà phát triển cho biết họ sử dụng số lượt cài đặt trên NPM và người tạo polyfill làm tín hiệu. Một số nhà phát triển cho biết họ đã loại bỏ các polyfill không còn cần thiết do ngừng hỗ trợ IE 11.
Khung gây ra các vấn đề về phân mảnh. Chúng tôi nhận được báo cáo về việc nhà phát triển bị "mắc kẹt" trong một phiên bản cũ của khung và bị hạn chế về các tính năng mà họ có thể sử dụng, nhưng việc di chuyển sang phiên bản mới hơn của cùng một khung có thể tốn kém và khó giải thích.
Kết luận
Quá trình phát triển web hiện đại có nhiều thành phần, bao gồm các tiêu chuẩn, trình duyệt, thư viện, polyfill, CMS, khung, phương pháp hay nhất và công cụ. Sự đa dạng này là một trong những điều tuyệt vời về web, nhưng hiện tại, mỗi nhà phát triển phải tự tìm hiểu từng phần và cách chúng tương thích với nhau.
Tôi tự hỏi liệu có cách nào để giúp nhà phát triển hiểu rõ hơn về cách mọi thứ liên kết với nhau và cách để tất cả các thành phần trở nên nhất quán hơn mà không ảnh hưởng đến tính đa dạng hay không. Đây là một vấn đề lớn, phức tạp và khó có thể giải quyết ngay lập tức. Nhưng nên bắt đầu từ đâu?
Nếu bạn có quan điểm và ý kiến muốn chia sẻ. Tôi cũng rất muốn nói chuyện với bạn. Tôi sẽ thiết lập một cách để đặt lịch trò chuyện trực tiếp, nhưng trong thời gian chờ đợi, bạn có thể nhắn tin trực tiếp cho tôi trên Twitter. Hãy liên hệ với chúng tôi để sắp xếp thời gian trò chuyện nhé!