Hui Xinchen は、2011 年 8 月にコア開発者として PHP 言語公式開発チームに加わりました。彼は現在、組織内で唯一の中国人であり、国内で最も影響力のある PHP 技術専門家の 1 人です。 Hui Xinchen は、有名な PHP テクノロジー ブログ「Wind and Snow」(http://www.laruence.com/) のブロガーとして、PHP の基礎となる原理の研究と共有に注力してきました。 中でも、「PHP 原理の徹底理解」シリーズは広く推奨されており、中国における PHP 言語の詳細な使用とカスタマイズのための古典的な入門書となっています。彼が PHP 拡張機能に基づいて開発した PHP フレームワークである Yaf は、最速の PHP 開発フレームワークとして知られています。同時に、Lua や Taint などの PHP 拡張機能の作成者でもあります。 PHP 5.4 の開発中、彼は PHP に 400 近くの配信に貢献しました。今回は Hui Xinchen 氏にインタビューを実施し、PHP フレームワークと拡張機能、および PHP 開発に関する知識を共有してもらいました。
InfoQ: 簡単に自己紹介と現在のチームを紹介してください。
Hui Xinchen: 皆さんこんにちは、私は陝西省北部出身の Hui Xinchen です。PHP サークルの多くの友人は私を「Brother Bird」と呼んでいます。私が「Linux Private Kitchen」の Brother Bird ではないことをこの機会に説明したいと思います。 , 私はただのIMです 私のあだ名は「雪の渡り鳥」で、百度にいた頃はエンジニアの中で最年長とみなされていたため、みんなからそう呼ばれるようになりました。
現在、私は Sina Weibo アプリケーション アーキテクチャ チームで働いています。当社のアプリケーション アーキテクチャ チームは主に、高性能と迅速な開発のニーズを満たすために Sina Weibo LAMP のアーキテクチャを最適化することに取り組んでいます。
Weibo は毎日数十億の PV を生成し、数テラバイトのデータを生成します。処理プロセスにおけるミリ秒の最適化や 1 バイトの削減は、私たちにとって非常に重要であり、挑戦的なものであり、私たちのチームは応答時間を短縮しました。ビジネス ロジックを変更しないいくつかの最適化手法により、Weibo ホームページのパフォーマンスが 44% 向上し、TPS が 78% 向上しました。さらに、私たちのチームは技術改善と降水作業も担当していますが、共有することでより多くのことを得ることができるため、これも非常に興味深い仕事です。
InfoQ: 公式 PHP 言語開発チームの唯一の中国人メンバーとして、この組織に参加した後のあなたの経験について話してください。
Hui Xinchen: 「唯一の」というタイトルは間違いなく一時的なもので、将来的にはさらに多くの国内開発者が参加すると信じています。私は昨年の 8 月に PHP 開発チームに加わりました。開発チームは正確に言うとコミッターと呼ばれる組織で、開発チームに所属していない学生も多く PHP のパッチを提供しています。
参加後、オープンソース プロジェクトの実行方法についていくつかの新しい洞察を得ることができました。最も印象に残ったのは、さまざまなプロセスの仕様です。プロセス仕様のバージョンのリリースから、新しい機能の追加に至るまで、これらの一見面倒な仕様は、ある程度の応答の遅さにつながりますが、PHP が成長するにつれて、重大な事故を避けるために最善を尽くします。
もう一つの経験として、私は学部時代に英語をしっかり勉強できなかったことを特に後悔していますが、日常のコミュニケーションでよく冗談を言うことがあります。 、開発チームの開発者は、私が言ったことを理解するには、正規表現のように読む必要があると言いました。
情報Q: あなたのブログを長年見ている人なら誰でも、あなたが PHP の普及に尽力していることを知っています。また、中国の大手インターネット企業のいくつかで働いたこともあります。中国での PHP の開発について話していただけますか。
ホイ・シンチェン: 以前のブログでも、世界の上位 100 万の Web サイトの 70% 以上が PHP を使用して開発されているという数字を共有しました。私の考えでは、PHP の人気の主な理由は、学習のしやすさ、使いやすさ、拡張のしやすさです。ここでは、学習のしやすさと使いやすさについてはあまり語りません。スケーラビリティ。
PHP は非常に強力な拡張ビルド システムを提供しており、この拡張ビルド システムを使用すると、PECL 拡張ライブラリには現在 200 を超える標準拡張機能があります。
私が 2008 年に PHP 拡張機能の開発を始めたとき、インターネット上には関連する中国語の情報はほとんどありませんでしたが、今ではオンライン上に非常に豊富な情報があることがわかります。 PHP を拡張することで直面する問題を解決しようとする開発者がますます増えており、PHP のオープンソース精神が開発者に多かれ少なかれ影響を与え、これらの拡張機能をコミュニティにオープンソース化しています。これらが、PHP が開発を続けることができる理由だと私は考えています。長期的には主な原動力になります。
InfoQ: あなたはオープンソース フレームワーク Yaf の作者です。オープンソース フレームワーク Yaf の特徴を簡単に紹介してください。
Hui Xinchen: PHP でフレームワークを使用するかどうかについては、長い間多くの議論が行われてきました。より一般的な矛盾は、フレームワークを使用すると開発速度は速くなりますが、パフォーマンスは保証されないということです。
Yaf は、PHP 拡張機能 (C 言語) を使用して PHP を実装するために開発された MVC フレームワークであり、その最大の特徴は、高速性を確保しながら (PHP で実装された従来のフレームワークと比較して) 高いパフォーマンスを実現することです。発達。
Yaf は主に、ルーティング、ディストリビューション、自動ローディング、プラグイン メカニズム、およびシンプルで高性能なビュー エンジンを提供します。これらの機能は、すべての MVC フレームワークに不可欠であり、揮発性ではないため、拡張機能による実装に適しています。
InfoQ: Yaf フレームワークに関して、次の開発計画は何ですか?
Hui Xinchen: 私の見解は、Yaf は将来的により洗練され、専門化される方向に開発されるべきだということです。たとえば、Yaf 1.0 と比較して、Yaf 2.0 は主にアーキテクチャの再設計とパフォーマンスのチューニングなどの新しい機能を追加していません。 私は、Yaf がすべての機能をカバーしようとする「超包括的」になることを望んでいません。高パフォーマンスを追求する開発者にとって、シンプルで効率的でスケーラブルなツールを提供し、「低炭素」に貢献できることを願っています。人生。
さらに、Yaf が好きな友人に感謝します。現在、Yaf には多くのユーザーがいます。これは、私が最初に Yaf をリリースしたときには予想していなかったことであり、非常に熱心な友人が Windows リリースを提供して、その使用を確立してくれました。著者交換フォーラムや QQ グループなど、これらのことに興味はありますが、実行するエネルギーがありません。彼らの熱意が私を Yaf を継続的に改善する原動力となっています。私はこれらの友人たちにとても感謝しています。 。
InfoQ: PHP フレームワーク Zend、Yii、CakePHP の長所と短所を簡単に分析してもらえますか?
Hui Xinchen: これらのフレームワークはすべて優れた PHP フレームワークです。私は以前のプロジェクトで Zend と Yii を使用したことがありますが、残念ながら CakePHP を使用する機会はありませんでした。私の個人的な理解について話させてください。
Zend Framework は、Zend Company によって開発された PHP 開発フレームワークであり、適切に設計されており、強力で、幅広いユーザーが存在し、完全なドキュメントがあり、活発なコミュニティがあります。そのコードは標準化されたきちんとした方法で書かれているため、PHP 開発者が読んで学習するのに非常に適しています。欠点は、やや肥大化し、パフォーマンスが低いことです。
Yii で最も印象に残ったのは AR です。これは実際の開発において非常に便利で、システムの自動生成ツールを提供します。私は個人的に Yii がとても気に入っています。 ただし、AR には多くのリソースが必要であり、大規模なデータ アプリケーションには適していないという欠点もあります。
InfoQ: あなたが開発した 3 つの PHP 拡張機能を推奨してください。なぜこれら 3 つの拡張機能を推奨するのですか?
Hui Xinchen: 私が作成したオープンソースの拡張機能は、時系列順に Yaf、Lua、Taint、Couchbase の 4 つだけです。それぞれ解決すべき問題が異なります。これらの拡張機能を簡単に紹介します。
Yaf については以前に紹介したので、ここでは繰り返しません。
Lua は、PHP 拡張機能内の Lua エンジンのカプセル化であり、PHP での Lua スクリプトの実行をサポートし、Lua スクリプトとデータを交換できます。 Taint は XSS、SQL、シェル インジェクション検出拡張機能であり、主に静的検出スクリプトではカバーできない点を補うために使用されます。
Couchbase は Couchbase Client のカプセル化であり、Couchbase Server は高性能かつ高リアルタイムの K-V データベースです。ちなみに、私たちの新浪微博アプリケーションアーキテクチャチームはまだ新浪微博のいくつかの拡張機能を開発中です。これらの拡張機能は、Weibo の実用的な問題を解決するためのものであり、これらの拡張機能の使いやすさと安定性が検証された後、それらをオープンソースとして提供する予定です。のコミュニティ。