Entretien avec Alexander Makarov, équipe de base Yii

L'un des principaux développeurs de Yii, Alexander Makarov ( SamDark ), donnera une conférence sur les mesures des packages chez DevConf et j'ai profité de l'occasion pour me poser quelques questions sur la nouvelle version de Yii , le nouvel ORM , la collecte de fonds pour OpenCollective , le développement open source à temps plein et un peu à propos de la conférence.

Je vais commencer par la question qui vous est constamment posée. Quoi de neuf avec Yii ? Quand est Yii 3 ? Je regarde la création active de nouveaux packages sur github.com/yiisoft depuis un certain temps.

Avec Yii, tout va bien. Enfin presque. Pour expliquer, vous devez regarder un peu en arrière.

Lorsque nous avons créé la version 2.0, nous avons quelque peu surestimé nos points forts. C'est compréhensible, Qiang Xue a roulé des montagnes tous les jours et cela nous a semblé à la fois.

Puis, malheureusement, il n'a pas eu assez de temps pour OpenSource, et le support de ce qui a été fait a mangé le reste de l'équipe tout le temps. Eh bien, puisque personne n'était impliqué dans le cadre à temps plein, cela a entraîné le fait que les versions n'étaient pas fréquentes et importantes. De plus, lors de la conception, nous avons commis des erreurs. Maintenant, ils me semblent évidents, mais nous pensions que c'était si bon. Heureusement, il n'y en a pas beaucoup. Ils ne rendent pas Yii 2.0 mauvais, le cadre est bon. Mais au fil du temps, ils ont abouti à la promesse d'une compatibilité descendante, de nombreuses fonctionnalités et d'un manque de temps qui nous ont posé des problèmes avec le développement du framework: l'introduction de PSR , en évitant la fermeture des packages et des bibliothèques communs à tous les PHP , l'amélioration en termes d'application d'approches de développement plus complexes, meilleure testabilité.

Il y avait une tentative de se débarrasser de l'évolution. Pendant un certain temps, j'ai cru en cela et j'ai parlé de la version 2.1. Mais la dette technique était déjà trop importante. Ce ne serait pas un très bon cadre dans lequel cela n'aurait aucun sens. Et maintenant, à un moment donné, la réalisation est venue qu'il serait nécessaire de tout refactoriser et beaucoup, et même de jeter et de réécrire de nombreuses parties. Mais avant de me lancer dans la bataille, je me suis bien assis et j'ai réfléchi. Je me suis indiqué ce que je veux corriger, les principes de la construction 3.0 et les valeurs de Yii en tant qu'organisation. Cela a abouti à plusieurs documents:

https://github.com/yiisoft/docs/blob/master/001-yii-values.md
https://github.com/yiisoft/docs/blob/master/003-roadmap.md

Ensuite, les travaux ont commencé sur l'attribution des packages individuels et, dans le processus, les principes de construction des packages de Robert Martin ont été relus et repensés. Les packages ne sont en fait pas entièrement nouveaux. Ce sont des parties de Yii2 qui, pour la plupart, peuvent être utilisées séparément.
Mais il en existe de nouveaux, tels que:

https://github.com/yiisoft/event-dispatcher
https://github.com/yiisoft/di

Le processus n'est pas encore terminé, donc l'augmentation du nombre de colis se poursuivra. Maintenant, ce n'est pas facile avec eux, mais plus tard, ce sera beaucoup plus facile à entretenir.

Je me souviens que vous aviez l'intention d'utiliser un nouvel ORM, que peu de gens connaissent. github.com/cycle/orm Je n'ai pas pris la peine de le connaître en détail, dites-moi en quoi cela diffère des autres et comment cela vous a attiré?

Oui, c'est vraiment un cycle . Il a été mis en œuvre par Anton Titov, auteur de roadrunner.dev . La documentation là-bas n'est pas encore tout à fait pertinente, donc si vous n'êtes pas prêt à lire la source, il est trop tôt pour y pénétrer.

Anton et moi parlons depuis longtemps. Il avait ensuite un cadre interne et a posé des questions sur comment et ce qui fonctionne dans Yii , ce que j'aime et ce que je n'aime pas dans Active Record. Discuté et les avantages et les inconvénients de la doctrine . Parfois, ils ont appelé et Anton a montré comment et ce qui avait été fait là-bas et j'ai dit à plusieurs reprises que c'était plus pratique à Yii .
À un moment donné, j'ai commencé à en dire moins et j'ai réalisé que quelque chose d'intéressant au niveau mondial pouvait provenir de Cycle . À cette époque, il existait déjà une syntaxe similaire au générateur de requêtes Yii, le concept de relations, et bien plus encore. Particulièrement captivant était le fait qu'Anton avait un RoadRunner en production et il était essentiel pour lui que Cycle ne fuit pas, ne mange pas de mémoire supplémentaire et ne s'effondre pas en raison d'erreurs dans le traitement par lots.

En fait, j'ai regardé Cycle en détail pour la dernière fois au printemps et la décision de le prendre par défaut pour Yii n'a pas été prise. Ce n'est qu'une option. Mais une chose est claire: nous ne serons pas liés à Active Record pour la validation, les formulaires, etc. Tout devrait fonctionner avec n'importe quoi: avec DTO, avec l'entité Doctrine, avec Cycle.
Yii a récemment commencé à collecter des fonds via opencollective.com/yiisoft . L'objectif de "Un développeur principal ciblé - 24 000 $ par an" est actuellement en voie d'achèvement. Qu'est-ce que cela signifie? Développeur à temps plein qui traitera exclusivement avec Yii? Qui sera-ce?

