Entrevista con Alexander Makarov, equipo central de Yii

Uno de los desarrolladores clave de Yii, Alexander Makarov ( SamDark ), dará una charla sobre métricas de paquetes en DevConf y aproveché la oportunidad para hacerme algunas preguntas sobre la nueva versión de Yii , el nuevo ORM , recaudación de fondos para OpenCollective , desarrollo de código abierto a tiempo completo y un poco Sobre la conferencia.

Comenzaré con la pregunta que le hacen constantemente. ¿Qué pasa con Yii ? ¿Cuándo es Yii 3 ? He estado observando la creación activa de nuevos paquetes en github.com/yiisoft durante bastante tiempo.

Con Yii, todo está bien. Pues casi. Para explicarlo, debes mirar un poco hacia atrás.

Cuando creamos la versión 2.0, sobreestimamos un poco nuestras fortalezas. Es comprensible, Qiang Xue rodó montañas todos los días y nos pareció a todos a la vez.

Luego, desafortunadamente, no tuvo suficiente tiempo para OpenSource, y el apoyo para lo que se hizo se comió al resto del equipo todo el tiempo. Bueno, dado que nadie estuvo involucrado en el marco de tiempo completo, resultó en el hecho de que los lanzamientos no eran frecuentes y grandes. Además, al diseñar, cometimos errores. Ahora me parecen obvios, pero luego pensamos que era tan bueno. Afortunadamente, no hay muchos de ellos. No hacen que Yii 2.0 sea malo; el marco es bueno. Pero con el tiempo, dieron como resultado la promesa de compatibilidad con versiones anteriores, muchas características y una falta de tiempo que nos dieron problemas con el desarrollo del marco: la introducción de PSR , evitar el cierre de paquetes y bibliotecas comunes a todo PHP , mejoras en términos de aplicar enfoques de desarrollo más complejos, Mejor capacidad de prueba.

Se intentó deshacerse de la evolución. Por un tiempo creí en esto y hablé sobre la versión 2.1. Pero, la deuda técnica ya era demasiado grande. No sería un muy buen marco en el que no tendría sentido. Y ahora, en algún momento, se dio cuenta de que sería necesario refactorizar todo y mucho, e incluso tirar y reescribir muchas partes. Pero antes de lanzarme a la batalla, me senté bien y reflexioné. Indiqué lo que quiero arreglar, los principios de la construcción 3.0 y los valores de Yii como organización. Esto dio lugar a varios documentos:

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

A continuación, se comenzó a trabajar en la asignación de paquetes individuales y, en el proceso, se volvieron a leer y repensar los principios de construcción de paquetes de Robert Martin. Los paquetes en realidad no son completamente nuevos. Estas son partes de Yii2 que, en su mayor parte, se pueden usar por separado.
Pero hay otros nuevos, como:

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

El proceso aún no se ha completado, por lo que el aumento en el número de paquetes continuará. Ahora no es fácil con ellos, pero más tarde será mucho más fácil de mantener.

Recuerdo que tenía planes para usar un nuevo ORM, que pocas personas conocen. github.com/cycle/orm No me he molestado en conocerlo en detalle, dime cómo se diferencia de los demás y cómo te atrajo.

Sí, realmente es un ciclo . Fue implementado por Anton Titov, autor de roadrunner.dev . La documentación allí todavía no es muy relevante, por lo que si no está listo para leer la fuente, es demasiado pronto para entrar.

Anton y yo hemos estado hablando durante mucho tiempo. Luego tuvo un marco interno y formuló preguntas sobre cómo y qué funciona en Yii , qué me gusta y qué no me gusta en Active Record. Discutido y los pros y los contras de Doctrina . Algunas veces llamaron y Anton mostró cómo y qué se había hecho allí y muchas veces dije que es más conveniente en Yii .
En algún momento, comencé a decir menos y me di cuenta de que algo globalmente interesante podría venir de Cycle . En ese momento, ya había una sintaxis similar al generador de consultas Yii, el concepto de relaciones y mucho más. Particularmente cautivador fue el hecho de que Anton tenía un RoadRunner en producción y fue crítico para él que Cycle no tuviera fugas, no comiera memoria extra y no se desmoronara debido a errores en el procesamiento por lotes.

De hecho, la última vez que vi a Cycle en detalle fue en primavera y no tomé la decisión de tomarlo por defecto para Yii . Esta es solo una opción. Pero una cosa está clara: no estaremos vinculados a Active Record para la validación, formularios, etc. Todo debería funcionar con cualquier cosa: con DTO, con entidad Doctrine, con Cycle.
Yii recientemente comenzó a recaudar fondos a través de opencollective.com/yiisoft . El objetivo de "Un desarrollador central enfocado: $ 24,000 por año" está actualmente cerca de completarse. ¿Qué significa esto? Desarrollador a tiempo completo que se ocupará exclusivamente de Yii? Quien sera?

