Trừu tượng là một khái niệm quan trọng của lập trình máy tính và khung giúp các lập trình viên đạt được điều này. Đây là một điều tốt. Tôi nghi ngờ nhiều người chúng tôi muốn phát triển các hệ thống phức tạp trong ngôn ngữ lắp ráp! Vấn đề xuất hiện, tôi nghĩ, khi các lập trình viên có ít ý tưởng về lớp trừu tượng đang che giấu. Nói cách khác, bạn cần có một số ý tưởng về những gì diễn ra dưới mui xe, ngay cả khi bạn không trực tiếp tương tác hoặc giao diện với nó.
Tôi nhớ đã phát triển một số trang web động đầu tiên vào giữa những năm 90, sử dụng C và CGI (tại thời điểm phần lớn các trang web vẫn là HTML tĩnh). Thực sự không có bất kỳ ngôn ngữ kịch bản phía máy chủ trưởng thành nào (như PHP hoặc ASP) và rất ít thư viện, do đó bạn phải viết toàn bộ luồng phản hồi HTTP đến máy chủ với mỗi trang. Phân tích các tham số GET và POST yêu cầu viết thư viện của riêng bạn. Đó là tẻ nhạt, chậm, chăm chỉ và rất dễ bị lỗi. Tôi không bỏ lỡ nó một chút!
Tuy nhiên, tôi cũng cảm thấy các khung như các mẫu web ASP.NET trừu tượng toàn bộ bản chất phi trạng thái của web đến mức nhiều nhà phát triển web mới có chút manh mối về những gì thực sự đang diễn ra. Điều này dẫn đến mã không hiệu quả, cồng kềnh hoạt động kém vì nhà phát triển đang kết nối các thành phần bằng cách sử dụng phương pháp "drag'n'drop" mà không nhận ra điều gì đang xảy ra ở cấp HTTP.
Vì vậy, tôi tin rằng các khung công tác rất cần thiết để phát triển phần mềm cấp cao, nhưng chúng không loại bỏ các nhà phát triển có hiểu biết về những gì đang bị trừu tượng hóa. Vâng, khuôn khổ có thể làm bạn chết lặng, nhưng chỉ khi bạn không hiểu chúng.