Lập trình theo cách của ứng dụng nhỏ

Trong chương này, tôi muốn xem xét các bài học rút ra được từ việc nghiên cứu các ứng dụng nhỏ theo quan điểm của nhà phát triển web hoặc trả lời câu hỏi ý nghĩa của việc phát triển ứng dụng cỡ nhỏ là gì.

Thay vì phát minh lại vô lăng và yêu cầu nhà phát triển xây dựng thêm một cách triển khai khác cho các mô hình giao diện người dùng phổ biến như thẻ, phong cách, băng chuyền, v.v., các ứng dụng nhỏ chỉ cung cấp một lựa chọn mặc định gồm các thành phần có thể mở rộng trong trường hợp bạn cần thêm. Tương tự như trên web, cũng có rất nhiều lựa chọn, một số lựa chọn tôi đã liệt kê trong chương về thành phần của ứng dụng thu nhỏ. Lý tưởng là các thư viện thành phần trên web được xây dựng theo cách mà bạn có thể tuỳ ý kết hợp các thư viện đó. Trong thực tế, quá nhiều lần, có một yếu tố phụ thuộc nhất định liên quan đến hệ thống thiết kế mà bạn cần mua khi sử dụng một thành phần, hoặc thư viện thành phần được phân phối theo cách mà là toàn bộ hoặc không có, nhưng không có thành phần riêng lẻ nào có thể dễ dàng được thêm vào dự án. Tuy nhiên, có các thành phần nguyên tử mà bạn có thể sử dụng riêng biệt hoặc các thư viện như thành phần chung chưa được tạo kiểu cố định. Việc sử dụng những tính năng đó có vẻ là ý tưởng hay.

Mô hình chế độ xem mô hình

Mẫu kiến trúc model–view–viewmodel (MVVM) hỗ trợ việc phân tách trong quá trình phát triển giao diện người dùng đồ hoạ (khung hiển thị) thông qua ngôn ngữ đánh dấu khỏi quá trình phát triển logic phụ trợ (mô hình) – có nghĩa là khung hiển thị không phụ thuộc vào bất kỳ nền tảng mô hình cụ thể nào. Mặc dù mẫu này có một số nhược điểm đã nêu, nhưng nhìn chung, mẫu này hoạt động rất hiệu quả đối với các ứng dụng phức tạp như các ứng dụng nhỏ. Tính năng này có thể toả sáng, đặc biệt là với các thư viện tạo mẫu phong phú (xem chương tiếp theo).

Tư duy theo trang

Việc gỡ lỗi các ứng dụng nhỏ cho thấy về cơ bản chúng là các ứng dụng nhiều trang (MPA). Việc này có nhiều ưu điểm, chẳng hạn như hỗ trợ việc định tuyến đơn giản và tạo kiểu trên mỗi trang không có xung đột. Mọi người đã áp dụng thành công cấu trúc MPA cho Ứng dụng web tiến bộ. Tư duy trên các trang cũng giúp bạn quản lý các tài nguyên như các tệp CSS và JavaScript của mỗi trang và các thành phần khác như hình ảnh và video. Quan trọng nhất là việc xây dựng theo cách này đồng nghĩa với việc bạn sẽ được phân tách mã dựa trên tuyến miễn phí nếu không tải bất cứ nội dung nào khác. Trong trường hợp đó, mỗi trang theo định nghĩa hoàn toàn chỉ tải những nội dung cần thiết để hoạt động.

Quy trình xây dựng

Ứng dụng nhỏ không có quy trình xây dựng rõ ràng. Trên web, các công cụ xây dựng hiện đại như Snowpack tận dụng hệ thống mô-đun tích hợp của JavaScript (gọi là ESM) để tránh các công việc không cần thiết và luôn hoạt động nhanh chóng bất kể dự án phát triển lớn đến đâu. Mặc dù chỉ mới bắt đầu đối với những công nghệ như Web Bundle, nhưng đây là thứ có thể dễ dàng được thêm vào quá trình xây dựng.

Khả năng mạnh mẽ

Gần đây, nền tảng web đã có được nhiều tính năng mới. Hiện tại, bạn có thể truy cập vào thiết bị qua Bluetooth, USB, HID, serialNFC. Trong trường hợp ứng dụng nhỏ chạy trong WebView và phụ thuộc vào cầu JavaScript, trên web, những khả năng mạnh mẽ này có sẵn trực tiếp. Vì vậy, bạn sẽ không lập trình dựa trên API do cầu JavaScript cung cấp, mà sẽ lập trình dựa trên API trình duyệt mà không có tác nhân trung gian.

Xác nhận

Bài viết này đã được Joe Medley, Kayce Basques, Milica Mihajlija, Alan Kent và Keith Gu đánh giá.