Framework là các đoạn code đã được viết sẵn cấu thành một bộ khung và các thư viện lập trình đã được đóng gói
Trong ngành công nghệ thông tin nói chung và thiết kế web, lập trình web nói riêng, chắc hẳn bạn đã nghe nhiều về khái niệm Framework. Cụm từ này được dùng rất nhiều trong các sản phẩm công nghệ và các ứng dụng. Vậy bạn có biết Framework là gì không? Trong bài viết này tungphat.com sẽ nói rõ về khái niệm này cho các bạn biết.
Framework là gì?
Framework là các đoạn code đã được viết sẵn cấu thành một bộ khung và các thư viện lập trình đã được đóng gói. Nó cung cấp các tính năng có sẵn như mô hình, API và các yếu tố khác nhằm tối giản việc phát triển các ứng dụng web năng động, phong phú. Framework giống như là bạn có khung nhà đã được làm sẵn nền móng cơ bản, và bạn chỉ cần vào để xây dựng nội thất theo ý muốn của mình thôi.
Framework có 2 thành phần chính là NET Framework class library và Common Language Runtime (CLR). CLR là một chương trình được viết tắt bằng .NET, không biên dịch ra mã máy mà nó được dịch ra bằng một ngôn ngữ trung gian Microsoft Intermediate Language (MSIL). Khi chạy chương trình, CLR sẽ dịch MSIL ra mã máy để thực thi các tính năng. Còn NET Framework class library thì làm nhiệm vụ cung cấp thư viện lập trình như cơ sở dữ liệu, ứng dụng, các dịch vụ web.
Các loại Framework
Có rất nhiều framework cho backend, front end, ứng dụng mobile,… và có lẽ phổ biến nhất là web framework và các framework dành cho mobile.
Framework cho ứng dụng web là các framework phần mềm được dùng để sắp xếp hợp lý các ứng dụng web và phát triển website, các dịch vụ web, các tài nguyên web. Loại framework ứng dụng web phổ biến đó là kiến trúc Model-View-Controller (MVC). Để lập trình một website bạn cần phải dùng đến 3 ngôn ngữ thành phần là HTML, CSS và Javascript, sau đó bạn kết hợp với một ngôn ngữ kịch bản máy chủ như ASP.NET, JAVA, PHP,… với mỗi thành phần bạn sẽ có các framework khác nhau.
Framework cho ứng dụng mobile sẽ giúp bạn viết code một lần và có thể chạy được trên cả Android và iOS. Đây chính là điểm mạnh của nó để giảm bớt thời gian phát triển sản phẩm so với native code. Hiện tại thì các framework này dùng Javascript làm ngôn ngữ phát triển, nổi bật như React Native của Facebook, ngoài ra còn có Xamarin của Microsoft dùng C#, Flute dùng ngôn ngữ Dart của Google.
Những tính năng cốt của Framework web
Framework có chức năng làm tăng hiệu suất, mở rộng các chức năng và cung cấp các thư viện sẵn có khác để nhà phát triển không phải làm lại từ đầu. Có nhiều framework khác nhau từ nhỏ cho đến lớn, từ ngôn ngữ này đến ngôn ngữ kia để nhà phát triển có thể lựa chọn theo nhu cầu hay phong cách làm việc.
Một ngôn ngữ lập trình có ít nhất một framework.
Một framework dành cho website gồm có:
• Libraries: Đây là các đoạn mã được xây dựng sẵn cho một chức năng nào đó (Design pattern), bạn cũng có thể tái sử dụng chức năng đó mà không cần code lại, các tools quản lý thư viện như Composer, NPM,…
• API: là một phương thức trao đổi dữ liệu giữa các ứng dụng chính và ứng dụng khác.
• AJAX: update thông tin lên database mà không cần load lại trang web.
• Scaffolding: đây là bộ khung các quy tắc mà một framework MVC sử dụng để quy hoạch cơ sở dữ liệu được truy cập như thế nào.
• Caching: giúp giảm request đến máy chủ, tăng tốc độ load trang.
• Compilers: trình biên dịch từ code của bạn qua ngôn ngữ cho máy.
• Security: framework xác thực và ủy quyền user.
Ưu điểm khi dùng framework
• Nguồn mở: Hầu hết các khung phổ biến trong nhiều ngôn ngữ là nguồn mở hoặc là có sẵn để sử dụng miễn phí, đi kèm với đó là việc cấp phép không hạn chế và cho phép bạn xây dựng các sản phẩm thương mại bằng cách dùng framework.
• Bảo mật: Thông thường thì một framework được phát triển và thử nghiệm bởi các nhà thiết kế khác nhau.
• Tài liệu và hỗ trợ: Đa phần thì các framework sẽ có tài liệu tốt, hỗ trợ tốt hoặc là cả hai đều tốt. Thông thường hỗ trợ trả phí sẽ nhanh hơn, ngắn gọn hơn, nhưng nó cũng phụ thuộc vào mức độ hoạt động.
• Tích hợp: Nếu như bạn đang xây dựng hầu hết mọi loại ứng dụng gồm cả website và muốn lưu trữ dữ liệu thì bạn sẽ dùng cơ sở dữ liệu. Một cơ sở dữ liệu sẽ tồn tại nhiều công cụ khác liên kết đến thiết kế web. Vì vậy mà nhiều framework sẽ giúp việc liên kết và giao tiếp với công cụ này trở nên dễ dàng hơn nhiều.
• Hiệu quả: Đây được xem là yếu tố quan trọng nhất tại sao các framework tồn tại. Nó sẽ loại bỏ việc phải viết rất nhiều mã lặp đi lặp lại được dùng nhiều trong các ứng dụng khác nhau.
Nhược điểm khi dùng framework
• Chi phí: các framework đòi hỏi kinh nghiệm phát triển nhiều hơn cả CMS, do đó nó sẽ tốn phí hơn CMS khi thuê đội ngũ thiết kế framework.
• Hạn chế: Bạn không thể làm hết tất cả mọi thứ trên một framework duy nhất. Bởi tất cả đều bị hạn chế ở vài điểm nào đó từ mô hình mã hóa đến thiết kế cơ sở dữ liệu,…
Tóm lại: việc sử dụng framework để thiết kế website có ưu và nhược điểm khác nhau. Thế nhưng giới thiệu các bạn 1 mã nguồn đó là wordpress. Tìm hiểu thêm học lập trình wordpress đây cũng là ngôn ngữ được sử dụng phổ biến để làm website hiện nay.