検索
ホームページ見出しNiao Ge Hui Xinchen 氏、中国の PHP オープンソース組織の唯一のメンバー

最近、新浪微博プラットフォームおよびビッグデータ部門のチーフアーキテクトであるホイ・シンチェン氏(「ブラザー・バード」として知られる)が新浪社を辞任し、蓮佳に入社したと報じられ、昨日、このニュースは蓮佳の関係者と本人によって確認された。報道によると、Hui Xinchen氏はLianjia入社後、テクノロジー担当副社長兼チーフアーキテクトに就任する予定だという。 InfoQ は、この転職について Hui Xinchen 氏にインタビューし、その背景にある物語と、プログラマーのキャリアパスに関する彼の経験について学びました。

Hui Xinchen (バード ブラザーとして知られる) は、中国で最も影響力のある PHP 技術専門家であり、PHP 開発チームの中心メンバーであり、PECL 開発者であり、Zend Company の外部コンサルタントでもあります。彼は Yahoo、Baidu、そして現在は Sina Weibo でプラットフォームおよびデータ部門のチーフ アーキテクトおよびチーフ PHP コンサルタントとして働いてきました。 Hui Xinchen は PHP NG のコア開発者であり、PHP5.4 および 5.5 の主要開発者です。 PECL 開発者として、Yaf、Yar、Yac、Taint などの多くの優れたオープンソース作品に貢献しており、APC、Opcache、Msgpack などのプロジェクトのメンテナーでもあります。

インターネットで PHP チュートリアルを検索する初心者から PHP 開発チームの中心メンバーに至るまで、Hui Xinchen はプロセス全体が「モンスターと戦い、アップグレードする」ようなものだと感じています。 Java と同じくブルーカラー言語として知られる PHP は、誰もがプログラミングできる時代には、より多くのプログラマーを育成できるゆりかごである、と同氏は考えています。彼は、PHP 言語と Zend エンジンに関連する研究、テクノロジー、ニュースをブログ Fengxuezhiyu で共有しています。左手に暗号、右手に詩。

Niao Ge Hui Xinchen 氏、中国の PHP オープンソース組織の唯一のメンバー

Q: プログラミングに興味を持ったきっかけは何ですか?

私が初めて「プログラミング」をしたのはXiaobwang学習機だったようです。その後、大学でコンピューター サイエンスを学び、大学院生のときは、学校の多くの中等学部の Web サイトを含む、多くの Web 開発の仕事を積極的または受動的に担当しました。その際、学内BBSのメンテナンス等を行います。 考えてみると、私がプログラミングに夢中になったきっかけや出来事はひとつもなかったように思えます。この業界で働くのがとても自然で、嫌だとは思わなかったのでそのまま続けました。

Q: どのようにして PHP に夢中になったのですか?どのようにして PHP 開発チームの中心メンバーになったのでしょうか?

大学院生の頃、Webサイトを作りたいと思って、作り方がわからずネットで検索していたら、たまたまPHPの簡単なWebサイトの作り方を見つけたので作ってみました。これに従ってみると、インストール、デプロイ (当時はそのような一元的なデプロイ ツールはありませんでしたが、LAMP のデプロイ方法に関するチュートリアルが多数ありました)、コードの記述、およびテストが非常に便利であることがわかりました。 C 言語に似ており、多くの API の名前も libc API に似ています。こうして私と PHP との切っても切れない絆が始まりました。

2011年だったと思います。当時、Baidu 向けに開発した Ap (Yaf の前身プロジェクト) が、Baidu 社内でよく使われていたので、修正を加えて PECL に貢献しようと考えました。 (これもまた別のフレームワークですが、PHP には多くのフレームワークがあるため、この名前も少し自虐的です)、私は英語が苦手だったので、幸いなことに、このプロセスは非常に複雑でした。 , 当時、ピエール・ジョエは私を大いに助けてくれて、ヤフがPECLに入ることができました。

さらに、Yaf を提出する前に、私は実際に PHP のソース コードを勉強していたので、多くのバグや修正も提出しました。たとえば、ある日の正午に Rasmus (PHP の父) がこう言ったのを覚えています。 IRC はバグを発見したと報告し、ほぼ 5 分後に修正が行われました。

徐々に何人かの人と仲良くなり、皆の信頼を得た後、申請を開始し、PHPのコアコードを提出する許可を取得して、PHPの直接開発とバグ修正に参加し、メンバーになりました。開発チームのメンバーは1人。

