Tập hợp thông tin chi tiết về những vấn đề hàng đầu mà nhà phát triển gặp phải, được thu thập từ một số cuộc trò chuyện một với một.
Vài tháng trước, Paul Kinlan đã đăng bài về những vấn đề hàng đầu mà nhà phát triển gặp phải trong năm 2021. Vì vậy, tôi sẽ bắt đầu bài viết này bằng thông tin cập nhật về 2 quý vừa qua. Số liệu 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 số lượng lớn các công cụ hoặc khung mới và hiện có. | 26% | 26% | 25% | 21% |
Giúp một 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% |
Kiểm thử 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 vấn đề này. Trong nỗ lực lớn hơn để làm đ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à điều tra và bắt đầu tìm hiểu lộ trình khắc phục những vấn đề hàng đầu mà nhà phát triển gặp phải.
Thảo luận dành cho nhà phát triển
Tuyên bố từ chối trách nhiệm: những thông tin chi tiết đó 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 đề 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 có thêm nghiên cứu để suy ra những thông tin chi tiết đó trên phạm vi rộng hơn.
Những cuộc trò chuyện này đã giúp tôi nhớ lại sự đa dạng và tuyệt vời 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 khoa học máy tính chính thức, 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ề các tính năng 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 một số 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 vấn đề đó, điều quan trọng là chúng ta phải luôn ghi nhớ sự đa dạng này!
Một trong những điểm chung của tất cả nhà phát triển là họ đều sử dụng một CMS hoặc khung để làm việc. 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 cơ bản trong quá trình sản xuất. Việc chọn một khung khi bắt đầu dự án là một thách thức và các nhà phát triển thường cân nhắc các yêu cầu không liên quan đến kỹ thuật. Ví dụ: liệu bạn 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 vấn đề mà nhà phát triển gặp phải nếu giải pháp không bao gồm các khung và CMS.
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 là nền tảng mà họ đang phát triển. 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 nắm bắt thông tin mới nhất về 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 đó. 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 câu hỏi đó thành nhiều phần ít mơ hồ hơn.
Một khía cạnh khác gây nhầm lẫn là định nghĩa về các tiêu chuẩn web. Khi được hỏi về các ví dụ về việc tuân thủ các 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 trường hợp sử dụng và mẫu 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 các 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 đó trên một nguồn chính thức hơn.
Việc theo dõi 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 trong 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ải thiện thông qua các nỗ lực như Compat 2021 và Interop 2022, nhưng rõ ràng là các nhà phát triển vẫn chưa coi đây là 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, nhà phát triển có thể sử dụng một cách minh bạch vì công cụ như Babel hoặc khung có thể tự động thêm polyfill. Đố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 đề cập đến việc sử dụng số lượt cài đặt trên NPM và nhà sáng tạo của polyfill làm tín hiệu. Một số nhà phát triển đã đề cập đến việc loại bỏ các polyfill không 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 cho biết các nhà phát triển "bị mắc kẹt" trong một phiên bản khung cũ và bị hạn chế về các tính năng mà họ có thể sử dụng do đó. Tuy nhiên, 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ó biện minh.
Kết luận
Quá trình phát triển web hiện đại có nhiều phần chuyển động, 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ự hiểu từng phần và khả năng tương thích của các phần đó 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à điều chỉnh cho phù hợp hơn giữa các phần, mà không làm giảm tính đa dạng. Đây là một vấn đề lớn, phức tạp và khó giải quyết cùng một lúc. Nhưng bạn 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 trò chuyện với bạn. Tôi sẽ thiết lập một cách để bạn đặt lịch hẹn trò chuyện trực tiếp. Trong thời gian chờ đợi, bạn có thể gửi tin nhắn trực tiếp cho tôi trên Twitter. Hãy liên hệ để chúng ta có thể dành thời gian trò chuyện!