Maison  >  Article  >  Niao Ge Hui Xinchen, le seul membre de l'organisation open source PHP en Chine

Niao Ge Hui Xinchen, le seul membre de l'organisation open source PHP en Chine

PHP中文网
PHP中文网original
2017-11-29 15:20:2111068parcourir

Récemment, il a été rapporté que Hui Xinchen (connu sous le nom de « Frère Oiseau »), l'architecte en chef de la plate-forme Weibo et du département Big Data de Sina, avait démissionné de Sina et avait rejoint Lianjia. Hier, cette nouvelle a été confirmée par les responsables de Lianjia et lui-même. . Selon certaines informations, Hui Xinchen deviendra vice-président de la technologie et architecte en chef après avoir rejoint Lianjia. InfoQ a interviewé Hui Xinchen à propos de ce changement de carrière pour en savoir plus sur l'histoire qui se cache derrière et certaines de ses expériences sur le cheminement de carrière des programmeurs.

Hui Xinchen (connu sous le nom de Bird Brother) est l'expert technique PHP le plus influent en Chine, un membre principal de l'équipe de développement PHP, un développeur PECL et un consultant externe de Zend Company. Il a travaillé pour Yahoo, Baidu et maintenant Sina Weibo en tant qu'architecte en chef du département plate-forme et données et consultant en chef PHP. Hui Xinchen est le développeur principal de PHP NG et le principal développeur de PHP5.4 et 5.5. En tant que développeur PECL, il a contribué à de nombreux travaux open source exceptionnels tels que Yaf, Yar, Yac et Taint. Il est également le responsable d'APC, Opcache, Msgpack et d'autres projets.

D'un débutant recherchant des didacticiels PHP sur Internet à un membre clé de l'équipe de développement PHP, Hui Xinchen estime que l'ensemble du processus s'apparente à « combattre des monstres et mettre à niveau ». Selon lui, PHP, qui comme Java est également connu comme un langage ouvrier, est le berceau qui peut former davantage de programmeurs. À une époque où tout le monde peut programmer, des personnes plus talentueuses capables de promouvoir le progrès technologique vont forcément naître. Il partage des recherches, des technologies et des actualités liées au langage PHP et au moteur Zend sur son blog Fengxuezhiyu. Code à gauche, poésie à droite.

Niao Ge Hui Xinchen, le seul membre de lorganisation open source PHP en Chine

Q : Comment êtes-vous devenu intéressé par la programmation ?

La première fois que j'ai fait de la « programmation », c'était sur la machine d'apprentissage Xiaobawang. Plus tard, j'ai étudié l'informatique à l'université. Lorsque j'étais étudiant diplômé, j'étais responsable de la construction du campus de l'école. J'ai effectué activement ou passivement de nombreux travaux de développement Web, y compris le site Web de nombreux départements secondaires de l'école. cette fois-là, la maintenance du campus BBS, etc. En y réfléchissant, il ne semble pas y avoir une seule chose ou une seule opportunité qui m'a fait tomber amoureux de la programmation. C’était très naturel de travailler dans cette industrie, et je n’avais pas l’impression de ne pas l’aimer, alors j’ai simplement continué à le faire.

Q : Comment êtes-vous tombé amoureux de PHP ? Comment êtes-vous devenu un membre clé de l’équipe de développement PHP ?

Quand j'étais étudiant diplômé, je voulais créer un site Web, je ne savais pas comment le faire, alors j'ai cherché en ligne et j'ai trouvé un tutoriel PHP sur la façon de créer un site Web simple. j'ai donc essayé de le suivre. Après un certain temps, j'ai trouvé que c'était très pratique d'installer, de déployer (il n'existait pas d'outil de déploiement centralisé à l'époque, mais il y avait de nombreux tutoriels sur la façon de déployer LAMP), d'écrire du code et test. La syntaxe était très similaire à celle du langage C, et même les noms de nombreuses API sont également les mêmes que l'API libc. Ainsi a commencé mon lien indissoluble avec PHP.

Cela aurait dû être en 2011. À cette époque, j'ai développé Ap (le projet prédécesseur de Yaf) pour Baidu. Il était bien utilisé au sein de Baidu à cette époque, alors j'ai pensé à contribuer à PECL et j'en ai créé. modifications. , a changé son nom en Yaf (encore un autre framework, le nom est aussi un peu autodépréciant, car PHP a de nombreux frameworks), j'ai donc envoyé un e-mail au groupe de messagerie PHP. Parce que mon anglais était mauvais, le processus était. C'est encore assez tortueux. Heureusement, Pierre Joye était là à ce moment-là. Cela m'a beaucoup aidé à faire entrer Yaf dans PECL.

