Phát triển web: Nhìn từ nhiều góc độ

10:15 AM 10/07/2019 In bài viết

Kết quả hình ảnh cho Web development: So many choices to get the right fit

“Chân trời cho các nhà phát triển web đã thực sự mở rộng trong vài năm qua khi mà theo nghĩa đen chúng tôi có thể chọn loại ứng dụng nào chúng tôi muốn xây dựng và loại trải nghiệm nào chúng tôi muốn có”, Sam Basu, nhà phát triển cho Tiến trình Cung cấp Giải pháp Phát triển Ứng dụng cho biết.

Mặt khác, hệ sinh thái phong phú đó cũng có thể gây mệt mỏi vì hiện nay có rất nhiều công nghệ và ngôn ngữ khác nhau để lựa chọn. Có thể khó quyết định cho những nhóm và tổ chức phát triển nên đầu tư vào công cụ nào – chưa kể tới đến tất cả các yếu tố hình thức khác nhau và nhu cầu người dùng khác mà các nhà phát triển web phải quan tâm.

“Nếu bạn chưa quen với trò chơi này, bạn có thể phải vật lộn với số lượng tùy chọn có sẵn cho mình. Có những khuôn khổ mới xuất hiện mỗi ngày, vì vậy quá nhiều sự chọn lựa đã trở thành một vấn đề” theo ý kiến của Sam Basu. “Đối với các nhà phát triển web, canvas đang mở rộng. Chúng tôi có những điều khác cần ghi nhớ khi xây dựng các ứng dụng và mã của chúng tôi đã tiếp cận các hình thức mới không thực sự có ý nghĩa với website”.

May mắn thay, những vấn đề này sẽ được giải quyết và hiện tại có một số xu hướng và giải pháp đang được tiến hành nhằm mục đích làm cho các nhà phát triển web có cuộc sống dễ dàng hơn.

Ứng dụng web lũy tiến

Bạn có thể là một nhà phát triển web, nhưng chiến lược phát triển web của bạn không còn có thể là web nữa, theo Jason Wong, nhà phân tích VP tại công ty nghiên cứu Gartner. Người dùng đang truy cập các giải pháp trên rất nhiều yếu tố hình thức khác nhau mà các tổ chức hiện đang mong đợi sẽ cung cấp trải nghiệm di động.

Các tổ chức và các nhà phát triển mới nổi đang chuyển sang ứng dụng web tiến bộ (PWAs), điều này đã tăng lên trong vài năm qua. Năm 2018 được báo cáo là năm đột phá của họ. Khi Apple công bố hỗ trợ cho nhân viên dịch vụ vào đầu năm ngoái, họ đã mở đường cho PWAs. Bây giờ chúng ta đang trong năm 2019, Wong giải thích rằng chúng ta hiện đang bước vào vết xe đổ của Gartner. “Đây chỉ là vấn đề thời gian, sự trưởng thành và hình thành các tiêu chuẩn trên các trình duyệt và hệ điều hành mà cuối cùng sẽ thúc đẩy sự xâm nhập vào dòng chính và độ dốc của nhận thức”, ông nói.

PWAs cung cấp cho các nhóm phát triển khả năng sử dụng các công nghệ web để xây dựng trải nghiệm di động mà không phải thông qua cửa hàng ứng dụng. Theo ông Wong, PWAs không có nghĩa là một sự thay thế cho các ứng dụng di động. Chúng là sự thay thế cho các ứng dụng di động tồi và có thể là bước đệm cho chiến lược di động rộng lớn hơn. “Các tổ chức đơn giản chỉ muốn có sự hiện diện trong cửa hàng ứng dụng thì hãy quay ngược lại. Họ lấy những gì đã có sẵn hoặc thân thiện với thiết bị di động, và họ gói nó và xuất bản dưới dạng một ứng dụng lai hoặc một ứng dụng di động rất cơ bản cho cửa hàng ứng dụng. Họ không được chấp nhận và được tham gia bởi vì họ thực sự nghĩ rằng điện thoại di động là một khoản đầu tư chiến lược” ông Wong nói. “Cách tiếp cận PWA cho phép họ tiếp cận nhiều hơn với cách tiếp cận chân thực để hiểu được ý nghĩa của việc xây dựng trải nghiệm giống như ứng dụng”.