Oui, nous avons vraiment commencé une campagne de financement car il y a plus de temps pour Yii 3 qu'auparavant uniquement pour le support Yii 2 . Le développeur principal ciblé ne signifie pas qu'il sera à temps plein (le montant n'est toujours pas comparable au temps plein commercial), mais cela signifie que presque tous les jours, un développeur consacrera un temps considérable au cadre sans être distrait par la production de gravure, les délais, les problèmes d'équipe et c'est tout. . Autrement dit, ce n'est pas seulement plus de temps, mais aussi une bonne concentration des pensées sans facteurs très distrayants.

Je serai le premier développeur de ce type. Une fois l'objectif atteint, nous essaierons de relever la barre et de l'étendre à un autre membre de l'équipe de base.
Toute cette activité accrue est probablement due au fait que vous avez enfin le temps. Vous avez travaillé chez Skyeng, laissé là (vous pouvez en lire les raisons et les détails ici - rmcreative.ru/blog/post/poka--skyeng ). Continuez-vous à traiter uniquement avec l'open source? Comment vous sentez-vous? Budget familial?

Oui, c’est comme ça: le temps est venu et Yii a fortement augmenté dans les priorités des objectifs. Je traite presque exclusivement avec OpenSource. Maintenant, OpenCollective vous permet de payer sur presque tous les comptes. Parfois, je prends quelques petits travaux comme la révision de code, les processus ou la sécurité, la conception de bibliothèques OpenSource, la recherche de personnes pour des entreprises (des amis qui sont de bons développeurs, qu'ils recherchent également), mais pas beaucoup, afin de ne pas nuire au développement du framework.

Sensations ... toutes sortes. C'est vraiment ce que j'aime faire. Je suis heureux que cela se révèle un excellent outil. Ravi des gens qui ne sont pas indifférents à Yii et qui aident. J'aime prendre la parole lors de conférences.

Parfois, le fardeau de la responsabilité s'écrase. Je veux me détendre, mais "nécessaire" me fait faire quelque chose. Le plus souvent, rien de raisonnable ne sort dans une telle humeur, alors j'essaie de me convaincre que le reste est bien mérité.

Eh bien, la compréhension qu'il reste encore beaucoup de travail à faire n'est pas très ressentie. Bien que, si vous regardez ce qui a été fait chaque semaine, il devient clair que tout faire est réel et que nous le ferons.

J'attends avec impatience le moment où il sera possible de déclarer alpha et d'obtenir les premières critiques en colère :)
Je me souviens encore que vous avez ouvert quelque chose comme un café, et peut-être pas seulement un. Des affaires pour l'âme? Cela prend-il beaucoup de temps?

Deux cafés, oui. Ils l'ont fait nous-mêmes pour être satisfaits. La barre est haute. Les bons se sont avérés, mais il y a de la place pour grandir. Mon frère est principalement engagé dans des cafés maintenant. Le temps ne prend pas grand-chose.
En mai, vous étiez l'un des organisateurs de la conférence PhpRussia . Comment est-elle passée?

Ça s'est bien passé. Ils ont fait presque tout ce qu'ils voulaient: 500 personnes plus des téléspectateurs en ligne. Célèbres conférenciers étrangers, un programme solide. Absence presque totale de superpositions. Les critiques sont pour la plupart positives, mais il y a beaucoup à développer. Nous ferons plus.
Pourquoi un développeur ordinaire devrait-il assister à de telles conférences?

  1. Afin de savoir où grandir.
  2. Afin de comprendre si tout va bien dans le projet ou non.
  3. Recrutez de nouveaux outils et pratiques.
  4. Pour discuter. Cela donne souvent des résultats très inattendus: d'une communication tout simplement agréable à des conseils et des idées inestimables.

Et enfin, à propos de votre rapport. «Théorie de la programmation: principes et métriques du package». Vous avez mentionné Robert Martin et ses réflexions sur les colis. Dans quelle mesure est-ce applicable dans le monde de PHP? Dans le monde des langages compilés, la division d'un projet en plusieurs packages qui sont compilés en assemblys séparés est une pratique tout à fait normale et certaines règles sont vraiment nécessaires là-bas. En PHP, nous parlons généralement de packages compositeurs, qui sont légèrement différents, et ces principes avec des métriques ne sont nécessaires que pour les projets de niveau Yii3. Non?

Ceci est tout à fait applicable à PHP . Bien sûr, tout d'abord, cela est nécessaire pour les projets au niveau de Yii , Symfony ou Laravel , mais pour les projets commerciaux, cela a également du sens. Les métriques de paquet peuvent être appliquées non seulement aux packages Composer, mais également aux modules de code, aux microservices, etc.



DevConf se tiendra du 21 au 22 juin et il ne lui reste que 2 semaines. Des rapports solides, l'occasion de discuter d'un tas de questions en marge ou sur les pauses café et d'obtenir une bonne charge positive pendant longtemps - inscrivez-vous .

Source: https://habr.com/ru/post/fr455098/


All Articles