De plus, avant de soumettre Yaf, j'avais effectivement étudié le code source de PHP, donc j'ai aussi soumis beaucoup de bugs et de correctifs. Par exemple, je me souviens d'un jour à midi, Rasmus (le père de. PHP) a déclaré sur IRC avoir découvert un bug, j'ai fourni un correctif en presque 5 minutes.

Après m'être progressivement familiarisé avec certaines personnes et avoir gagné la confiance de tous, j'ai lancé une candidature, puis j'ai obtenu l'autorisation de soumettre le code principal de PHP, j'ai participé au développement direct et à la correction de bugs de PHP, et je suis devenu un membre de l'équipe de développement.

Quant au noyau, il s'accumule lentement. En fait, c'est aussi un processus de confiance mutuelle. Si tout le monde reconnaît votre travail, alors ils respecteront votre opinion. J'ai progressivement fait la connaissance de Dmitry Stogov, obtenu l'autorisation de soumission pour la partie principale de Zend et soumis de nombreuses corrections de bugs principaux et de nouvelles fonctionnalités. Plus tard, je suis devenu consultant externe pour Zend et suis progressivement devenu développeur principal.

On dirait que c'est comme tuer des monstres et améliorer.

Q : Dans quelles circonstances avez-vous développé Yaf ? Comment Baidu a-t-il soutenu le développement de Yaf à cette époque ?

Avant Yaf, il y avait en fait un débat classique sur l'utilisation ou la non-utilisation des frameworks : "L'utilisation de frameworks réduirait les performances, et ne pas utiliser de frameworks réduirait l'efficacité du développement

Baidu en interne à cette époque." Il existe de nombreux frameworks, notamment open source Yii, ZF, etc., ainsi que ceux écrits par certaines équipes elles-mêmes. Un problème est que dans les bibliothèques de classes, certains équipements périphériques ne peuvent pas communiquer entre eux.

Une autre raison est qu'après que de nombreux auteurs de framework aient publié le framework, ils constateront que différentes personnes apporteront diverses modifications au framework. Par conséquent, au fil du temps, lorsqu'un framework est publié, il devient diverses variantes, les mises à niveau unifiées ultérieures deviennent également impossibles.

J'ai donc décidé d'utiliser l'extension PHP pour implémenter un framework permettant de résoudre ces problèmes. Bien sûr, je n'étais pas très confiant avant d'écrire cette extension, et je ne savais pas à quel point l'extension pouvait améliorer les performances. . Heureusement, le résultat final est très bon.

Q : Pourquoi avez-vous choisi d'utiliser le langage C pour écrire Yaf ?

PHP est écrit en langage C, donc ses extensions sont également écrites en langage C, donc le langage C a été choisi pour écrire Yaf.

Q : Pourquoi avez-vous quitté Baidu et êtes venu à Sina Weibo ?

Il y a en fait plusieurs raisons à cela. Par exemple, j'étais en T7 chez Baidu à cette époque, et j'étais moins impliqué dans les affaires, j'avais l'impression de n'avoir pas grand-chose à faire, et. Je me sentais un peu perdu.

De plus, je travaillais dans le département de recherche commerciale de Baidu à l'époque et je n'étais pas directement exposé aux systèmes à fort volume de trafic, j'espérais donc aussi trouver une grande plate-forme pour m'entraîner davantage, et Weibo est arrivé être une telle plateforme.

Après mon arrivée sur Weibo, j'ai en effet été exposé à de nombreux défis que je n'avais jamais rencontrés auparavant, et je sens aussi que mes connaissances ont une plus grande portée à utiliser.

Q : De quoi êtes-vous actuellement responsable sur Sina Weibo ?

Je fais maintenant partie du département technologique de Weibo, à la tête d'une équipe de service de base. Notre travail principal est également divisé en étapes. Le travail principal au cours des deux premières années consiste à optimiser les performances de Weibo LAMP, y compris diverses étapes de base. frameworks. Développement d’outils, optimisation d’environnement, formulation de spécifications, etc.

Au cours des deux dernières années, l'architecture LAMP de Weibo est devenue stable et les performances globales se sont améliorées plusieurs fois. Nous disposons également de notre propre solution globale LAMP haute performance. Il y a donc moins de travail pour optimiser LAMP. Désormais, l'accent est mis sur la recherche et le développement d'infrastructures, telles que la couche intermédiaire de mise en cache, le service de transcodage, la plate-forme de communication, etc.

Q : PHP7 (PHPNG) a-t-il considéré les besoins et les problèmes liés à l'utilisation de PHP sur la plateforme Sina Weibo comme un retour important ?