核心に関しては、実際には、それは相互信頼のプロセスでもあります。誰もがあなたの仕事を認めれば、あなたの意見を尊重するでしょう。私は徐々に Dmitry Stogov と知り合いになり、Zend のコア部分の提出許可を取得し、多くのコアなバグ修正と新機能を提出しました。その後、私は Zend の外部コンサルタントとなり、徐々にコア開発者になりました。

それは、モンスターと戦ってアップグレードすることに少し似ています。

Q: Yaf はどのような状況で開発されましたか?当時、Baidu はどのように Yaf の開発をサポートしましたか?

Yaf が登場する前は、実はフレームワークを使用するかどうかについて古典的な議論がありました。「フレームワークを使用するとパフォーマンスが低下し、フレームワークを使用しないと開発効率が低下する」というものでした。

当時、Baidu 内には次のような多くのフレームワークがありました。オープンソースの Yii 、 ZF など (一部のチーム自身が作成したものを含む)。 1 つの問題は、クラス ライブラリでは、一部の周辺機能が相互に通信できないことです。

もう 1 つの理由は、多くのフレームワーク作成者がフレームワークをリリースした後、さまざまな人々がフレームワークにさまざまな変更を加えることに気づき、その結果、リリース後のフレームワークは時間の経過とともにさまざまなバリエーションになり、統一されることです。将来的にはアップグレードも不可能になります。

そこで、これらの問題を解決するフレームワークを実装するために PHP 拡張機能を使用することにしました。 もちろん、この拡張機能を作成する前はあまり自信がありませんでした。また、この拡張機能がどれだけパフォーマンスを向上させるかわかりませんでした。幸いなことに、最終結果は非常に良好です。

質問: Yaf を書くために C 言語を使用することにしたのはなぜですか?

PHPはC言語で書かれているので、その拡張機能もC言語で書かれているので、Yafを書くためにC言語を選択しました。

Q: なぜ百度を辞めて新浪微博に来たのですか?

これには実際には多くの理由があります。たとえば、当時私はBaiduのT7にいて、あまりビジネスに関わることがなかったので、少し感じていました。無駄だった。

さらに、私は当時百度の商業検索部門にいて、トラフィック量の多いシステムに直接触れていなかったので、もう一度練習するために大きなプラットフォームを見つけたいと思っていました、そして、たまたまWeiboがそのようなプラットフォームでした。

Weiboに来てから、確かにこれまでに経験したことのない多くの課題に直面し、自分の知識がより大きな舞台で活用できるようになったとも感じています。

Q: 現在、新浪微博で何を担当していますか?

私は現在、Weibo テクノロジー部門に所属しており、基本的なサービス チームを率いています。最初の 2 年間の主な仕事は、さまざまな基本的なフレームワークやツールの開発など、Weibo LAMP のパフォーマンスを最適化することです。 、最適化、仕様開発など。

過去 2 年間で、Weibo の LAMP アーキテクチャは安定し、全体的なパフォーマンスは数倍向上しました。また、独自の高性能 LAMP 全体ソリューションもあります。したがって、LAMP を最適化するための作業が少なくなります。現在は、キャッシュ中間層、トランスコーディングサービス、通信プラットフォームなどのインフラストラクチャの研究開発に主に焦点を当てています。

Q: PHP7 (PHPNG) は、Sina Weibo プラットフォームで PHP を使用する際のニーズと問題点を重要なフィードバックとして考慮しましたか?

もちろん、これは存在します。私が開発チームに加わって以来、他の多くのメンバーと同様の議論をしてきました。私はパフォーマンスが非常に重要だと考えていますが、新機能が非常に重要だと考えている人もいます。そのため、新機能がパフォーマンスに影響を与える場合があります。私たちは論争を起こすでしょう。

私はパフォーマンスの向上に非常に夢中になっています。そのため、後にドミトリー・ストゴフとさらにコラボレーションするようになりました。彼も特にパフォーマンスを重視しているからです。

私がパフォーマンスを気にする主な理由は、1% のパフォーマンス向上が中国最大の LNMP プラットフォームである Weibo にもたらす価値を私が実際に理解しているからです。 Weibo の全体的なパフォーマンスは 2 年前に比べて大幅に向上しましたが、開発効率に影響を与えずにさらなる改善を実現するには、言語と環境のパフォーマンスの向上のみが必要であると認識しています。したがって、この部分が Weibo の PHP に対する要求です。