Với PWAs, các nhà phát triển có thể tận dụng bộ nhớ đệm ngoại tuyến, thông báo và các khả năng nâng cao hơn mà người dùng đang tìm kiếm. Một khi họ cảm thấy thoải mái với việc tạo ra các loại trải nghiệm này, họ có thể tiếp tục tạo một ứng dụng di động. PWAs là một cách để làm quen với trải nghiệm di động mà không lãng phí thời gian, tài nguyên hoặc đầu tư, Wong giải thích.

“Không phải tất cả mọi thứ cần phải là một ứng dụng gốc trên thiết bị di động. Nếu ứng dụng của bạn chủ yếu dựa trên dữ liệu, bạn có thể thoát khỏi PWA và có trải nghiệm nhập vai tuyệt vời”, Basu cho biết.

Một chiến lược khác cho PWAs là giữ chân người dùng, Max Lynch, CEO và đồng sáng lập cho nhà cung cấp giải pháp phát triển web Ionic nhấn mạnh. Chẳng hạn, một trang web như Pinterest cũng có sẵn một ứng dụng di động, nhưng vì chúng có sự hiện diện mạnh mẽ của công cụ tìm kiếm, nên không có ý nghĩa gì khi yêu cầu người dùng tải xuống ứng dụng của họ. “Bạn không muốn mạo hiểm gửi người dùng đến một cửa hàng ứng dụng khi họ có thể nhận được thông tin ngay lập tức theo cách chất lượng với PWA”, ông Lynch cho biết.

Ngôn ngữ lập trình

JavaScript hiện là ngôn ngữ thực tế cho web, Lam Lynch cho biết. “Phần mềm JavaScript sẽ tiếp tục thống trị web vì một số lý do. Phần lớn các nhà phát triển biết điều đó. Nó rất dễ sử dụng, và có một loạt động lượng và quán tính xung quanh nó”.

Stephen Fluin, nhà phát triển của Google nói thêm rằng JavaScript chỉ cung cấp khả năng có mặt ở mọi nơi. Bạn có thể chạy JavaScript trên web, trên máy chủ và trên thiết bị di động. “Sự phổ biến của một công nghệ duy nhất làm cho nó trở nên rất hấp dẫn đối với các nhà phát triển”, ông nói.

Tuy nhiên, JavaScript không thực sự dành cho tất cả các mục đích khác nhau khi nó được tạo ra ban đầu, Fluin giải thích, do đó, một ngôn ngữ lập trình mới đã tăng lên để giúp tăng thêm độ tin cậy, khả năng duy trì và khả năng truy cập của JavaScript. TypeScript là một ngôn ngữ lập trình nguồn mở được phát triển bởi Microsoft và được thiết kế để trở thành một siêu ngôn ngữ được gõ vào để biên dịch thành JavaScript đơn giản. Theo Fluin, nó cho phép các nhà phát triển sử dụng các kỹ năng JavaScript hiện có và vì nó là siêu bộ JavaScript, nó cho phép các nhà phát triển chuyển dần sang TypeScript mà không phải lo lắng về việc viết lại. Lý do các nhà phát triển đang sử dụng TypeScript là vì nó cung cấp khả năng viết bằng JavaScript hiện đại trong khi tận dụng các loại như kiểm tra tĩnh và tái cấu trúc mã. Các loại hình là tùy chọn và suy luận kiểu cho phép một vài chú thích tạo ra sự khác biệt lớn đối với xác minh tĩnh mã của bạn. Các loại cho phép bạn xác định giao diện giữa các thành phần phần mềm và hiểu rõ hơn về hành vi của thư viện JavaScript hiện có, theo trang web TypeScript. TypeScript 3.5 gần đây đã được phát hành với các tính năng kiểm tra kiểu mới và tối ưu hóa xây dựng để cải thiện tốc độ.

