Tôi sẽ lập luận rằng các cấu trúc meta, mô-đun, khung, nền tảng và dịch vụ đều là các nhóm tính năng cấp cao hơn các lớp. Hệ thống phân cấp của tôi về trừu tượng hệ thống lập trình:
- dịch vụ
- nền tảng, ngăn xếp giải pháp
- khung
- mô-đun, gói
- cấu trúc meta: siêu dữ liệu, chức năng bậc cao hơn, tổng quát, mẫu, đặc điểm, khía cạnh, trang trí
- đối tượng, lớp, kiểu dữ liệu
- chức năng, thủ tục, chương trình con
- Cấu trúc điều khiển
- dòng mã
Các cấu trúc meta như siêu dữ liệu , các
hàm bậc cao hơn và tổng
quát
rõ ràng thêm sự trừu tượng hóa cho các lớp cơ bản, hàm, kiểu dữ liệu và trường hợp dữ liệu. Đặc điểm, khía cạnh và trang trí là các cơ chế mới hơn để kết hợp các tính năng mã và tương tự 'tăng tốc' các lớp và chức năng khác.
Ngay cả các ngôn ngữ tiền đối tượng cũng có các mô-đun và gói, vì vậy việc đặt chúng ở trên các lớp có thể gây tranh cãi. Bu chúng chứa các lớp và cấu trúc meta, vì vậy tôi xếp hạng chúng cao hơn.
Các khung là câu trả lời xác thực nhất - chúng phối hợp nhiều lớp, cấu trúc meta, mô-đun, hàm và như vậy để cung cấp các tóm tắt cấp cao tinh vi. Tuy nhiên, các khung công tác vẫn hoạt động gần như hoàn toàn trong lĩnh vực lập trình.
Ngăn xếp giải pháp hoặc nền tảng thường kết hợp nhiều khung, hệ thống con hoặc thành phần vào một môi trường để giải quyết nhiều vấn đề.
Cuối cùng, có các dịch vụ - được triển khai dưới dạng dịch vụ Web hoặc mạng. Đây là các kiến trúc, khung, ngăn xếp giải pháp hoặc khả năng ứng dụng được phân phối dưới dạng các gói hoàn chỉnh. Nội bộ của họ thường mờ đục, chủ yếu phơi bày quản trị viên, lập trình và giao diện người dùng. PaaS và SaaS là những ví dụ phổ biến.
Bây giờ, sự tiến triển này có thể không hoàn toàn thỏa mãn, vì một vài lý do. Đầu tiên, nó tạo ra một sự tiến triển tuyến tính hoặc phân cấp gọn gàng của những thứ không hoàn toàn tuyến tính hoặc phân cấp. Nó bao gồm một số khái niệm trừu tượng như "ngăn xếp" và dịch vụ không hoàn toàn dưới sự kiểm soát của nhà phát triển. Và nó không tạo ra bất kỳ bụi pixie ma thuật mới. (Spoiler: Không có bụi pixie ma thuật. )
Tôi nghĩ rằng đó là một sai lầm khi chỉ tìm kiếm các mức độ trừu tượng mới . Tất cả những cái tôi liệt kê ở trên đã tồn tại trong nhiều năm , ngay cả khi chúng chưa nổi bật hoặc phổ biến như bây giờ. Và trong những năm đó, sự trừu tượng có thể ở mọi cấp độ mã hóa đã được cải thiện. Bây giờ chúng ta có các bộ sưu tập chung, đa mục đích, không chỉ là mảng. Chúng tôi lặp qua các bộ sưu tập, không chỉ phạm vi chỉ mục. Chúng tôi có danh sách hiểu và lọc danh sách và hoạt động bản đồ. Nhiều hàm của ngôn ngữ có thể có số lượng đối số và / hoặc đối số mặc định khác nhau. Và như thế. Chúng tôi đang tăng sự trừu tượng ở mọi cấp độ, vì vậy việc thêm nhiều cấp độ không phải là một yêu cầu để tăng mức độ trừu tượng chung.