Các Framework thông dụng
- Tháng Mười Hai 8, 2020
- Posted by: codestar
- Category: Uncategorized
Trong công nghệ thông tin, Framework là các thư mục, cấu trúc code được tổ chức sẵn, có thể cung cấp thêm 1 số các thư viện tạo nên khung chương trình bao gồm các thành phần cơ bản và phổ thông, giúp việc lập trình trở nên nhanh chóng.
Lợi ích của việc sử dụng Framework
Các lập trình viên hoặc các Developer có thể làm một trang web hoặc một ứng dụng web hiện đại mà không cần có Framework. Tuy nhiên, việc sử dụng Framework giúp tối ưu hóa quá trình phát triển và thiết kế web, tích hợp sẵn những đoạn mã phổ thông, tránh những công việc lặp đi lặp lại nhàm chán, giúp lập trình viên tập trung vào thiết kế logic đặc thù với hệ thống của mình. Hiện nay có rất nhiều loại Framework, mỗi loại Framework hỗ trợ cho 1 hoặc nhóm ngôn ngữ lập trình tương ứng khác nhau.
Các loại Framework
Có rất nhiều lựa chọn Framework phục vụ cho các mục đích và các loại ứng dụng khác nhau (Backend, Frontend, Mobile, …) Tuy trong bài viết này, chúng tôi đưa ra một vài Framework cho web và Framework cho ứng dụng mobile được sử dụng phổ biến nhất.
Các web Framework
Nhìn chung sử dụng mô hình MVC, có thể tích hợp các loại thư viện khác nhau, tuy nhiên có 1 số điểm khác biệt như sau:
Laravel: là Framework phổ biến nhất, được sử dụng đông đảo, sử dụng thiết kế theo kiến trúc MVC. Vì vậy có rất nhiều thư viện và tùy chọn hỗ trợ cho Laravel. Laravel cung cấp nhiều đoạn mã code đơn giản và dễ dàng tái sử dụng giúp cho việc viết code nhanh chóng hơn. Tài liệu của Laravel cũng đơn giản và dễ hiểu, thời gian làm quen ở mức vừa phải. Vì vậy các Developer có thể nhanh chóng tiếp cận.
CodeIgniter: là một php Framework sử dụng kiến trúc Model View Controller (MVC). CodeIgniter phổ biến cho cộng đồng người mới bắt đầu học lập trình web.Các chức năng nhìn chung giống laravel, tuy nhiên đã được giản lược bớt những thành phần phức tạp và không cần thiết. Document rất đơn giản và dễ học. Tuy nhiên vì cấu trúc khá đơn giản, nên việc mở rộng và xây dựng các web với các chức năng phức tạp sẽ trở nên khó khăn hơn với CodeIgniter.
Symfony: là Framework theo kiến trúc module, do vậy không bị hạn chế về mặt kiến trúc như MVC. Laravel thực chất được build trên nền các component của symfony. Symfony nhìn chung tốn nhiều thời gian để xây dựng các thành phần cơ bản lúc bắt đầu. Tuy nhiên có khả năng tùy biến cao với những dự án có nhiều các chức năng phức tạp và thường xuyên thay đổi. Document của symfony tốn nhiều thời gian và công sức hơn để học, và nó cũng support các liên kết với các thành phần khác như Database và Storage chi tiết hơn.
CakePHP: là Framework đầu tiên có trên thị trường, được tạo ra với mục đích cung cấp một Framework cho người sử dụng PHP ở mọi cấp độ đều có thể phát triển nhanh chóng, mạnh mẽ và linh hoạt. CakePHP là Framework theo kiến trúc HMVC (một kiến trúc mở rộng của MVC), do đó cung cấp cho nhà phát triển có thể mở rộng hơn so với các Framework theo kiến trúc MVC thông thường. CakePHP có thể phù hợp với cả những dự án nhỏ và lớn, với tính bảo mật cao.
Tuy nhiên CakePHP không có nhiều tùy chọn được thiết kế sẵn (như Laravel), nên tốc độ cũng nhanh hơn.
Yii: Hãy lựa chọn nó nếu như bạn muốn tăng hiệu năng cho website của mình. Nó có tốc độ nhanh nhất trong các PHP Frameworks được liệt kê nhờ vào tính năng lazy loading. Nó có một bộ components mạnh mẽ để bạn phát triển ứng dụng web một cách tối đa. Ngoài ra, Yii nổi bật ở khía cạnh nó rất dễ cài đặt, bảo mật cao để bạn có thể tạo ra các dự án với độ an toàn cao nhất.
Các mobile Framework
React Native: là một Framework cho phép các lập trình viên thiết kế các ứng dụng di động bằng những công nghệ hoạt động trên Web, phát triển ứng dụng di động, thiết kế các ứng dụng di động đa nền tảng với sự trợ giúp của javascript. Lập trình viên có thể sử dụng mã nguồn duy nhất cho cả Android và IOS. Hơn nữa, React Native thiết kế theo kiến trúc Module, dễ bổ sung, sửa đổi.
Mặt hạn chế của React Native là khá phức tạp, mất nhiều thời gian trong quá trình develop và đôi khi bị phân mảnh (Do hỗ trợ nhiều tính năng khác nhau trên các loại thiết bị khác nhau).
Xamarin: Cũng tập trung vào khả năng cross-platform (Android và IOS) Xamarin có những đặc điểm riêng biệt, hiếm có so với các Frameworks với các ứng dụng nhỏ, giúp tiết kiệm thời gian phát triển. Tuy nhiên, Xamarin không mạnh về các loại đồ họa phức tạp, do vậy nếu App cần các loại đồ họa này thì Xamarin không phải lựa chọn thích hợp. Ngoài ra, khả năng native access và trải nghiệm người dùng native vẫn đang bị đặt nghi vấn.
PhoneGap hay Ionic: là các Framework đa nền tảng. Đặc điểm khác so với React Native là đây không phải là App thực sự, mà chỉ là các thành phần web tĩnh, được tích hợp lại để phục vụ như 1 App. Nó cho phép các lập trình viên phát triển các ứng dụng di động bằng HTML, CSS và Javascript. Có thể thực hiện được 1 số tính năng đơn giản, tuy nhiên về hiệu năng thì chưa được tốt.
Kết luận
Nhờ vào Framework mà việc lập trình web và ứng dụng trở nên đơn giản hơn nhiều. Khi nhắc đến Framework bạn sẽ hiểu được Framework là gì và ứng dụng của nó ra sao. Từ đó có được những lựa chọn phù hợp cho mình, các bạn hãy nhớ việc sử dụng tốt các Framework sẽ giúp các bạn tiết kiệm được rất nhiều thời gian.