Theo Basu, mặc dù JavaScript sẽ làm mọi thứ mà các ngôn ngữ khác có thể làm, nhưng chọn ngôn ngữ lập trình vẫn là vấn đề được lựa chọn và thuận tiện cho các nhà phát triển và họ có thể thoải mái hơn khi sử dụng các ngôn ngữ khác cho web. Do đó, WebAssugging đang thu hút được nhiều sự quan tâm hơn. WebAssugging là một tiêu chuẩn web mở cho phép các ngôn ngữ cấp cao hơn như C, C ++ và Rust chạy tự nhiên trong trình duyệt. “Cho đến nay, để các ứng dụng web chạy tự nhiên trong trình duyệt, tùy chọn duy nhất là JavaScript”, Basu nói. “Lần đầu tiên, WebAssugging đang mở ra một số lựa chọn khác. Nó thực chất là một ngôn ngữ lắp ráp cấp thấp cho web”.

WebAssugging hiện được hỗ trợ bởi bốn công cụ trình duyệt chính: WebKit, Firefox, Chrome và Edge. Theo nhóm WebAssugging, WebAssugging sẽ không thay thế JavaScript; nó được thiết kế để bổ sung cho nó theo thời gian, WebAssugging sẽ cho phép nhiều ngôn ngữ được biên dịch lên Web, JavaScript có một động lượng đáng kinh ngạc và sẽ vẫn là ngôn ngữ động duy nhất, đặc quyền của web, nhóm nghiên cứu đã nêu trên trang web của mình. “Các mô-đun WebAssugging sẽ có thể gọi vào và ra khỏi bối cảnh JavaScript và truy cập chức năng trình duyệt thông qua các API web tương tự có thể truy cập từ JavaScript”.

Một nỗ lực tiêu chuẩn hóa hiện đang được tiến hành để đưa WebAssugging bên ngoài trình duyệt. Giao diện hệ thống WebAssugging (WASI) sẽ cung cấp khả năng chạy WebAssugging trên các hệ điều hành khác nhau. Phần mềm WebAssugging đã chuyển đổi cách thức web mang đến các loại nội dung hấp dẫn mới cho mọi người và trao quyền cho các nhà phát triển và người sáng tạo thực hiện công việc tốt nhất của họ trên web. “Cho đến nay, vượt qua các trình duyệt, với WASI, chúng tôi có thể mang lại lợi ích của WebAssugging và web tới nhiều người dùng hơn, nhiều nơi hơn, trên nhiều thiết bị hơn và là một phần của nhiều trải nghiệm hơn”, Sean White, giám đốc R&D của Mozilla cho biết.

Tự động hóa ngôn ngữ nguồn mở

Bart Copeland, Giám đốc điều hành của công ty ngôn ngữ nguồn mở ActiveState, lập luận rằng các nhóm phát triển web không nên dựa vào việc sử dụng một ngôn ngữ lập trình duy nhất. “Ngày nay, có rất nhiều ngôn ngữ khác nhau để làm việc, thực sự phụ thuộc vào trường hợp sử dụng cụ thể của bạn, những gì bạn muốn thực hiện và vai trò của tổ chức”, ông nói.

Chẳng hạn, ngôn ngữ lập trình Python hiện đang gia tăng khi các nhà phát triển bắt đầu bổ sung những thứ như trí tuệ nhân tạo và học máy vào các ứng dụng của họ cũng như xử lý các phân tích dữ liệu và khoa học dữ liệu để xây dựng một ứng dụng. Tuy nhiên, có thể khó thuyết phục các tổ chức lớn đầu tư vào các công cụ Python vì đây có thể là một khoản đầu tư tốn kém.

“Các nhà phát triển đang làm việc trên các ứng dụng mới, họ muốn sử dụng công nghệ mới nhất và tốt nhất, nhưng các tổ chức đang nói rằng chúng tôi không thể có nhiều công nghệ khác nhau nên thường phải xây dựng ứng dụng web của bạn với một bộ công nghệ mà tổ chức đã đầu tư vào”, Copeland phát biểu.

Một cách để giải quyết vấn đề này là thông qua tự động hóa ngôn ngữ nguồn mở, theo Copeland. Tự động hóa ngôn ngữ nguồn mở có bốn giai đoạn:

