Các Frameworks - học, dùng và ... lợi dụng


Lâu rồi mới quay lại forum, nhu cầu cấp bách nhất hiện giờ đang là tìm kiếm một vài coder cho cty của mình. Tôi đã cùng forum từ những năm 2008, nhớ lại bài viết
From newbie to PHP professional - the roadmap (http://www.phpvn.org/index.php?topic=407.0) cũng đã được 2 năm rồi đấy, nhưng forum mình vẫn còn nhiều starter và beginner quá, dù vậy, không ít "anh hào" đã từng ghé qua rồi lại ... ra đi vì không cùng ... level.

Hôm nay, lại share cùng với bà con tiếp 1 chuyện, về con đường họp PHP thông qua framework, cái nào để học, cái nào nên dùng và cái nào để lợi dụng. Đây cũng chỉ là kn cá nhân, hữu ích với người này nhưng có thể không hợp với người kia.

Có 2 cách học ở xứ VN mình: 1) mỳ ăn liền - học ra làm công nhân và 2) bác học - học ra làm ... bác học mà thực sự là vô học. Đó là nói chung về nhiều ngành nghề và thực trạng. Với PHP, mì ăn liền rất dễ nuốt với các món Joomla hay Wordpress, osCommerce,... Bác học thì đa số các trường ĐH "chê" PHP vì về bản chất nó là 1 scripting language nhiều hơn là programming langauge. Mà đã vào đến tận ĐH, ai lại đi học scripting language chứ  ?!? Thực tế, với đa phần phổ thông ề trình độ mọi người và con số website trên thế giới chứng minh, PHP kiếm được khá bộn tiền

Cách học nào cho đúng đây ? Chân phương mà nói nếu bạn học bài bản từ ĐH ra và là người thích lập trình thì ngôn ngữ không phải vấn đề. Thế nhưng, nhiều bạn cũng không có điều kiện này mà tự học là chính.

Đầu tiên, học và hành phải đi liền với nhau cho nên cách học nào cũng phải có 1 chút "mỳ" trong đó, tức là học là phải làm ra kết quả được ngay, cho nên ngay từ bước đầu học PHP, hãy tìm ví dụ để học và chỉ cần các ví dụ nhỏ trong các e-book là đủ. Bạn cần:

- cú pháp PHP
- sơ lược về OOP
- kết nối database và run vài câu query
- một ít JS và HTML/CSS

cách học này dùng framework nên trước khi học framework, đừng cố gắng làm ứng dụng shopping-cart hay cái gì tương tự. Thực sự tới khi tôi viết những site kha khá lớn bằng framework rồi, bản thân tôi cũng chưa bao giờ viết shopping cart bằng pure PHP.

Hãy học bằng CodeIgniter

Đây là 1 framework tốt và dễ dùng nhất từ trước tới giờ. Nó khá đơn giản nhưng không hề yếu, mà lại chạy rất nhanh. Bất cứ 1 framework nào được viết lên khi nghĩ tới speed đều muốn so với CI.

Chỉ với CI, bạn học khá nhiều thứ.

1. Mô hình MVC (OK, bạn có biết vô số ĐH ở VN này sử dụng .NET để y/c SV làm bài tập, rất coi thường PHP nhưng vào năm 2008, MVC cho ASP.NET mới hoàn thiện và 2009 mới Microsft chấp nhận nó officially. MVC có trong PHP và JAVA từ thuở xưa như trái đất vậy  )

2. Các library của CI. chỉ ở cách sử dụng, bạn sẽ thấy nó đơn giản hơn tất cả các framework khác nhưng hiệu quả không hề kém. Và với level starter thì cách dùng library của CI là phù hợp và dễ hiểu, từ đó bạn sẽ có mong muốn viết các library bổ sung hoặc nâng cấp - good for you.

3. Một chút về bảo mật, form, session, url. Riêng cơ chế session của CI cũng đủ để Joomla chào thua (không phải joomla authors làm không được  mà vì không dùng vì Joomla không tính tới mức độ mở rộng của ứng dụng tới mức như vậy) và cơ chế lấy dữ liệu được submit bằng POST và GET của CI cũng đã là bảo mật hơn cho người coder.

(FYI - các framework khác chọn cách để ngỏ khả năng xử lý dữ liệu nhập của người dùng thay vì kiểm soát chặt chẽ, nó là tốt với những người coder có kn nhưng khá nguy hiểm nếu cứ chỉ dùng khơi khơi như vậy).

Tuy nhiên, CI hơi khó kiếm cơm và nhất là với những nhu cầu "mỳ gói" ở VN này thì không thể cạnh tranh về tính năng (không phải do mình viết nhưng vẫn tính tiền khách hàng được) của Joomla !  CI rất rốt nhưng để viết các ứng dụng lớn hay duy trì lâu dài, phải nâng cấp thường và có nhiều thay đổi là khá khó.

Hãy dùng Yii
Một tên tuổi PHP Framework mới nhưng Yii chính là hậu sinh của Prado. Yii đang nổi lên là 1 framework tốt bởi hiếm có nhóm phát triển framework nào bỏ đi 1 framework để làm cái thứ hai với những kn đã có từ cái framework (mà số fan sử dụng không hề nhỏ nhé) như nhóm làm Yii.

Ưu điểm của Yii là tính đơn giản trong cách viết kết hợp với thế mạnh "scripting" của PHP và cơ chế mảng index (associative array). Yii cũng được viết bởi những người viết "thực tế" hơn Zend nên có sẵn những công cụ "hợp thời trang" nhất cho người viết ứng dụng.

Yii là framework MVC nhưng có kiến trúc OOP rất tốt và lại hướng component nên mức độ tái sử dụng giữa các project rất cao. Yii đặc biệt chạy nhanh hơn Zend và Symfony.

Hãy lợi dụng Zend

Được tạo ra bởi tổ chức support lớn nhất cho PHP, giống như Microsoft tạo ra .NET hay Sun viết ra Java, Zend Framework có nhiều tính năng nhất và công cụ nhất cho người lập trình. Zend có các component như indexing hay API cho Yahoo, Google theo kiểu độc nhất vô nhị mà các framework khác không có. Khi các framework khác không có cái bạn cần, có thể "mượn" các component của Zend để dùng.

Điểm yếu của Zend là tốc độ chậm và sự cồng kềnh. Mọi thứ trong Zend đều đẹp nhưng với 1 ứng dụng trung bình, viết bằng Zend sẽ không hề nhanh hơn dùng Yii nhưng kết quả thì chắc chắn rùa chạy với thỏ.

Một vài kn chia sẻ cùng các bạn.


Bài viết coppy của anh phpKungfu bên PHPVN.org

Post a Comment

Mới hơn Cũ hơn