Bài viết được dịch từ blog Systems Architect
Bạn đã từng nghe về một framework PHP full stack có tên là Phalcon chưa? Nó được viết bằng ngôn ngữ C, có tốc độ cực nhanh, tài liệu được viết cẩn thận và nó đang thổi một làn gió mới vào thế giới PHP. Phalcon đã được phát triển một thời gian, nhưng vì một vài lý do mà tới bây giờ tôi mới quan tâm nhiều đến nó. Tại sao nó lại đặc biệt ư? Nếu bạn cho phép thì tôi sẽ thử chứng minh rằng framework này có một tiềm năng để thay đổi cuộc chơi trong tương lai.
Tôi vừa hoàn thành một khảo sát nhanh và thấy rằng cộng đồng PHP vẫn còn khá im ắng về chủ đề này. Chỉ có một bài trên dzone.com và hai bài trên phpdeveloper.org là nói về Phalcon. Một trong số đó được viết bởi tác giả Anthony Ferrara, nhưng thực ra đây là một bài chỉ trích các framework dựa trên ngôn ngữ C. Anthony là một blogger rất nổi tiếng và được cộng đồng tôn trọng. Có lẽ những quan điểm của ông ta cũng đủ để dập tắt bất kỳ một sự phấn khích ban đầu nào về Phalcon?
Mặc dù tôi hiểu các luận điểm mà Anthony nêu ra, nhưng tôi xin phép được không đồng ý với quan điểm của ông ta. Hiện tại tôi đang phải đối mặt với một rắc rối khá lớn trong tốc độ thực thi của các framework ZF1 và PropelORM. Cả hai framework này đều có mức trừu tượng cao và có rất nhiều kế thừa. Một request bao gồm xấp xỉ khoảng 300 file. Chỉ có 25% trong số các file đó là code của chúng tôi. Thậm chí nếu một controller là empty thì nó cũng mất một thời gian rất lớn để handle một request (APC đã được cài và không có I/O). Đây là một mối bận tâm lớn đến công việc kinh doanh của chúng tôi và chúng tôi phải có một số giải pháp để giảm nhẹ nó.
Có một quan niệm phổ biến trong cộng đồng đó là phần lớn các ứng dụng PHP sẽ chẳng bao giờ làm việc được dưới lượng traffic lớn. Tuy nhiên điều này không chỉ nói về số lượng request trên mỗi giây mà còn quan tâm đến trải nghiệm của người dùng. Ví dụ như trong các ứng dụng của Google chẳng hạn, luôn có một mối tương quan giữa thời gian tải và nội dung sử dụng. Người dùng sẽ phải làm nhiều thao tác hơn nếu họ phải đợi ít hơn. Google là một "ông trùm" trong việc khiến cho các dịch vụ của họ ngày càng nhanh hơn, tại sao tất cả chúng ta lại không làm như vậy?
Trong khi mải bàn luận về Phalcon thì rất dễ quên mất rằng điểm mạnh về tốc độ thực thi không phải là đặc trưng duy nhất của nó. Phalcon là một full stack framework và có thể làm rất nhiều thứ. Nó đưa ra những thứ như: ORM, query language, template engine, micro application front controller hoặc những devtool rất hữu ích. Tất cả chúng được gói trong một tài liệu phong phú với những ví dụ tuyệt vời.
Vấn đề lớn nhất mà tôi có thể nhìn thấy với các framework dựa trên ngôn ngữ C đó là không có sự truy cập trực tiếp đến mã nguồn. Tôi hoàn toàn đồng ý với quan điểm này của Anthony. Bạn không thể có tài liệu về mọi thứ và bạn không thể tìm thấy tất cả các câu trả lời trên Google. Sẽ có những tình huống gặp phải khi mà ai đó phải debug một chức năng nào đó. Điều này không xảy ra thường xuyên, nhưng một khi đã xảy ra thì có thể dẫn đến ngõ cụt. Nếu chỉ nhìn vào việc code viết bằng C thì sẽ khiến bạn vã mồ hôi hột và cho rằng Phalcon không phải là sự lựa chọn tốt nhất dành cho bạn? Nhưng tin tức tốt đó là, mã nguồn Phalcon được duy trì rất tốt. Cấu trúc file của nó rất trực quan và code đọc khá dễ hiểu. Thậm chí bạn chỉ cần một kiến thức C ở mức cơ bản thì cũng có đủ để debug hầu hết các vấn đề tiềm tàng rồi.
Tất cả chúng ta đều biết rằng các lập trình viên PHP không có một PR tốt. Những thứ giống như Phalcon có thể mang lại một ánh sáng mới chiếu vào cộng đồng và ngôn ngữ này. Đối với tôi thì đây là một bước tiến về phía trước nhưng Phalcon sẽ có một khoảng thời gian khó khăn trước mắt. Có rất nhiều framework PHP mạnh mẽ đang tồn tại trên thị trường. Rất nhiều blogger, speaker và lập trình viên hàng đầu đã đầu tư vô số thời gian vào những framework đó. Đột nhiên có một cái gì đó mới mẻ xuất hiện và khiến cho các framework mà họ đang sử dụng trở nên một chút... lỗi thời. Những thứ giống như thế này sẽ luôn mang lại một số cảm xúc, mà các lập trình viên là những sinh vật thiên về cảm xúc phải không nào?
Về tác giả bài viết:
Lukasz Kujawa là một lập trình viên có nhiều kinh nghiệm trong việc thiết kế các hệ thống hoạt động trong môi trường có lượng traffic lớn, và là một evangelist về các tiêu chuẩn trong lập trình. Ngôn ngữ lập trình chủ yếu là PHP, nhưng anh cũng thành thạo rất nhiều ngôn ngữ lập trình khác nhau. Lukasz có niềm đam mê mãnh liệt trong lĩnh vực phát triển phần mềm, anh quan tâm đến các lĩnh vực như: electronics, operating systems, networking, low level programming, databases, design patterns, high level languages, frameworks... Bạn có thể liên hệ với anh qua email lukasz[at]systemsarchitect.net
Bình luận