1. Xác định các chính sách để đảm bảo tuân thủ trong toàn tổ chức;

2. Tập trung các phụ thuộc ngôn ngữ nguồn mở để theo dõi các ngôn ngữ và gói và sử dụng truy cập;

3. Tự động xây dựng ngôn ngữ để giảm lỗ hổng và tăng chất lượng ứng dụng;

4. Triển khai và quản lý các tạo phẩm ngôn ngữ nguồn mở để các máy chủ thử nghiệm, dàn dựng và sản xuất của bạn được tự động cập nhật với các bản dựng ngôn ngữ mới nhất.

“Chúng tôi tin rằng bạn sẽ có thể theo dõi thời điểm và các ứng dụng mà bạn dễ bị tấn công và đáp ứng với việc thực thi tự động các chính sách ngôn ngữ nguồn mở của bạn. Ban lãnh đạo nên đạt được sự bảo mật và ổn định và các nhóm phát triển của bạn sẽ đạt được vận tốc lớn hơn”, ông Copeland nói.

Hiệu suất

Cho đến nay, khu vực phát triển khung đã trưởng thành với các khung phổ biến như Angular, React và Vue mang đến cho các nhà phát triển khả năng phát triển các giải pháp mạnh mẽ, Lynch của Ionic cho biết.

Các nhà phát triển đôi khi vẫn có thể cảm thấy choáng ngợp vì bối cảnh khung bị phân mảnh, nhưng Fluin của Google giải thích rằng đó thực sự là một điều tốt bởi vì các khung chính trở nên phổ biến hơn, họ tập trung để cập nhật, sáng tạo và linh hoạt. “Nếu chúng ta duy trì trạng thái tĩnh, chúng ta sẽ tiếp tục chuyển cùng một sản phẩm từ năm này qua năm khác và không học hỏi từ hệ sinh thái, xây dựng trên đỉnh của hệ sinh thái và làm việc với hệ sinh thái”, Fluin nói.

Vấn đề là các khung đó đã kết thúc bằng việc đưa một tấn mã vào các ứng dụng của nhà phát triển, khiến thời gian tải chậm. Mặc dù ứng dụng hoặc giải pháp có thể cung cấp một loạt các tính năng hấp dẫn nhưng ứng dụng này đã giành được bất cứ điều gì có ý nghĩa với người dùng nếu họ phải đợi để tải, Lynch giải thích. Google cũng đã bắt đầu đàn áp các ứng dụng chậm, đặc biệt là trong bảng xếp hạng kết quả của công cụ tìm kiếm, vì vậy các nhà phát triển hiện đang cố gắng tối ưu hóa hiệu suất bằng cách gửi càng ít dữ liệu hoặc mã càng tốt để ứng dụng chạy nhanh.

Google đã tạo Dự án trang di động tăng tốc (AMP), một sáng kiến ​​nguồn mở nhằm tăng tốc các trang web và cải thiện trải nghiệm người dùng trên tất cả các thiết bị và nền tảng. “Ngày nay, kỳ vọng là nội dung sẽ tải siêu nhanh và dễ khám phá. Thực tế là nội dung có thể mất vài giây để tải, hoặc, vì người dùng từ bỏ những trang chậm nên họ không bao giờ tải hoàn toàn. Trang di động được tăng tốc là các trang web được thiết kế để tải gần ngay lập tức - chúng là một bước tiến tới một trang web di động tốt hơn cho tất cả mọi người” – điều này được đăng trên trang web của dự án.

Dự án mã nguồn mở Ionic chống lại các vấn đề về hiệu năng bằng cách tạo các thành phần web có thể sử dụng lại với một dấu mã nhỏ. Nếu một công ty đang sử dụng nhiều khung khác nhau, họ không còn phải xây dựng các thành phần khác nhau riêng biệt nữa, Lynch giải thích. “Phát triển Web vẫn chưa chọn được người chiến thắng. React rất phổ biến, nhưng nếu bạn gọi nó là người chiến thắng thì bạn đang bỏ lỡ hầu hết những gì đang xảy ra trong doanh nghiệp nơi Angular là vua. Sau đó, có cả một nhóm người sử dụng những thứ như jQuery”, Lynch nói. “Chúng tôi đã hoàn thành nhiệm vụ của mình, đó là trao quyền cho mọi nhà phát triển web để xây dựng các ứng dụng di động, máy tính để bàn và trang web tuyệt vời với các thành phần của chúng tôi, nếu chúng tôi chỉ làm việc với một khung”.