Sí, realmente comenzamos una campaña de recaudación de fondos porque hay más tiempo para Yii 3 que antes solo para el apoyo de Yii 2 . El desarrollador central enfocado no significa que será a tiempo completo (la cantidad aún no es comparable con el comercial a tiempo completo), pero significa que casi todos los días un desarrollador dedicará un tiempo considerable al marco sin distraerse con la producción ardiente, los plazos, los problemas del equipo y eso es todo . Es decir, no solo es más tiempo, sino también un buen enfoque de pensamientos sin factores muy molestos.

Seré el primer desarrollador de este tipo. Al alcanzar la meta, intentaremos elevar el listón y expandirlo a otro miembro del equipo central.
Es probable que todo este aumento de actividad se deba al hecho de que finalmente tienes tiempo. Trabajaste en Skyeng, te fuiste allí (puedes leer sobre las razones y los detalles aquí: rmcreative.ru/blog/post/poka--skyeng ). ¿Continúas tratando solo con código abierto? Como te sientes Presupuesto familiar?

Sí, es así: ha llegado el momento y Yii ha aumentado fuertemente en las prioridades de los objetivos. Trato casi exclusivamente con OpenSource. Ahora OpenCollective le permite pagar en casi todas las cuentas. A veces tomo algunos trabajos pequeños como revisión de código, procesos o seguridad, diseño de bibliotecas OpenSource, búsqueda de personas para empresas (amigos que son buenos desarrolladores, que también buscan), pero no mucho, para no dañar el desarrollo del marco.

Sensaciones ... de todo tipo. Esto es realmente lo que me gusta hacer. Me alegra que resulte una gran herramienta. Complacido con personas que no son indiferentes a Yii y que ayudan. Me gusta hablar en conferencias.

A veces la carga de la responsabilidad se aplasta. Quiero relajarme, pero "necesario" me obliga a hacer algo. En la mayoría de los casos, nada sensato sale de tal humor, así que trato de convencerme de que el resto es bien merecido.

Bueno, la comprensión de que todavía hay mucho trabajo por delante tampoco se siente mucho. Sin embargo, si observa lo que se ha hecho cada semana, queda claro que hacerlo todo es real y que lo haremos.

Espero con ansias el momento en que sea posible declarar alfa y obtener las primeras críticas enojadas :)
Todavía recuerdo que abriste algo así como una cafetería, y tal vez no solo una. ¿Negocio para el alma? ¿Toma mucho tiempo?

Dos cafeterías, sí. Lo hicieron nosotros mismos para estar contentos. El bar es alto. Los buenos resultaron, pero hay espacio para crecer. Mi hermano se dedica principalmente a cafeterías ahora. El tiempo no toma mucho.
En mayo, fuiste uno de los organizadores de la conferencia de PhpRussia . ¿Cómo fue ella?

Todo salió bien Hicieron casi todo lo que querían: 500 personas más espectadores en línea. Famosos oradores extranjeros, un programa fuerte. Ausencia casi completa de superposiciones. Las revisiones son en su mayoría positivas, pero hay mucho por desarrollar. Haremos más
¿Por qué un desarrollador ordinario debería asistir a tales conferencias?

  1. Para saber dónde crecer.
  2. Para entender si todo está bien en el proyecto o no.
  3. Reclutar nuevas herramientas y prácticas.
  4. Para chatear Esto a menudo da resultados muy inesperados: desde una comunicación agradable hasta consejos e ideas invaluables.

Y finalmente, sobre su informe. "Teoría de la programación: principios y métricas del paquete". Mencionaste a Robert Martin y sus pensamientos sobre los paquetes. ¿Cuán aplicable es esto en el mundo de PHP? En el mundo de los lenguajes compilados, dividir un proyecto en varios paquetes que se compilan en ensamblajes separados es una práctica bastante normal y algunas reglas son realmente necesarias allí. En PHP, generalmente hablamos de paquetes de compositores, que son ligeramente diferentes, y estos principios con métricas son necesarios solo para proyectos del nivel Yii3. No?

Esto es bastante aplicable a PHP . Por supuesto, en primer lugar, esto es necesario para proyectos a nivel de Yii , Symfony o Laravel , pero para proyectos comerciales esto también tiene sentido. Las métricas de paquetes se pueden aplicar no solo a los paquetes de Composer, sino también a los módulos de código, microservicios, etc.



DevConf se llevará a cabo del 21 al 22 de junio y solo quedan 2 semanas antes. Informes sólidos, la oportunidad de discutir un montón de preguntas al margen o en los descansos para tomar café y obtener una buena carga positiva durante mucho tiempo: regístrese .

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


All Articles