Top 10 lời khuyên hay của những bậc thầy PHP

Dưới đây là những lời khuyên, kinh nghiêm từ những bậc thầy code bằng ngôn ngữ kịch bản PHP. Có thể bạn sẽ không vận dụng hết những kinh nghiệm này, nhưng đó là những cách nhìn nhận cho bạn những gợi ý quan trọng.

bac thay php, thu thuat php, php tips, Rasmus Lerdorf,Matt Mullenweg,Dave Child

1. Chỉ sử dụng PHP khi bạn cần đến nó – Rasmus Lerdorf
Không ai có thể sử dụng PHP thành thạo hơn chính người tạo ra nó. Vào năm 1995, Rasmus Lerdorf đã tạo ra ngôn ngữ lập trình PHP và từ đó ngôn ngữ này nhanh chóng được giới phát triển ứng dụng và làm thay đổi bộ mặt Internet. Tuy nhiên, Rasmus Lerdorf không tạo ra PHP với mục đích đó, PHP được tạo ra nhằm mục đích giải quyết các vấn đề của các nhà lập trình và phát triển ứng dụng web.

And as with many open source projects that have gone on to become popular, the motivation was never philosophical or even narcissistic. It was purely a case of needing a tool to solve real-world Web-related problems. In 1994 the options were fairly limited when it came to Web development tools

Tuy bạn có thể sử dụng PHP cho mọi thứ trên website. Lerdorf là người đầu tiên thừa nhận rằng PHP đơn thuần chỉ là một công cụ trong danh sách các các công cụ bạn sử dụng cho website của mình, và tất nhiên PHP có những hạn chế.

Use the right tool for the job. I have run across companies that have completely bought into PHP, deploying it absolutely everywhere, but it was never meant to be a general-purpose language appropriate for every problem. It is most at home as the front-end scripting language for the Web.

Sử dụng PHP cho mọi thứ trên website là việc làm không hiệu quả, nếu bạn là một nhà phát triển ứng dụng web thì nó không phải là một ngôn ngữ tốt nhất để làm việc. Đừng ngại sử dụng những ngôn ngữ lập trình khác trong dự án của bạn nếu cảm thấy nó tốt hơn cho PHP.

2. Sử dụng nhiều table cho PHP và MySQL cho những cơ sở dữ liệu lớn – Matt Mullenweg
Hầu như không có ai hỏi Matt Mullenweg là ai và tại sao anh ta lại được tôn vinh như một bật thầy của PHP bởi vì anh đã quá nổi tiếng và nhiều người biết đến.
Nếu bạn chưa rõ về Matt Mullenweg tôi có thể trích ngang cho bạn vài dòng thế này: Matt Mullenweg là người phát triển hệ thống blog khá thịnh hành hiện nay: WordPress. Sau khi hoàn thành WordPress, Matt cùng với công ty của mình đã cho ra đời website

http://www.wordpress.com

– một website có thể được liệt vào hàng tinh tú của thế giới mạng và được xây dựng trên code WordPress MU. Đây là một ứng dụng multi blog tốt nhất hiện nay. Vào thời điểm bải viết này được viết, website

http://www.wordpress.com

đang chứa khoảng 4 triệu blog con và mỗi ngày có khoảng 140.000 bài viết được đăng. Bạn có thể xem các thông số mới nhất của nó tại đây.
Vào năm 2006, Matt Mullenweg đã đưa ra những quyết định sáng suốt cho việc thiết kế cấu trúc cơ sở dữ liệu của WordPress và lý giải tại sao WordPress MU sử dụng những table riêng biệt cho mỗi blog thay vì gom chúng lại thành một khối lớn cho tất cả các blog.

We tested this approach for MU, but found it was too expensive to scale past a certain point. With monolithic structures you hit a wall based on your hardware. In MU users are divided and can be partitioned easily, for example on WordPress.com we have the users partitioned between 4096 databases, which allows you to scale very cheaply and efficiently to hundreds of thousands and even millions of users and extremely high levels of traffic.

3. Đừng bao giờ tin vào bản thân bạn và người dùng của bạn – Dave Child
Dave Child là cha đẻ của website Added Bytes (trước đây có tên là ilovejackdaniels.com) với loạt bài viết cheat sheets for many programming languages. Ông đã từng làm việc cho nhiều công ty ở Anh và thiết lập nên uy tín riêng của mình trong cộng đồng giới lập trình viên thế giới.
Dave Child mang đến cho bạn lời khuyên hữu ích trong bài viết writing secure code in PHP: đừng bao giờ tin vào người dùng của bạn (your users). Họ chỉ làm cho bạn tổn thương …