Bien sûr, c'est vrai. Depuis que j'ai rejoint l'équipe de développement, j'ai eu des arguments similaires avec de nombreux autres membres : je pense que les performances sont très importantes, et certaines personnes pensent que les nouvelles fonctionnalités sont très importantes, alors quand un Nous débattons lorsque les nouvelles fonctionnalités ont un impact sur les performances.

Je suis très obsédé par l'amélioration des performances, c'est pourquoi j'ai ensuite collaboré davantage avec Dmitry Stogov, car il était aussi particulièrement préoccupé par la performance.

La principale raison pour laquelle je me soucie des performances est que j'ai une très réelle compréhension de la valeur que chaque 1 % d'amélioration des performances peut apporter à Weibo, la plus grande plateforme LNMP en Chine. Bien que les performances globales de notre Weibo aient été grandement améliorées par rapport à il y a deux ans, je me rends compte que sans affecter l'efficacité du développement, de nouvelles améliorations ne peuvent reposer que sur l'amélioration des performances du langage et de l'environnement. Cette partie est donc la demande de Weibo pour PHP.

Par rapport à WordPress 5.6, PHP7 a une amélioration réelle des performances (QPS) de plus de 100 %. Je pense que l'année prochaine, après la sortie de PHP7, les différents services de la plateforme LAMP globale de notre Weibo seront également disponibles à 100 %. amélioration des performances.

Q : Quel est le processus pour vous de participer au développement de PHP7 (PHPNG) ? Comment collaborez-vous avec les autres membres de l’équipe de développement ?

PHPNG était un projet secret à l'époque. Les premiers participants n'étaient que Dmitry et moi. Je me souviens encore que c'était au printemps de cette année. Le projet JIT basé sur PHP5 que nous faisions à cette époque a été abandonné car. l'effet n'était pas satisfaisant. Tout le monde était plutôt déprimé.

Dmitry a déclaré qu'il avait eu l'idée de repenser ZVAL et de compresser la taille pour réduire l'utilisation de la mémoire. Ensuite, nous en avons discuté tous les deux, car nous avons en fait des idées différentes chaque jour, alors à ce moment-là, nous avons simplement pensé : eh bien, cette idée peut fonctionner. Mais pas encore très confiant.

L'idée principale à l'époque était de réaliser rapidement un prototype fonctionnel pour tester l'effet. Dans ce processus, nous discutons principalement des idées, puis implémentons les parties que nous voulons réaliser, puis les fusionnons.

Le principal outil de coopération reste Skype. Cependant, comme il est à Saint-Pétersbourg et qu'il y a un décalage horaire avec nous, il utilisera également la communication par courrier électronique et révisera le code via Github.

Quand le projet a été presque terminé plus tard, nous avons réalisé : "Hé, c'est une bonne idée et ça marche." Puis c’est devenu public. Après cela, c'est devenu un mode de collaboration normal. Si vous avez des idées, vous soumettez un RPC, soumettez un patch, votez, tout le monde réagit, puis fusionnez.

Q : Quelles fonctionnalités ont été ajoutées ou soustraites à PHP7 jusqu'à présent ? Sinon, comment les performances seront-elles améliorées avant la sortie ?

Il y en a beaucoup. En plus de la branche PHPNG, qui fournit principalement des améliorations de performances, nous avons également le support AST (Abstract Syntax Tree), la syntaxe Uniform Variable, la prise en charge des chaînes de 64 bits, un nouveau sucre de syntaxe et récemment. TLS natif, etc.

PHP7 sera officiellement publié en octobre 2015. Avant cela, nous avons encore quelques idées à essayer, comme utiliser zend_array pour remplacer directement Hashtable comme la resection et le tri en spécifiant des fonctions pour réduire les échecs iTLB ; comme introduire certaines méthodes d'optimisation de JIT (renversement de type) dans PHP et coopérer avec certains OPCodeHandlers spécifiques au type pour accélérer ; un autre exemple est d'améliorer encore la localité des données de code et de réduire les échecs de cache, etc.

Bien sûr, nous avons également un projet JIT sur lequel nous travaillons en parallèle, mais je m'inquiète de savoir si ce projet sera prêt lorsque PHP7 sera publié.

Q : La nouvelle version de PHP sera-t-elle directement mise à niveau vers PHP7 via PHP6 ? Pourquoi?

La raison principale est que PHP avait une version de développement appelée PHP6, mais plus tard, cette version a échoué et n'a pas été publiée. Par conséquent, cette version devrait être PHP7.

Q : Quelle est la relation entre le langage Hack publié par Facebook et PHP ? Le but de Hack est-il de remplacer PHP ? Quels sont les avantages de ces deux langages l’un par rapport à l’autre ?

Cela n’a pas d’importance, Hack n’est pas PHP. Quant au remplacement, je pense qu'ils (Facebook) ont peut-être une telle idée, mais cela dépend de l'acceptation ou non de la communauté.

