PHP时代,远没有结束
关于PHP未来的忧虑由来已久,一边是掌控着操作系统的微软的.net平台,一边是红透半边天的Java技术:PHP似乎已经走到了尽头。不过,当我们回首过去,就会发现,PHP其实从来都是在别人视为穷途末路的空间里发展。ASP、JSP、CGI的时代,PHP的处境不比今天好过,压力也不比今天小,而结果呢?PHP成为了三大主流Web脚本语言之一,并保持了强劲的发展势头。我们不得不感叹:原来没有大公司支持,不要资本运营,远离商业炒作,也可以做到这样的成功。我曾经将这种成功归结为一种注重实效的哲学:由简至繁,由浅入深的用户体验;学以致用,为用而学的学习动力;专注网络,精益求精的发展定位。在使用PHP开发软件的过程中,这种哲学给我们带来了很多好处:我们总是用最简单、最直接的方式去完成任务,所以我们的设计总是简简单单,直到需求发生了变化时,我们才会去改进相关的设计;我们总是从用户(功能)的角度来考虑事情,而不只是从程序员的角度去看问题;我们总是将我们的学习成本维持在最低,通过实际操作进行学习。应该说,PHP在第五个版本以前,不是一种严格的面向对象的语言,和Java和.net相比,PHP也明显的缺少一些规范性的东西。但是,出类拔萃的PHP开源项目在sf.net上不断涌现;中小网站通过使用PHP很快地拥有了希望拥有的功能,并逐渐利用PHP的扩展库和开源程序包进行完善;大型门户开始使用PHP加快开发速度,为用户提供丰富而稳定的服务。这一切看起来是这样的不可思议,只适合用《编程之道》中的话来形容:PHP is in the Tao。
那么,什么才是道呢
前一段时间,敏捷开发被炒得很热,很多关于敏捷开发的书籍被引入了中国市场。虽然炒作不是什么好事情,但是敏捷开发却实在是一个好东西。不过当时我并没有那种看着自己项目一步步走向崩溃的切肤之痛,所以并不是十分感冒,买来的几本书也随手翻翻便束之高阁。两年前,我认为一个好的程序就是可以正确运行;一年前,我认为一个好的程序要能完成用户需要的功能,还要高效和简单易用;而前一段时间不堪回首的开发经历,则让我冥思苦想一个项目如何才能按时完成、开发者之间怎样才能有效沟通、系统如何在频繁的需求变更下保存良好的结构。朋友建议我看看《敏捷软件开发》,于是我为此“浪费”掉了整整两周的时间。一些熟悉而陌生的原则出现在我的面前,思考过的问题一个一个的得到了或多或少的解决;而一种轻量级的软件工程方法的轮廓越来越明显。突然间觉得,在敏捷开发中能看见PHP的道几丝痕迹——是那种注重实效的哲学的smell,而敏捷开发显然更为系统化和具有更好的实际操作价值。
PHP5,变化的不只是语法
最近、PHP の第 5 バージョンが正式にリリースされ、PHP5 の話題が盛り上がり始めていますが、PHP5 のより重要な意味は、PHP A であるということです。エンタープライズ市場への正式参入の兆し。エンタープライズ市場に参入するためには、一人でコードを書くことに慣れている多数のPHPプログラマがどのようなエンジニアリング手法を用いて連携し、高い作業効率を維持できるかが解決しなければならない課題となる。 PHP プログラマーとして、私たちはこの機会を利用して、コーディング方法だけを知っているプログラマーから、ソフトウェア エンジニアリングを理解し、チームと効果的にコミュニケーションおよび共同作業できる開発者に自分自身をアップグレードする必要もあります。 PHP にとって最良の選択はアジャイル開発です。人間をソフトウェア開発の中心として扱い、テスト駆動開発を使用してアーキテクチャを堅牢に保ちます。ソフトウェアを柔軟に保ち、ニーズの変化に適応できるようにします。アジャイル開発をガイドとして使用すると、PHP を使用して、強力で安定し、変化するニーズに適応できるアプリケーションを迅速、効率的、コスト効率よく完成させることができます。 ——これを虎以上に強くなるという。これは空想ではなく、一部の開発者の昇進により、徐々に現実になりつつあります。 PEAR では、PHP5 開発者向けに単体テスト用のパッケージが用意されています: PHPUNIT2。ますます多くの PHP 開発者が、多かれ少なかれアジャイル開発要素を作業に追加し始めており、PHP 用の IDE が間もなく登場すると思います。 。この計画が成功すれば、PHP 開発コミュニティのレベルが効果的に向上し、PHP プログラマーがより優れた強力なプログラムを作成できるようになり、エンタープライズ市場での PHP のペースが効果的に促進されます。
アジャイル開発を取り入れましょう
はい、PHP プログラマーはそうする必要があると思います。アジャイル開発を理解する - PHP を選択したのですから、アジャイル開発が好きなはずです。参考となる書籍やリソースをいくつか紹介します。
書籍:
- 「アジャイル ソフトウェア開発 - 原則、パターン、実践」 (ボブおじさんの傑作、英語オンラインで入手可能) -book)
- 《リファクタリング - 既存コードの設計の改善》 (Hou Jie の Web サイトで中国語版 の 1 章から 6 章までが公開されました)
- デザイン パターン - 再利用可能なオブジェクト指向ソフトウェアの基礎》 (これについては多くは言いません。見たことがなければ聞いたことがあるはずです)
- テスト駆動開発》
追記、上記の書籍の英語電子版はオンラインでダウンロードできます。DearBook への接続は、誰でも簡単に中国語のサンプル章をダウンロードできるようにするために行われます。
Web サイト:
-
phppatterns.com PHP とデザイン パターンについてのディスカッション
-
lastcraft.com単体テストツール simpleTest と phpunit の紹介
また、『
PHP&MORE』 Vol2 には PHPUNIT やデザインパターンに関する記事も掲載予定ですので、ご期待ください。 (ちなみに宣伝:P)