So the cardinal rule of all web development, and I can’t stress it enough, is: Never, Ever, Trust Your Users. Assume every single piece of data your site collects from a user contains malicious code. Always. That includes data you think you have checked with client-side validation, for example using JavaScript. If you can manage that, you’ll be off to a good start. If PHP security is important to you, this single point is the most important to learn.

Dave chỉ cho chúng ta thấy những ví dụ cụ thể về việc bảo mật trong phần mộtphần hai và phần 3 của loạt bài viết “Writing Secure PHP“.

Finally, be completely and utterly paranoid. If you assume your site will never come under attack, or face any problems of any sort, then when something eventually does go wrong, you will be in massive amounts of trouble. If, on the other hand, you assume every single visitor to your site is out to get you and you are permanently at war, you will help yourself to keep your site secure, and be prepared in case things should go wrong.

4. Đầu tư và nghiên cứu caching – Ben Balbo
Ben Balbo đã viết cho Site Point một bài viết hướng dẫn các developer và các designer.

If you have a busy and predominantly static web site–such as a blog–that’s managed through a content management system, it will likely require little alteration, yet may benefit from huge performance improvements resulting from a small investment of your time. Setting up caching for a more complex site that generates content on a per-user basis, such as a portal or shopping cart system, will prove a little more tricky and time consuming, but the benefits are still clear.

Đây là một vài kỹ thuật cache dữ liệu cho PHP

–    cached function calls
–    setting expiry headers
–    caching file downloads in IE
–   template caching-    Cache_Lite

Và còn nhiều kỹ thuật khác Ben Balbo chưa đề cập đến.
Vì tính chất của một ngôn ngữ động, cache bị phê phán và chỉ trích vì làm mất đi tính linh hoạt của trang web do ít bị thay đổi nhưng dù sao đi nữa caching cũng là một phương án rất hữu hiệu và được ứng dụng khá rộng trong lập trình website.

5. Tăng tốc độ trang web bằng cách sử dụng một IDE Template và cắt nhỏ ảnh – Chad Kieffer
Khi Chad Kieffer không bận bịu trong các công việc thiết kế giao diện người dùng và quản trị database cho khách hàng, anh thường đưa ra rất nhiều lời khuyên sáng suốt trên blog của mình: 2 tablespoons.
Chad tin rằng sử dụng một bộ IDE như Eclipse PDT (một gói phát triển của Eclipse giành cho PHP) với sự kết hợp các kỹ thuật cắt template và chia nhỏ nó có thể giúp tăng tốc độ tải trang web.

Busy schedules, long to do lists, and deadlines make it tough for developers to get familiar with some of the advanced features their tools provide. This is a shame, because some features, like Eclipse Templates, can really reduce coding time and errors.

Ngụ ý của câu nói trên nói rằng một khi bạn thực hiện một số nhiệm vụ một cách tự động, bạn sẽ cải thiện được thời gian hoàn thành project của mình.Một ví dụ mà dễ thấy là với bạn lưu những đoạn lặp lại trên website lại thành những phần riêng biệt bạn có thể kết hợp, sử dụng lại chúng một cách nhanh chóng mà chẳng tốn thời gian viết lại chúng. Vả lại còn có thể sử dụng lại chúng trong những project khác nữa.
Bằng cách sử dụng các IDE như Eclipse và các gói PDT, bạn có thể nhận ra thời gian thực hiện dự án của bạn được rút ngắn đáng kể. Các IDE sẽ cho phép bạn thực hiện rất nhiều công việc như gộp file, debug, kiểm tra việc thiếu các dấu chấm phẩy (;), một vài IDE còn cho phép bạn thực hiện các tác vụ cao cấp hơn như upload lên hosting.

6. Khiến cho việc dùng PHP trở nên thuận tiện hơn bằng cách sử dụng Filter – Joey Sochacki
While Joey Sochacki có thể không phải là một cái tên nổi tiếng giống như Matt Mullenweg trong cộng đồng PHP, anh ấy chỉ là một nhà phát triển website một cách ngẫu nhiên và chia sẻ kinh nghiệm anh có trong thời gian làm một developer trên blog Devolio của mình.

Filtering data. We all have to do it. Most, if not all of us, despise doing it. However, unbeknown to most are PHP’s filter_* functions, that allow us to do all sorts of filtering and validation. Using PHP’s filter_* functions, we can validate and sanitize data types, URLs, e-mail addresses, IP addresses, strip bad characters, and more, all with relative ease.

Bộ lọc có thể là một thứ gì đó thật xa vời và khó hiểu. Nhưng bạn có thể ghé thăm Blog của Joey Sochacki và với sự giúp đỡ của Joey Sochacki bạn có thể học được cách cài đặt bộ lọc, tìm hiểu những thứ một bộ lọc cần, tìm hiểu nó và cải thiện để tận dụng sức mạnh của PHP.