PHP7 は 5.6 と比較して WordPress の実質パフォーマンス (QPS) が 100% 以上向上しています。来年、PHP7 がリリースされると、Weibo の全体的な LAMP プラットフォームのさまざまなビジネスも 100% のパフォーマンス向上を実現できると思います。

Q: PHP7 (PHPNG) 開発に参加するプロセスは何ですか?他の開発チームのメンバーとどのように協力していますか?

PHPNG は当時の秘密プロジェクトで、当初の参加者は Dmitry と私だけでした。PHP5 をベースにして進めていた JIT プロジェクトが、効果が不十分だったために棚上げになったのを今でも覚えています。誰もが落ち込んでいた。

Dmitry さんは、ZVAL を再設計し、サイズを圧縮してメモリ使用量を削減するというアイデアがあると述べました。それで二人で話し合ったんですけど、実は僕らも毎日いろんなアイデアを出しているので、その時は「なるほど、このアイデアはいけるかもしれない」って思ったんです。しかし、まだあまり自信がありません。

当時の主なアイデアは、効果をテストするために実用的なプロトタイプを迅速に作成することでした。このプロセスでは、主にアイデアを話し合って、やりたい部分を実装し、マージします。

協力のための主なツールは依然として Skype ですが、彼はサンクトペテルブルクにいて私たちと時差があるため、メールでのコミュニケーションも使用し、Github を介してコードをレビューします。

その後、プロジェクトがほぼ完了したとき、私たちは「これは良いアイデアで、うまくいく」と気づきました。その後、公になりました。その後は、アイデアがあれば RPC を送信し、パッチを送信し、投票して全員が反応し、マージするという通常のコラボレーション モードになりました。

Q: これまでに PHP7 で追加または削除された機能は何ですか?リリース前に他にどのようにパフォーマンスを改善できるでしょうか?

主にパフォーマンスの向上を提供する PHPNG ブランチに加えて、AST (抽象構文ツリー) のサポート、均一変数構文、64 ビット長の文字列のサポート、いくつかの新しい構文シュガー、そして最近ではネイティブ TLS などもあります。

PHP7 は 2015 年 10 月に正式リリースされる予定です。その前に、zend_array を使用して Hashtable を直接置き換えるなど、iTLB ミスを減らすための関数を指定して再セクション化やソートを行うなど、いくつかのアイデアが残っています。 JIT 最適化手段 (型オーバーターン) が PHP に導入され、いくつかの型固有の OPCodeHandler が高速化のために使用されます。別の例としては、コード データの局所性をさらに改善し、キャッシュ ミスを減らすことが挙げられます。

もちろん、並行して進めているJITプロジェクトもありますが、PHP7がリリースされたときにこのプロジェクトが完成するかどうかが心配です。

Q: 新しいバージョンの PHP は、PHP6 を介して PHP7 に直接アップグレードされますか?なぜ?

主な理由は、PHPにはPHP6という開発版があったのですが、後にこのバージョンが失敗してリリースされなかったことです。したがって、このバージョンは PHP7 である必要があります。

Q: Facebook がリリースした言語 Hack と PHP の関係は何ですか? Hack の目的は PHP を置き換えることですか?これら 2 つの言語の互いに対する利点は何ですか?

あまり問題ではありませんが、Hack は PHP ではありません。置き換えに関しては、彼ら(Facebook)はそのような考えを持っているかもしれないと思いますが、それはコミュニティがそれを受け入れるかどうかによります。

私は Hack については特に詳しくないので、具体的にコメントすることはできません。

Q: PHPは学びやすく敷居が低いため、プログラミングに向いていない人が入ってきたのではないかと考える人もいますが、この見方についてはどう思いますか?

私はこの考え方には本当に同意しません。私も学部卒業時に開発の仕事を探していくつかのユニットの面接を受けましたが、当時面接を受けた人たちの目には私はただのプログラミングに向いていない人間だったのかもしれません。

しかし、PHP は敷居が低いため、人々は自分の「プログラミング」の結果をすぐに確認することができ、初心者にポジティブなフィードバックとインセンティブ効果をもたらし、興味のある人々の興味をさらに高めます。 プログラムを作成する人が増えれば増えるほど、誰かが現れてテクノロジーの進歩に貢献する可能性が高くなります。

さらに、将来のプログラミング言語は使いやすさを目指して開発され、プログラミングの敷居がさらに下がる日が来るかもしれません。

Q: 資格のある PHP エンジニアの知識構造はどのようなものですか?

