Phát triển ứng dụng web đã trải qua một chặng đường dài để tạo ra nhiều ứng dụng khai báo mã (the application code declarative). Điều này bao gồm việc giới thiệu các framework phía máy chủ (ví dụ: Ruby trên Rails và Django), framework phía khách hàng (ví dụ: AngularJS và React), cùng với các ngôn ngữ được hỗ trợ bởi các tiêu chuẩn web (ví dụ: HTML và CSS). Mặc dù những framework và ngôn ngữ này làm cho lập trình khai báo có thể áp dụng cho nhiều khía cạnh của các ứng dụng này (đặc biệt là phần trình bày), một khía cạnh quan trọng của ứng dụng web luôn được giữ lại theo hướng mệnh lệnh (imperative): logic nghiệp vụ (business logic) của chúng.

Trong bài báo này, nhóm tác giả áp dụng một nguyên tắc nổi tiếng trong Khoa học Máy tính – khái niệm rằng chương trình (mã nguồn) và trạng thái (dữ liệu) có thể trao đổi được – vào một kỹ thuật nổi tiếng khác – nhúng ngôn ngữ theo miền cụ thể (domain-specific language embedding) – để hình thành một phương pháp mới trong việc phát triển ứng dụng, được gọi là Nhúng Ứng dụng (Application Embedding), cho phép logic nghiệp vụ của ứng dụng được định nghĩa theo cách khai báo thay vì được triển khai theo hướng mệnh lệnh.

Việc áp dụng lập trình khai báo, mà theo bản chất là không có trạng thái, vào việc triển khai logic nghiệp vụ, mà theo bản chất là mệnh lệnh, có vẻ không khả thi hoặc thậm chí không thể. Thực sự, ngôn ngữ lập trình mệnh lệnh chung thường được sử dụng để triển khai logic nghiệp vụ. Tuy nhiên, nếu chúng ta nhìn kỹ hơn, logic nghiệp vụ mệnh lệnh có thể được liên kết với một lựa chọn thiết kế chung nhưng không quan trọng: Kiến trúc Ba Lớp (the ThreeTier Architecture).

Chi tiết Bài báo >

Posted in ,