Interview mit Alexander Makarov, Yii-Kernteam

Einer der wichtigsten Entwickler von Yii, Alexander Makarov ( SamDark ), wird auf der DevConf einen Vortrag über Paketmetriken halten, und ich nutzte die Gelegenheit, um einige Fragen zur neuen Version von Yii , dem neuen ORM , zu stellen , Spenden für OpenCollective , Vollzeit-Open-Source-Entwicklung und ein bisschen mehr über die Konferenz.

Ich beginne mit der Frage, die Ihnen ständig gestellt wird. Was ist los mit Yii ? Wann ist Yii 3 ? Ich beobachte seit einiger Zeit die aktive Erstellung neuer Pakete unter github.com/yiisoft .

Mit Yii ist alles in Ordnung. Na ja, fast. Um dies zu erklären, müssen Sie ein wenig zurückblicken.

Als wir Version 2.0 gemacht haben, haben wir unsere Stärken etwas überschätzt. Es ist verständlich, dass Qiang Xue jeden Tag Berge rollte und es uns allen auf einmal erschien.

Dann hatte er leider nicht genug Zeit für OpenSource und die Unterstützung für das, was getan wurde, hat den Rest des Teams die ganze Zeit aufgefressen. Nun, da niemand in das Vollzeit-Framework involviert war, führte dies dazu, dass Veröffentlichungen nicht häufig und umfangreich waren. Außerdem haben wir beim Entwerfen Fehler gemacht. Jetzt scheinen sie mir offensichtlich zu sein, aber dann fanden wir es so gut. Zum Glück gibt es nicht viele von ihnen. Sie machen Yii 2.0 nicht schlecht, das Framework ist gut. Im Laufe der Zeit versprachen sie jedoch Abwärtskompatibilität, viele Funktionen und Zeitmangel, was uns Probleme bei der Entwicklung des Frameworks bereitete: Einführung von PSR , Vermeidung der Schließung von Paketen und Bibliotheken, die allen PHP gemeinsam sind , Verbesserung der Anwendung komplexerer Entwicklungsansätze, bessere Testbarkeit.

Es gab einen Versuch, die Evolution loszuwerden. Eine Weile habe ich daran geglaubt und über Version 2.1 gesprochen. Die technische Verschuldung war jedoch bereits zu hoch. Es wäre kein sehr guter Rahmen, in dem es keinen Sinn gäbe. Und jetzt kam irgendwann die Erkenntnis, dass es notwendig sein würde, alles und vieles umzugestalten und sogar viele Teile wegzuwerfen und neu zu schreiben. Aber bevor ich mich in die Schlacht warf, saß ich gut und reflexartig. Ich gab mir selbst an, was ich reparieren möchte, die Prinzipien des Aufbaus von 3.0 und die Werte von Yii als Organisation. Dies führte zu mehreren Dokumenten:

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

Als nächstes begannen die Arbeiten zur Zuweisung einzelner Pakete, und dabei wurden die Prinzipien für die Erstellung von Robert Martins Paketen neu gelesen und überdacht. Die Pakete sind eigentlich nicht ganz neu. Dies sind Teile von Yii2 , die größtenteils separat verwendet werden können.
Aber es gibt neue wie:

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

Der Vorgang ist noch nicht abgeschlossen, daher wird die Anzahl der Pakete weiter erhöht. Jetzt ist es mit ihnen nicht einfach, aber später wird es viel einfacher zu warten sein.

Ich erinnere mich, dass Sie Pläne hatten, ein neues ORM zu verwenden, von dem nur wenige wissen. github.com/cycle/orm Ich habe mich nicht darum gekümmert , ihn im Detail kennenzulernen. Sagen Sie mir, wie es sich von anderen unterscheidet und wie es Sie angezogen hat.