Je ne connais pas particulièrement Hack, je ne peux donc pas commenter spécifiquement.

Q : Certaines personnes pensent que parce que PHP est facile à apprendre et que le seuil est bas, certaines personnes qui ne sont pas adaptées à la programmation sont arrivées. Que pensez-vous de ce point de vue ?

Je ne suis vraiment pas d’accord avec ce point de vue. Lorsque j'ai obtenu mon diplôme de premier cycle, j'ai également essayé de trouver des emplois en développement et j'ai passé des entretiens dans plusieurs unités, mais j'ai été rejeté. Peut-être qu'aux yeux de ceux qui m'ont interviewé à l'époque, j'étais simplement une personne inadaptée à la programmation.

Cependant, comme PHP a un seuil bas, les gens peuvent rapidement voir les résultats de leur « programmation », ce qui aura un retour positif et un effet incitatif sur les novices, rendant les personnes intéressées plus intéressées. Plus il y a de personnes qui programment, plus grande est la probabilité que quelqu'un émerge et contribue à l'avancement de la technologie.

De plus, les futurs langages de programmation doivent évoluer vers la facilité d'utilisation, abaissant encore le seuil de programmation. Peut-être qu'un jour tout le monde pourra programmer !

Q : Quelle est la structure des connaissances d'un ingénieur PHP qualifié ?

Je me souviens qu'il y avait un dicton auparavant : "Les ingénieurs PHP sont tous une panacée." En fait, cette phrase n'est pas seulement applicable aux ingénieurs PHP, mais devrait être applicable à tous les ingénieurs.

La structure des connaissances doit être large. Le développement Web implique de nombreux points techniques. En plus de HTML, CSS, JS et SQL, vous devez également connaître certaines méthodes courantes de configuration, de maintenance et de dépannage de Nginx, Linux et Mysql.

Q : En plus de la capacité technique, sur quoi d'autre vous concentrez-vous lors de l'entretien ?

J'accorderai une attention particulière à la clarté de la pensée, de la communication et de l'expression orale. En fait, pour parler franchement, si nous travaillons ensemble à l'avenir, y aura-t-il des obstacles et s'il existe un grand potentiel de croissance.

Q : Chen Bole, l'ancien webmaster de phpe.net, vend désormais des chaussettes pour hommes. Quels sont vos projets pour l’avenir ? Serez-vous toujours codeur ?

En fait, je suis une personne très paresseuse, je ne pense jamais trop loin. Si je bois du vin aujourd'hui, je me saoulerai le lendemain. Donc, en fait, je ne suis pas très clair quant à l'avenir. Je pense simplement que maintenant j'aime toujours la programmation, et j'aime profiter à tout le monde grâce à mon travail et recevoir les éloges de la communauté. Je pense que c'est bien, et je vais continuer à le faire. il.

Les gens demandent souvent pourquoi les gens vous appellent frère oiseau ?

Quand j'étais jeune et affectueux, mon surnom QQ IM était "Snow Migratory Bird", qui est une chanson de Xiong Tianping The. titre de la chanson, après être allé à Baidu, peut-être parce que je suis relativement vieux ? Petit à petit, je ne savais plus comment l'appeler populaire.

En fait, j'y ai résisté au début, après tout, "Birdman " ce n'est rien de bons mots, mais de plus en plus de gens m'ont appelé, donc ça n'avait pas d'importance.

Alors, frère Niao, qui est un développeur privé Linux, est taïwanais, Cai Deming, pourquoi s'appelle-t-il « Frère Niao » ? Il est aussi taïwanais. Questions fréquemment posées à frère Bird. Frère Niao de Taiwan a déclaré dans son propre récit qu'en raison de son nom de famille « Cai », ses camarades de classe avant le lycée l'appelaient « Caitou », et après le lycée, il était appelé « rookie ». Lorsqu'il est allé à l'université, il a continué à le faire. Utilisez le titre de « rookie ». Il avait de nombreuses activités et était souvent appelé « Rookie Senior » par ses élèves juniors. Frère Bird estimait que les deux ne se correspondaient pas, alors il a changé son nom en « Brother Bird », et le nom. a été transmis jusqu'à ce qu'il soit adopté par de plus en plus de personnes. Quant à la raison pour laquelle il a utilisé « VBird » comme identifiant de réseau, frère Niao s'est moqué de lui-même et a dit qu'il était ignorant au début et pensait que « rookie » était « Vegetable » (« Vegetable » en anglais signifie « Vegetable »). Frère Niao est devenu un nom connu de tous les passionnés de Linux.

Donc, Linux Private Kitchen n'est pas écrit par moi, et Linux Private Kitchen ne vous apprend pas à préparer du porc effiloché au goût de poisson !

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn