Professional PHP5

Như đã hứa, hôm nay tớ xin giới thiệu đến các bạn một cuốn sách rất hay về PHP mà bản thân tớ trong thời gian qua đã học được rất nhiều thứ từ nó: Professional PHP5 của nhà xuất bản Wiley. Cuốn sách được viết bởi 4 tác giả có rất nhiều kinh nghiệm thực tế về xây dựng các hệ thống web lớn bằng PHP gồm Ed Lecky-Thompson, Heow Eide-Goodman, Steven D. Nowkicki và Elec Cove. Như bản thân tựa đề của cuốn sách đã phản ánh, Professional PHP5 (PHP5 Dành Cho Người Chuyên) không phải là cuốn sách dành cho những bạn chỉ mới bắt đầu học PHP (một cuốn sách khá hay dành cho những người mới bắt đầu học PHP theo tớ là PHP5 Unleashed của nhà xuất bản SAMS). Trái lại, cuốn sách gần như không hề giới thiệu các tính chất hay cấu trúc của PHP mà thay vào đó đi ngay trực tiếp thảo luận quá trình áp dụng những kỹ thuật lập trình đã biết bằng ngôn ngữ lập trình PHP phiên bản 5 (đọc tiếp để tìm hiểu thêm về nội dung cuốn sách).
Với phiên bản PHP5, PHP đã tiến một bước dài trong việc tiến đến trở thành một ngôn ngữ lập trình hướng đối tượng. Thực tế mà nó, PHP5 hỗ trợ gần như đầy đủ các tính chất của một ngôn ngữ lập trình hướng đối tượng với cấu trúc và từ khóa khá giống với Java (các bạn đã biết Java gần như sẽ có thể viết ngay với PHP5) (chú ý là PHP4 mặc dù cũng đã hỗ trợ lập trình hướng đối tượng nhưng còn ở một mức khá thấp).
Tuy nhiên, là một ngôn ngữ lập trình Web, bản thân PHP không thể hoạt động giống như các ngôn ngữ lập trình khác như Java,… Mặc khác, những bạn đã làm quen với PHP ở các phiên bản trước vốn đã quen với việc viết chèn lẫn các dòng mã PHP với nội dung HTML nên thường khá lúng túng khi áp dụng kỹ thuật lập trình hướng đối tượng trong PHP. Từ thực tế những gì tớ học được từ cuốn sách, Professional PHP5 sẽ giúp bạn thực sự làm quen cách thức lập trình hướng đối tượng trong PHP5. Nhưng quan trọng hơn theo tớ là những gì cuốn sách thảo luận về một số chi tiết kỹ thuật lập trình trong quá trình xây dựng các hệ thống ứng dụng web lớn.
Để ví dụ, chương 8 của cuốn sách thảo luận về cách thức xây dựng một lớp giao tiếp cơ sở dữ liệu Database Abstraction Layer. Như các bạn đã biết, PHP mặc dù được biết đến nhiều với hệ thống cơ sở dữ liệu MySQL, PHP hỗ trợ kết nối với rất nhiều loại cơ sở dữ liệu (gần như tất cả các hệ thống cơ sở dữ liệu đang có). Nếu chỉ xây dựng các hệ thống ứng dụng nhỏ, MySQL dường như đã là quá đủ. Tuy nhiên, nếu bạn đang thực hiện một dự án nghiêm túc và thật sự nghĩ xa hơn một chút về tương lai thì khả năng bạn sẽ cần phải thay đổi hệ thống cơ sở dữ liệu là hoàn toàn có thể. Vấn đề làm sao để chuẩn bị trước cho quá trình thay đổi này đòi hỏi bạn phải tính trước ngay từ khi xây dựng các "interface" (giao thức) nền của hệ thống. Chương về Database Abstraction Layer sẽ phân tích quá trình này, những điểm hay và chưa hay đồng thời đưa ra một giải pháp xây dựng lớp trung gian giao tiếp giữa phần ứng dụng và hệ thống cơ sở dữ liệu. Bằng cách đó, dù sau này bạn có quyết định chuyển sang lưu dữ liệu bằng bất kỳ hệ thống cơ sở dữ liệu nào khác thì bạn vẫn có thể yên tâm rằng ứng dụng của mình sẽ vẫn không cần thay đổi gì.
Đây là một trong những điều tớ suy nghĩ rất nhiều trong quá trình thực hiện dự án Bạn Và Nhạc. Hiện tại bọn tớ sẽ sử dụng hệ thống cơ sở dữ liệu MySQL, nhưng tính xa hơn một chút thì MySQL đến một lúc nào đó sẽ là không đủ. Tất nhiên, có thể Bạn Và Nhạc sẽ không bao giờ phát triển đến mức đó :), nhưng dù sao thì có sự chuẩn bị trước bao giờ cũng tốt hơn, nhất là trong giai đoạn đầu này thì những thay đổi sẽ dễ hơn rất nhiều…
Một ví dụ khác mà bọn tớ cũng đặc biệt thích thú tìm hiểu là cơ chế lưu phiên làm việc (session) và hệ thống xác nhận người dùng (authentication). Chương 15 của cuốn sách phân tích và thảo luận một cách chi tiết những điểm mạnh, điểm yếu của cách thức mà PHP lưu các biến "session". Thú vị hơn, cuốn sách giới thiệu một kỹ thuật để xây dựng cơ chế lưu các thông tin trong phiên làm việc (session variable) riêng của bạn vào hệ thống cơ sở dữ liệu riêng - không chỉ nâng cao hơn một nấc về bảo mật mà còn giúp cải thiện tốc độ của hệ thống. Tớ đặc biệt thú vị với chương này nên hi vọng một lúc nào đó rảnh, tớ sẽ tổng hợp những gì tớ học được từ phần này trong cuốn sách giới thiệu đến các bạn.
Những nội dung khác được thảo luận trong cuốn sách (bản mục lục) tớ trình bày dưới đây. Đọc sơ qua, có thể đối với một số bạn có vẻ như là những khái niệm quá xa vời đối với những ứng dụng nhỏ mà bạn thường hay xây dựng, nhưng một lần nữa xin nhắc lại là Professional PHP5 chỉ dành cho những người đang muốn xây dựng hệ thống ứng dụng web lớn (và tất nhiên bạn phải rất quen thuộc với PHP). Thực tế cá nhân tớ đã học được rất nhiều từ cuốn sách này trong quá trình xây dựng dự án Bạn Và Nhạc…
Chương 1: Introduction to Object-Oriented Programming
Chương 2: Unified Modeling Language (UML)
Chương 3: Putting Ojbects to Work
Chương 4: Design Patterns
Chương 5: Collection Class
Chương 6: CollectionIterator Class
Chương 7: GenericObject Class
Chương 8: Database Abstraction Layer
Chương 9: Factory Interface
Chương 10: Event-Driven Programming
Chương 11: Logging and Debugging
Chương 12: SOAP
Chương 13: Model, View, Controller (MVC)
Chương 15: Sessions and Authentication
Chương 16: Unit Testing Framework
Chương 17: Finite State Machine and Custom Configuration Files
Chương 18: Project Overview
Chương 19: Project Management Methodologies
Chương 20: Planning System
Chương 21: System Architecture
Chương 22: Assembling the Sale Force Auomation Toolkit
Chương 23: Quality Assurance
Chương 24: Deployment
Chương 25: Designing and Developing a Roburst Reporting Platform
Chương 26: Where do you go from here?


Viet Nam







pcdinh
Viet Nam
đến từ
Ha ha, cuốn này làm mình tò mò đây. Tất cả các cuốn PHP xuất bản 2005 đã có ebook, kể cả PHP Design Patterns. cuốn này thì chưa