7. Sử dụng một PHP Framework – Josh Sharp
Hiện vẫn có những cuộc tranh cãi quanh việc sử dụng framework nào giữa ZendCakePHPCode Igniter, hoặc những framework khác.
Josh Sharp là một lập trình viên và là một nhà phát triển website cho khách hàng. Đâu là lý do tại sao bạn nên tin Josh khi anh bảo sử dụng framework để tiết kiệm thời gian và hạn chế lỗi khi lập trình ? Josh tin điều đó vì một lẽ đơn giản : PHP rất dễ học.

But PHP’s ease of use is also its downfall. Because there are less restrictions on the structure of the code you write, it’s much easier to write bad code. But there is a solution: use a Framework.

Framework có thể giúp bạn chuẩn hóa chương trình, bạn có thể tiết kiệm rất nhiều thời gian trong quá trình xử lý mã nguồn … Bạn có thể đọc thêm lợi ích của việc sử dụng framework tại blog của Josh.

8 Đừng sử dụng Framework – Rasmus Lerdorf
Trái ngược với ý kiến ở trên của Josh ở trên, Rasmus Lerdorf – cha đẻ của PHP lại cho rằng framework không phải là một lựa chọn sáng suốt. Tại sao? Bởi vì nó sẽ làm cho chương trình của bạn biên dịch chậm hơn so với viết code PHP đơn thuần. Trong bài thuyết trình của mình tại Drupalcon 2008 , Rasmus đã so sách tốc độ xử lý của một trang “Hello world !” đơn giản sử dụng framework và không sử dụng framework (slides 24-32) và chỉ ra rằng framework làm cho tốc độ xử lý web page chậm hơn code php trực tiếp.
Bạn có thể xem và nghe toàn bộ bài phát biểu của Rasmus Lerdorf tại đây.

9. Sử dụng bộ xử lý đồng bộ (Batch Processing) – Jack D. Herrington
Theo từ điển Lạc Việt Batch Processing là một chế độ thao tác của máy tính, trong đó các thao tác lệnh của chưng trình được thực hiện liên tiếp nhau mà không có sự can thiệp của người sử dụng máy tính.
Jack D. Herrington không phải là người xa lạ trong cộng đồng PHP và Developer của thế giới. Herrington khuyến khích sử dụng batch processing và cron cho việc xử lý các tác vụ dưới tầng nền hệ thống. Người sử dụng web không muốn phải ngồi đợi quá lâu trong lúc hệ thống tải trang lên. Vì vậy, những thứ không cần thiết phải hiển thị ra ngoài bạn hãy để nó chạy dưới nền ứng dụng.

Certainly, in some small cases, it’s a bit easier to fire off of a helper thread to handle small jobs. But it’s easy to see that with the use of conventional tools — cron, MySQL, standard object-oriented PHP, and Pear::DB — creating batch jobs in PHP applications is easy to do, easy to deploy, and easy to maintain.

Jack tin rằng thay vì sử dụng các tiến trình trên server, để đơn giản hơn có thể sử dụng kết hợp cron, PHP và MySQL để xử lý các ứng dụng nền.

I’ve done both, and I think cron has the advantage of the “Keep It Simple, Stupid” (KISS) principle. It keeps the background processing simple. Instead of having a multithreaded job-processing application that runs forever and, thus, can never leak memory, you have a simple batch script that cron starts. The script determines whether there’s anything to do, does it, then exits. No need to worry about memory leaks. No need to worry about a thread stalling or getting caught in an infinite loop.

10.Bật chức năng Error Reporting – David Cummings
David Cummings điều hành công ty phần mềm của mình với một CMS đặc trưng và đã đạt được rất nhiều giải thưởng. Nếu nói về một người phát triển ứng dụng PHP thành công nhất, có lẽ đó là David.
David đã viết một vài viết trên SitePoint về Hai lời khuyên cho những người muốn học PHP. Một trong hai lời khuyên là “Turn on error reporting immediately“

The single most important thing I tell people who use PHP is to turn error reporting to its maximum level. Why would I want to do this? Generally the error reporting is set at a level that will hide many little things like:
declaring a variable ahead of time,
referencing a variable that isn’t available in that segment of code, or
using a define that isn’t set.

Error Reporting giúp bạn tìm kiếm các lỗi lập trình trong quá trình thực hiện project dễ dàng hơn. Rất nhiều lỗi nhỏ của PHP dễ dàng được tìm thấy với mô tả lỗi giúp bạn dễ dàng khắc phục nó hơn.

 

 HỖ TRỢ TRỰC TUYẾN