Home

Nguồn từ: http://geshan.blogspot.com
Dịch bởi: chutiephat@gmail.com
Ngày: 23/9/2010

Tôi đã làm công việc lập trình khá lâu rồi. Tôi còn nhớ khi tôi xây dựng trang web chỉ với HTML, các table. Rồi tôi biết về frames, vân vân. Và đó là quá khứ, còn bây giờ tôi đang bước vào con đường lập trình bằng PHP.

Trong những năm tôi làm việc, tôi đã tìm ra những hướng đi khác nhau để theo. Tôi đặt cho nó một cái tiêu đề PHP như  là tôi đang làm việc với PHP ở một cấp độ chuyên nghiệp. Tôi đã dùng thử với ASP, JSP và các thứ khác nhưn chỉ ở cấp độ những dự án đại học. Bài blog này chủ yếu tập trung vào lập trình máy chủ với PHP và không giải thích về Javascript hoặc các thứ phía máy khách hoặc AJAX.

Hãy xem và so sánh 4 hướng (không phải công cụ) để phát triển trang web hoặc ứng dụng PHP. Phía dưới là những hướng để bạn có thể phát triển ứng dụng hoặc một trang web. Bảng bên dưới đưa ra sự so sánh.

table_method_features

1. Tự viết mã (Self Code/Native Code) :

Hiện nay, đây là cách làm thường thấy. Bạn bắt đầu viết trang web hoặc ứng dụng web của bạn từ lúc bắt đầu, nếu bạn tự viết trang web của bạn, bạn có đầy đủ tính linh hoạt để sử dụng các đối tượng, chức năng hoặc chỉ sử dụng phần nạp trang mà không tuân thủ nguyên tắc “không lập lại chính mình” (Don’t Repeat Yourself – DRY) và code theo ý bạn. Bạn biết quy trình sử dụng các biến và mọi thứ, nhưng trong đó cũng bao gồm cả các nguy cơ của riêng bạn.

Nhưng cách đó bắt bạn phải dành thời gian quý giá để copy và paste đoạn mã nhiều lần và làm công việc chỉnh sửa thủ công theo một số quy ước và tiêu chuẩn để đảm bảo nó dễ dàng được tiếp nhận bởi các nhà phát triển khác dựa trên tính chất của dự án. Đối với các cơ sở dữ liệu quan hệ phổ biến (Create, read, update and delete – CRUD), cách này không phải là một lựa chọn khôn ngoan.

php_self

2. Phát sinh mã (Code Generators):

Đây sẽ khong phải là lựa chọn của tôi. Nhưn nếu bạn đã dùng qua Dreamweaver để phát sinh mã cho các CRUD của bạn, bạn sẽ biết chức năng của nó như thế nào. Lựa chọn này sẽ rất hữu ích nesu bạn có ít thời gian và phải kết thúc một dự án đại học chỉ cần nhanh chóng nộp trước hạn chót. Lựa chọn này có thể phát sinh mã thêm, cập nhật và xóa, bạn dùng nó cho những thứ bạn cần và thế là xong. Nhưng nó đòi hỏi bạn phải hiểu các ngôn ngữ lập trình làm việc như thế nào và bạn phải có một kiến thức tương đối để chỉnh sửa những cái bạn cần.

Bộ phát sinh Object có thể giúp bạn trong việc này. Nhưng lựa chọn tốt nhất mà tôi đã dùng (cho các dự án ở đại học) là Dreamweaver để phát sinh PHP nhanh và chỉnh sửa mã nguồn phù hợp với yêu cầu của tôi.

DW_pog

3. Nền tảng (Framework):

Wikipedia định nghĩa nền tảng phần mềm (software framwork) là khái niệm trừu tượng với các đoạn mã phổ biến cung cấp các chức năng thông dụng có thể được chọn lọc để ghi đề hoặc sử dụng đặc biệt bởi người dùng. Nếu bạn sử dụng framwork, bạn không phải bắt đầu từ đầu và bạn có một nền tảng để bạn bắt đầu.

Model View Controller (MVC) là một mẫu thiết kế, là một thử nghiệm cho mô hình phát triển web độc lập giữa lớp xử lý logic và lớp thể hiện logic. Framworks dựa trên MVC rất tuyệt cho các lập trình viên. Vài framworks PHP MVC đã chứng tỏ được khả năng của mình là Code Igniter, Cake PHP, Symphony.

Sử dụng một framwork cho phép bạn có thể tách lớp xử lý và thể hiện logic, mã nguồn với các tiêu chuẩn và các quy ước làm tăng tốc độ phát triển và cũng tạo điều kiện để bảo trì về sau. Đó là sự đầu tư an toàn nếu bạn muốn phát triển một ứng dụng web với nhiều CRUD. Khả năng của các thư viện và hướng dẫn, theo sau DRY, sẽ làm cuộc sống của bạn dễ dàng hơn.

ci_cake

4. Hệ thống quản trị nội dung (Content Management System – CMS):

Cuối cùng nhưng không phải lựa chọn hiếm là Hệ thống quản trị nội dung (Content Management System – CMS) khng chỉ là CMS, vài CMS được xem như là một Nền tảng quản trị nội dung (Content Management Framework – CMF) như Drupal Joomla. CMS cho phép bạn xây dựng trang web trong vài giờ mà không cứ phải viết một dòng mã nào cả. Nhưng bạn cũng có thể phát triển cho một CMS.

CMS bao gồm các module và feature bạn muốn, nhưng bạn vẫn có thể chỉnh sửa hoặc phát triển cho riêng mình. Với sự phong phú của các module hiện nay, bạn không cần thiết phải phát triển một module riêng, nhưng nếu bạn vẫn muốn làm thế, sẽ có vài tiêu chuẩn và nguyên tắc bạn phải tuân theo.

Phát triển cho CMS chắc chắn sẽ nâng cao tiêu chuẩn viết code của bạn, nhưng việc phát triển module sẽ không dễ dàng, vì thế hãy bắt đầu với những thứ dễ dàng và thân thiện như CMF trước.

drupal_joomla

*** Bài dịch đầu tay, mong nhận được đóng góp xây dựng từ mọi người. Cám ơn đã đọc.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s