Việc sử dụng các thành phần web rất hấp dẫn bởi vì nó cho phép các nhà phát triển sử dụng lại mã càng nhiều càng tốt, theo Wong của Gartner. Các thành phần web bao gồm ba công nghệ chính - các thành phần tùy chỉnh, các mẫu DOM và HTML - có khả năng được sử dụng ở bất cứ đâu mà không phải lo lắng về các xung đột mã.

“Thực tế là những khung này đòi hỏi kiến ​​thức cụ thể. Các thành phần web nhằm mục đích san bằng sân chơi một chút cho các nhà phát triển web vì họ không yêu cầu họ phải học một khung cụ thể. Đó là tất cả các nguyên tắc cơ bản và kiến ​​trúc phù hợp để xem xét trong việc xây dựng một trang web hoặc ứng dụng web. Các thành phần web là một con đường cho tiêu chuẩn hóa và khả năng chuyển đổi các khung mà không có tác động đáng kể”, Wong nói.

“Ngoài Google, AMP và Ionic, các ứng dụng khác, Salesforce gần đây đã phát hành giải pháp nguồn mở Lightning Web Components, để tạo các thành phần web trên nhiều nền tảng khác nhau. Các lợi ích rất quan trọng: bạn chỉ cần học một khung duy nhất và bạn có thể chia sẻ mã giữa các ứng dụng” Christophe Coenraets, nhà phát triển của Salesforce đã viết.

Một vấn đề khác với hiệu suất web hiện nay là có quá nhiều phiên bản ngôn ngữ có sẵn. Ví dụ: Fluin của Google đã giải thích rằng các phiên bản JavaScript cũ hơn như ECMAScript 5 là bắt buộc đối với các trình duyệt cũ hơn trong khi các trình duyệt hiện đại tận dụng các phiên bản JavaScript hiện đại. Điều đó trở nên có vấn đề vì các phiên bản cũ hơn của JavaScript không có tất cả các tính năng tương tự do một phần của các nhà phát triển dịch mã cuối cùng tạo ra nhiều mã hơn. “Bạn sẽ thể hiện một khái niệm thực sự đơn giản như có một lớp và sau đó điều sẽ xảy ra là lớp đó sẽ được dịch sang ngôn ngữ không có lớp, kết thúc bằng việc thêm rất nhiều gánh nặng và tác động hiệu suất”, Fluin nói . Kết quả là, Angular đã tạo ra tải vi sai, một quá trình cho phép các trình duyệt lựa chọn giữa JavaScript hiện đại hoặc kế thừa tùy thuộc vào các khả năng mà nó hỗ trợ.

Các khung web hàng đầu là:

  1. jQuery
  2. React.js
  3. Angular/Angular.js
  4. ASP.NET
  5. Express
  6. Spring
  7. Vue.js
  8. Django
  9. Flask 
  10. Laravel

Đây là kết quả của cuộc khảo sát hàng năm của nhà phát triển Stack Overflow, xem xét phản hồi từ gần 90.000 nhà phát triển trên toàn thế giới. Trong khi một số lượng lớn các nhà phát triển đang sử dụng jQuery, năm nay, ngày càng có nhiều nhà phát triển chuyển sang React.js và Angular, báo cáo tiết lộ.

Ngoài ra, báo cáo đã xem xét các khung web được yêu thích nhất, đáng sợ và được mong muốn nhất. Các khung được yêu thích hàng đầu bao gồm React, Vue, Express và Spring, trong khi các khung đáng sợ nhất bao gồm Drupal, jQuery và Ruby on Rails. Khi nói đến các khung web muốn nhất cho các nhà phát triển, các khung hàng đầu bao gồm React, Vue và Angular.

Anh Học