Nếu bất kỳ ai có ý định làm về các ngành nghề liên quan đến công nghệ phần mềm thì Framework là khái niệm không thể bỏ qua. Vậy Framework là gì? Framework được sử dụng để làm gì? Những Framework nào phổ biến nhất hiện tại? Tất cả sẽ được giải đáp qua bài viết dưới đây của centralohiorescueandrestore.org .
I. Framework là gì?
Framework được hiểu như một “bộ khung” cấu thành từ các đoạn code đã được viết sẵn và thư viện lập trình (Library), dùng để cung cấp các tính năng có sẵn như mô hình, API và một số yếu tố khác giúp cho việc lập trình các ứng dụng trên web trở nên dễ dàng hơn.
Ta có thể hiểu đơn giản Framework giống như các vật liệu mà các lập trình viên dùng để xây dựng các ứng dụng/phần mềm theo ý thích của họ, thay vì phải tự mình đi thiết kế các vật liệu ấy.
Framework không đòi hỏi kỹ năng chuyên môn cao. Tuy nhiên một trong những yếu tố quan trọng mà người lập trình viên phải biết được Framework nào tương thích với ứng dụng nào?
II. Sự khác nhau giữa Framework và CMS
Trước khi đi tìm hiểu về sự khác nhau ta phải nắm được CMS là gì?
CMS là viết tắt của từ Content Management System, là hệ thống quản trị nội dung của trang web, có chức năng điều khiển tất cả mọi hoạt động về nội dung và thông tin của website. Những nội dung này bao gồm: hình ảnh, tin tức, video, danh mục,…
Hiện nay có 3 CMS phổ biến nhất thường được dùng để xây dựng website là: WordPress, Joomla và Drupal.
Điểm khác nhau lớn nhất của Framework và CMS là:
- Framework cung cấp cho lập trình viên một loạt các thư viện, API phục vụ cho việc xây dụng phần mềm, ứng dụng.
- CMS bản thân nó đã là một ứng dụng, phần mềm nên người dùng chỉ cần sử dụng mà không cần thực hiện các lệnh code phức tạp.
Thông thường CMS sẽ được phát triển dựa trên nền tảng của Framework. Chẳng hạn như: CMS Drupal được xây dựng trên nền tảng Web Framework Symfony, CMS October được phát triển dựa trên Framework Laravel.
III. Ưu và nhược điểm của Framework
1. Ưu điểm
- Cung cấp sẵn hết các tính năng chung cho ứng dụng, phần mềm.
- Giúp lập trình viên tiết kiệm được thời gian trong việc phát triển phần mềm, ứng dụng.
- Cho phép sản phẩm ứng dụng kế thừa các tính năng, cấu trúc đã được tiêu chuẩn hoá, giúp cho quá trình vận hành và bảo trì dễ dàng hơn.
- Cho phép người dùng được mở rộng hay thêm thắt những chức năng khác tùy ý dựa trên những gì Framework đã cung cấp.
2. Nhược điểm
- Mất nhiều thời gian và công sức để làm chủ được Framework.
- Kích thước các ứng dụng phần mềm trên Framework rất lớn, một số trang có thể nặng hàng trăm MB code dù chưa chứa bất kỳ nội dung nào.
- Phải tuân thủ các quy tắc mà Framework đã đề ra khi viết code.
- Vì có kích thước lớn nên sẽ không phù hợp cho việc phát triển các ứng dụng nhỏ.
IV. Một số Framework phổ biến nhất hiện tại
1. Codelgniter
Codelgniter là một Framework ứng dụng web mã nguồn mở có ngôn ngữ lập trình PHP. Framework này do Rick Ellis phát triển vào ngày 28/02/2006. Tuy nhiên, hiện nay Codelgniter được phát triển bởi ExpressionEngine Development Team thuộc tập đoàn EllisLab Inc.
2. Laravel Framework
Đây là một Framework mã nguồn mở được viết bằng ngôn ngữ lập trình PHP và được sử dụng miễn phí. Laravel Framework được xây dựng nhằm hỗ trợ phát triển các phần mềm, ứng dụng theo mô hình MVC.
Hệ thống code có trong Framework này rất linh động, mềm dẻo giúp lập trình viên có thể xây dựng được những khối code chuẩn, sạch sẽ, dễ nâng cấp mà vẫn có thể đảm bảo được tính chặt chẽ cần thiết
3. CakePHP
Framework này cũng được xây dựng theo mô hình MVC với mục đích tạo ra một nền tảng phát triển miễn phí, tạo ra những ứng dụng web nhanh, mạnh mẽ có tính linh hoạt cao.
4. Node.js
Node.js là một Framework tạo ra để thực thi các câu lệnh viết bằng ngôn ngữ lập trình web javascript.
5. Spring Framework
Đây là một Framework có mã nguồn mở, chứa Inversion of control (loC) thích hợp cho nền tảng Java, với nhiều phiên bản mở rộng của Spring để cho việc xây dựng web ứng dụng trên nền tảng này trở nên dễ dàng hơn. Hiện nay Framework này đang trở nên phổ biến trong cộng đồng lập trình Java và đang dần thay thế cho mô hình Enterprise JavaBeans (EJB).
6. NET Framework
NET Framework là một nền tảng lập trình hay một môi trường để thực thi ứng dụng NET Framework được phát triển bởi Microsoft trên nền tảng Windows. Framework này cung cấp nhiều thư viện lập trình lớn giúp cho việc lập trình phần mềm trở nên đơn giản hơn, hỗ trợ lập trình giao diện, liên kết với các cơ sở dữ liệu, tạo ứng dụng web, cung cấp các thuật toán, cấu trúc dữ liệu,…
V. Library là gì? So sánh Library và Framework
Library là một tập hợp các chức năng (functions), các lớp (class) được viết sẵn để các lập trình viên có thể tái sử dụng trong quá trình xây dựng ứng dụng, phần mềm. Mỗi functions, class này đều có một công dụng và được sử dụng cho một công việc cụ thể nào đó.
Một số điểm khác nhau giữa Framework và Library:
Library | Framework |
Là tập hợp của các lớp | Là tập hợp của các thư viện lập trình |
Các mã code của lập trình viên sẽ gửi yêu cầu đến mã lệnh | Các khối mã lệnh gửi yêu cầu đến mã lệnh của lập trình viên |
Hoạt động giống với mô hình của client/server: khi client gửi yêu cầu thì server sẽ nhận lệnh và phản hồi lại kết quả | Hoạt động ngượi lại với Library |
VI. Web Framework là gì? Các Web Framework tốt nhất hiện nay?
Web Framework là một dạng Framework được xây dựng để hỗ trợ phát triển trên các ứng dụng web. Các nguyên liệu mà Web Framework bao gồm: tài nguyên web, dịch vụ web, API web, các functions,…
Các Framework phổ biến nhất hiện nay là:
1. Ruby on Rails
Đây là một Web Framework được xây dựng trên ngôn ngữ Ruby với mã nguồn mở, miễn phí. Ruby on Rails phiên bản đầu tiên được phát hàn vào năm 2015 bởi David Heinêmier Hasson và chỉ được dùng để xây dựng web mà thôi.
Hiện nay Ruby on Rails được người dùng yêu thích bởi các lý do sau:
- Ngôn ngữ lập trình Ruby khá đơn giản và dễ học.
- Hoạ chỉnh với các nghĩa hàm thông minh
- Sử dụng ít lệnh code hơn so với các Framework khác, tốc độ tạo ra Prototype khá nhanh
- Chi phí để bảo trì hay sửa chữa thấp
- Nếu thành thạo lập trình viên có thể dễ dàng nắm bắt các Framework khác như PHP, Python,…
2. CakePHP
Đây là một Web Framework giúp phát triển ứng dụng web cách nhanh chóng và dễ dàng, thích hợp cho việc phát triển web với quy mô nhỏ. Showcase của nó đã góp phần tạo nên sức mạnh cho các trang thương mại điện tử nổi tiếng như: BMW, Huyndai, Express,… với nhiều các tính năng bảo mật cao như: xác nhận đầu vào, XSS, CSRF, phòng chống SQL injection,…
3. Spring
Spring là một Java Platform được phát triển với mục đích:
- Giảm tải công việc phát triển lập trình viên bằng việc sử dụng các đối tượng Java đơn giản
- Kéo giãn sự ràng buộc giữa các thành phần với Dependency Injection và viết interface
- Giảm số lượng các mẫu nghi thức và soạn sẵn bằng cách sử dụng các mẫu (template)
4. Angular JS
Đây là một Javascript Framework có mã nguồn mở, hoàn toàn miễn phí, dựa trên mô hình MVC dùng để tạo ra ứng dụng web động (dynamic web app)và được áp dụng trong các project Single Page Application (SPA).
5. Bootstrap
Bootstrap là một Framework design web có nền tảng cấu trúc là CSS/Javascript, được phát triển bởi Twitter. Framework này có giao diện có thể tương thích với nhiều kích thước màn hình khác nhau từ điện thoại, tablet, PC,…
Template của Bootstrap khá phong phú với nhiều lựa chọn khác nhau có cả miễn phí và mất phí, giúp cho các lập trình viên có thể tạo ra được một giao diện đẹp mắt dù không giỏi về thiết kế.
Như vậy, bài viết này đã giúp bạn trả lời câu hỏi liên quan đến Framework là gì và những Framework phổ biến nhất hiện nay. Hy vọng rằng nó sẽ giúp ích cho bạn trọng việc phát triển các ứng dụng và phần mềm cách tốt nhất. Cảm ơn bạn đã theo dõi.