Ja, es ist wirklich ein Zyklus . Es wurde von Anton Titov, Autor von roadrunner.dev, implementiert. Die Dokumentation dort ist immer noch nicht ganz relevant. Wenn Sie also nicht bereit sind, die Quelle zu lesen, ist es zu früh, um hineinzuklettern.

Anton und ich haben lange miteinander gesprochen. Er hatte dann ein internes Framework und stellte Fragen darüber, wie und was in Yii funktioniert, was ich in Active Record mag und was nicht. Besprochen und die Vor- und Nachteile der Lehre . Manchmal riefen sie an und Anton zeigte, wie und was dort gemacht wurde und ich sagte oft, dass es in Yii bequemer ist.
Irgendwann begann ich weniger zu sagen und erkannte, dass etwas global Interessantes von Cycle kommen könnte. Zu diesem Zeitpunkt gab es bereits eine ähnliche Syntax wie der Yii-Abfrage-Generator, das Konzept der Beziehungen und vieles mehr. Besonders bestechend war die Tatsache, dass Anton RoadRunner in Produktion war und es für ihn entscheidend war, dass Cycle nicht leckte, keinen zusätzlichen Speicher verbrauchte und aufgrund von Fehlern in der Stapelverarbeitung nicht auseinander fiel.

Tatsächlich habe ich Cycle zuletzt im Frühjahr im Detail gesehen und die Entscheidung, es standardmäßig für Yii zu verwenden, wurde nicht getroffen. Dies ist nur eine Option. Eines ist jedoch klar: Wir werden für Validierungen, Formulare usw. nicht an Active Record gebunden sein. Es sollte alles mit allem funktionieren: mit DTO, mit Doctrine Entity, mit Cycle.
Yii hat vor kurzem begonnen, über opencollective.com/yiisoft Spenden zu sammeln . Das Ziel "Ein fokussierter Kernentwickler - 24.000 US-Dollar pro Jahr" steht derzeit kurz vor dem Abschluss. Was bedeutet das? Vollzeitentwickler, der sich ausschließlich mit Yii befasst? Wer wird es sein?

Ja, wir haben wirklich eine Spendenaktion gestartet, da für Yii 3 mehr Zeit bleibt als zuvor, nur für die Unterstützung von Yii 2 . Fokussierter Kernentwickler bedeutet nicht, dass es Vollzeit sein wird (die Menge ist immer noch nicht mit der kommerziellen Vollzeit vergleichbar), aber es bedeutet, dass fast jeden Tag ein Entwickler viel Zeit für das Framework aufwenden wird, ohne durch brennende Produktion, Termine, Teamprobleme und das alles abgelenkt zu werden . Das heißt, es ist nicht nur mehr Zeit, sondern auch ein guter Fokus der Gedanken ohne sehr ablenkende Faktoren.

Ich werde der erste derartige Entwickler sein. Sobald wir das Ziel erreicht haben, werden wir versuchen, die Messlatte höher zu legen und diese auf ein anderes Mitglied des Kernteams auszudehnen.
All diese gesteigerte Aktivität ist höchstwahrscheinlich darauf zurückzuführen, dass Sie endlich Zeit haben. Sie haben bei Skyeng gearbeitet, dort links (Sie können die Gründe und Details hier nachlesen - rmcreative.ru/blog/post/poka--skyeng ). Beschäftigen Sie sich weiterhin nur mit Open Source? Wie fühlst du dich? Familienbudget?

Ja, es ist so: Die Zeit ist gekommen und Yii hat die Prioritäten der Ziele stark angehoben . Ich beschäftige mich fast ausschließlich mit OpenSource. Mit OpenCollective können Sie jetzt auf fast allen Konten bezahlen. Manchmal nehme ich einige kleine Aufgaben wie Codeüberprüfung, Prozesse oder Sicherheit an, entwerfe OpenSource-Bibliotheken, suche nach Personen für Unternehmen (Freunde, die gute Entwickler sind, die sie auch suchen), aber nicht viel, um die Entwicklung des Frameworks nicht zu beeinträchtigen.

Empfindungen ... allerlei. Das ist wirklich das, was ich gerne mache. Ich bin froh, dass es sich als großartiges Werkzeug herausstellt. Zufrieden mit Menschen, denen Yii nicht gleichgültig ist und die helfen. Ich spreche gerne auf Konferenzen.

Manchmal zerquetscht die Last der Verantwortung. Ich möchte mich entspannen, aber "notwendig" bringt mich dazu, etwas zu tun. Meistens kommt in einer solchen Stimmung nichts Vernünftiges heraus, deshalb versuche ich mich immer noch davon zu überzeugen, dass der Rest verdient ist.

Nun, das Verständnis, dass noch viel Arbeit vor uns liegt, ist auch nicht sehr spürbar. Wenn Sie sich jedoch ansehen, was jede Woche getan wurde, wird klar, dass es real ist, alles zu tun, und dass wir es tun werden.

Ich freue mich auf den Moment, in dem es möglich sein wird, Alpha zu deklarieren und die ersten verärgerten Bewertungen zu erhalten :)
Ich erinnere mich noch, dass Sie so etwas wie ein Café eröffnet haben, und vielleicht nicht nur eines. Geschäft für die Seele? Nimmt es viel Zeit in Anspruch?

Zwei Kaffeehäuser, ja. Sie haben es selbst getan, um zufrieden zu sein. Die Messlatte ist hoch. Gute haben sich herausgestellt, aber es gibt Raum zum Wachsen. Mein Bruder beschäftigt sich jetzt hauptsächlich mit Kaffeehäusern. Die Zeit braucht nicht viel.
Im Mai waren Sie einer der Organisatoren der PhpRussia- Konferenz. Wie ist sie gegangen?

Es lief gut. Sie haben fast alles getan, was sie wollten: 500 Leute plus Online-Zuschauer. Berühmte ausländische Sprecher, ein starkes Programm. Fast keine Überlagerungen. Die Bewertungen sind überwiegend positiv, aber es gibt viel zu entwickeln. Wir werden mehr tun.
Warum sollte ein gewöhnlicher Entwickler an solchen Konferenzen teilnehmen?

  1. Um zu wissen, wo man wachsen soll.
  2. Um zu verstehen, ob im Projekt alles stimmt oder nicht.
  3. Rekrutieren Sie neue Tools und Praktiken.
  4. Zum Chatten. Dies führt oft zu sehr unerwarteten Ergebnissen: von nur angenehmer Kommunikation bis zu unschätzbaren Tipps und Einsichten.

Und schließlich zu Ihrem Bericht. "Programmiertheorie: Paketprinzipien und Metriken." Sie haben Robert Martin und seine Gedanken zu Paketen erwähnt. Wie anwendbar ist dies in der Welt von PHP? In der Welt der kompilierten Sprachen ist es ganz normal, ein Projekt in mehrere Pakete zu unterteilen, die in separate Assemblys kompiliert werden, und dort werden einige Regeln wirklich benötigt. In PHP sprechen wir normalerweise von Composer-Paketen, die sich geringfügig unterscheiden, und diese Prinzipien mit Metriken werden nur für Projekte der Yii3-Ebene benötigt. Nein?

Dies gilt durchaus für PHP . Dies ist natürlich vor allem für Projekte auf der Ebene von Yii , Symfony oder Laravel erforderlich, aber auch für kommerzielle Projekte ist dies sinnvoll. Paketmetriken können nicht nur auf Composer-Pakete angewendet werden, sondern auch auf Codemodule, Microservices usw.



Die DevConf findet vom 21. bis 22. Juni statt und es bleiben nur noch 2 Wochen. Starke Berichte , die Möglichkeit, eine Reihe von Fragen an der Seitenlinie oder in Kaffeepausen zu diskutieren und eine gute positive Ladung für eine lange Zeit zu erhalten - registrieren Sie sich .

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


All Articles