以前、「PHP エンジニアはみんなヘビの油だ」という格言があったのを思い出しました。実際、この言葉は PHP エンジニアにだけ当てはまるのではなく、すべてのエンジニアに当てはまるはずです。

知識構造は幅広くなければなりません。 Web 開発には、HTML、CSS、JS、SQL に加えて、Nginx、Linux、および Mysql の構成、メンテナンス、トラブルシューティングのためのいくつかの一般的な方法も知っておく必要があります。

Q: 技術力以外に面接で重視することは何ですか?

私は明確な思考、コミュニケーション、スピーキングに特に注意を払います。実際、率直に言って、将来一緒に仕事をする場合に障害はあるのか、大きな成長の可能性はあるのか。

質問: phpe.net の元ウェブマスターである Chen Bole は、現在男性用の靴下を販売しています。あなたの将来の計画は何ですか?あなたはずっとプログラマーであり続けますか?

実は私はとても怠け者なので、今日は酔うということはあまり考えません。ですから、実際のところ、将来についてはあまり明確ではありません。今でもプログラミングが好きで、自分の仕事を通じてみんなに利益をもたらし、コミュニティから賞賛されることが好きです。これは良いことだと思います。それ。

なぜ人々はあなたを「バード兄弟」と呼ぶのかとよく尋ねます。

私が若くて愛情を持っていたとき、私のQQ IMのニックネームは「雪の渡り鳥」で、その後、私は百度に行きました。将来的には、私が年をとったからでしょうか? ゆっくり、私は叫ぶ方法を知りません

実際、最初は「バードマン」は良い言葉ではありませんでしたが、その後、ますます多くの人が始めました。と叫んでいます。もう関係ありません

それで、Linux の民間開発者であるブラザー・ニアオは台湾人ですが、なぜ彼は「ブラザー・ニアオ」なのかという質問も台湾人のブラザー・ニアオにあります。と尋ねた。台湾出身のニアオ兄弟は、自分の姓が「蔡」であるため、中学校まではクラスメートから「蔡頭」と呼ばれ、高校入学後も「新人」​​と呼ばれ続けたと自身の証言で述べた。活動が多かったので、後輩からは「ルーキー先輩」と呼ばれることが多かったが、その両者が合わないと感じたため、名前を「ブラザーバード」に変更した。受け継がれ、より多くの人に浸透していきました。ネットワーク ID として「VBird」を使用した理由について、ニアオ兄弟は自分自身を笑いながら、最初は無知で、「ルーキー」が「ベジタブル」だと思ったと言いました(「ベジタブル」は英語で「ベジタブル」です)。 Niao 兄弟は、Linux 愛好家として広く知られるようになりました。

つまり、Linux Private Kitchen は私が書いたものではありませんし、Linux Private Kitchen は魚風味の細切り豚肉の作り方を教えてくれません。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
php怎么把负数转为正整数php怎么把负数转为正整数Apr 19, 2022 pm 08:59 PM

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

php怎么实现几秒后执行一个函数php怎么实现几秒后执行一个函数Apr 24, 2022 pm 01:12 PM

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php怎么除以100保留两位小数php怎么除以100保留两位小数Apr 22, 2022 pm 06:23 PM

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

php怎么根据年月日判断是一年的第几天php怎么根据年月日判断是一年的第几天Apr 22, 2022 pm 05:02 PM

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

php怎么替换nbsp空格符php怎么替换nbsp空格符Apr 24, 2022 pm 02:55 PM

方法:1、用“str_replace(" ","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\&nbsp\;||\xc2\xa0)/","其他字符",$str)”语句。

php怎么判断有没有小数点php怎么判断有没有小数点Apr 20, 2022 pm 08:12 PM

php判断有没有小数点的方法:1、使用“strpos(数字字符串,'.')”语法,如果返回小数点在字符串中第一次出现的位置,则有小数点;2、使用“strrpos(数字字符串,'.')”语句,如果返回小数点在字符串中最后一次出现的位置,则有。

php怎么设置implode没有分隔符php怎么设置implode没有分隔符Apr 18, 2022 pm 05:39 PM

在PHP中,可以利用implode()函数的第一个参数来设置没有分隔符,该函数的第一个参数用于规定数组元素之间放置的内容,默认是空字符串,也可将第一个参数设置为空,语法为“implode(数组)”或者“implode("",数组)”。

php字符串有没有下标php字符串有没有下标Apr 24, 2022 am 11:49 AM

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール