ZENLIX 3.5 - 2 Jahre später



Seit 2013 mit der Entwicklung des Anwendungssystems begonnen, dessen Geschichte in früheren Veröffentlichungen beschrieben wurde:


Wir haben die Veröffentlichung neuer Versionen im Jahr 2017 eingestellt. Dies bedeutet nicht, dass wir aufgehört haben, das Produkt zu begleiten und zu entwickeln. Tatsache ist, dass wir in kurzer Zeit große Kundenunternehmen hatten, die regelmäßig Anpassungen des Hauptprodukts bestellten, weshalb praktisch alle Ressourcen des Projekts in die Unterstützung großer Kunden flossen.

Als Entschädigung haben wir ZENLIX 2.95 ( Link ) veröffentlicht, das öffentlich verfügbar ist . Es ist erwähnenswert, dass die Version auf GitHub ein Produkt ist, das nichts mit der ZENLIX 3.x-Version zu tun hat.

Irgendwann wurde uns klar, dass wir den Rest unserer Kunden verlieren würden. Es war notwendig, die Richtlinien zur Unternehmensunterstützung radikal zu ändern. Einerseits waren wir durch die Begleitvereinbarung mit der Möglichkeit einer Budgeterhöhung eingeschränkt, andererseits konnten wir es uns nicht leisten, das Personal der Entwickler zu erhöhen. Infolgedessen gab uns das Schicksal eine solche Chance.

Im Januar 2019 lief ein Kundendienstvertrag aus und wir formatierten die Mitarbeiter neu, um einen neuen Atemzug des Produkts zu starten.

Entwicklungsstart


Seit 2 Jahren sind die meisten verwendeten Frontend-Module (js) sowie das Backend (php) veraltet. Für die Einführung neuer Funktionen und Entwicklungen war es daher erforderlich, die Plattform so vorzubereiten, dass in Zukunft die neuesten Möglichkeiten und Ressourcen genutzt und eine moderne Benutzeroberfläche implementiert werden können, die den Anforderungen der Verbraucher entspricht.

Wir haben mit dem Backend begonnen, nämlich dem Upgrade des Frameworks von Laravel 5.1 auf Laravel 5.5 (LTS). Es gab Optionen für die Aktualisierung des aktuellen Projekts, aber wie die Praxis unserer Kollegen gezeigt hat, ist dies ein komplexer und ungerechtfertigter Prozess, aufgrund dessen die Gefahr besteht, dass das Code-Refactoring ins Stocken gerät, was wiederum das Upgrade um viele Monate verzögern würde.

Wir haben die zweite Option gewählt. Zu diesem Zweck haben wir ein sauberes Projekt auf Laravel 5.5 (LTS) initialisiert, dann alle Composer-Module (die neuesten stabilen Versionen) installiert, einschließlich dieser in Laravel-Servicedateien, Ressourcen generiert und sie basierend auf der vorherigen Version von ZENLIX konfiguriert. Danach haben wir die Übertragung von Controllern, Modellen, Migrationen, Vorlagen, anderen Teilen und Geschäftsobjekten aufgenommen. Die meisten grundlegenden Methoden mussten neu geschrieben werden. Zum Beispiel Autorisierungs- / Registrierungsmodule (mit der Möglichkeit der Autorisierung durch Dienste von Drittanbietern), ein vollständiges Benachrichtigungssystem (Mailable Queue) und andere. Es gab auch seine Vorteile - wir fanden einige Benachrichtigungsprobleme in der alten Version und schlossen sie in der neuen aus. Aufgrund der Code-Portierung sowie der Verwendung von Laravel 5.5 haben sich die Mindestsoftwareanforderungen für PHP erhöht: PHP> = 7.0.0. Aus diesem Grund haben wir auch einige alte veraltete Funktionen und Implementierungen neu geschrieben.

Wir können offiziell sagen, dass ZENLIX 3.5 jetzt PHP 7.3 unterstützt . Die Umstellung auf die neue Version von Laravel 5.5 + PHP 7.3 führte zu einer deutlichen Steigerung der Anwendungsgeschwindigkeit um 64% im Vergleich zu Version 3.x.

Wir haben auch den Microservice-Code des Knotens neu geschrieben und optimiert. Jetzt wird ein Modul weniger verwendet - Express ist ausgeschlossen.

Wir haben das Frontend aktualisiert: Jquery 3.4, FontAwesome 5, Trumbowyg 2.15 und andere Module.
Das Coolste daran ist, dass wir jetzt webpack.mix.js verwenden und bei der Veröffentlichung eine minimierte js-Datei von 20 -> 1 und eine CSS-Datei von 13 -> 1 generieren. Es gab auch eine signifikante Erhöhung der Rendergeschwindigkeit des Client-Teils der Inhaltsanzeige.

Wir haben unsere Richtlinien zur Kontrolle der Produktoffenheit nicht geändert. Kein Ionenwürfel usw. Der gesamte Code steht unseren Kunden weiterhin offen. Es gibt keine andere Kontrolle als eine Lizenzvereinbarung, die die Verwendung des Produkts im Rahmen eines Themas der organisatorischen Tätigkeit streng regelt.



In der neuen Version haben wir einige praktische Funktionen implementiert:

  • Möglichkeit zum Deaktivieren von Menüelementen sowie deren Funktionalität.
    Jetzt kann der Administrator Module für alle Benutzer deaktivieren: Benutzer, Gruppen, Nachrichten, Knowledge Center, Kalender, Berichte.
  • Das Update-System und das Installations-Repository blieben ein Engpass. Wir wollten, dass der Administrator trotz seiner Änderungen im lokalen Code auswählen kann, was ihn aktualisieren soll. Ausgehend von der Erfahrung, unsere großen Unternehmen zu unterstützen, haben wir dies auf einem GitLab-Server implementiert. Beim Kauf eines Produkts erhält der Client nur Lesezugriff auf das Git-Repository. Die Shell der ZENLIX-Konsolenbefehle macht den Prozess weicher und bequemer als die Verwendung von Bare-Git-Pull. Dies verbietet jedoch nicht die Verwendung des letzteren für die Zusammenführung. Das Produkt-Update-System funktioniert jetzt nur noch über die Konsole (PHP Artisan Zenlix: Update). Über das Internet kann der Administrator weiterhin nach einer neuen Version suchen und die Informationen / Anweisungen zur Veröffentlichung / Aktualisierung lesen. Durch Starten des Konsolenbefehls versetzt der Administrator das System in den Servicestatus und der Aktualisierungsprozess wird gestartet.
  • Konsoleninstallationssystem, jetzt als Haupttyp der Produktinstallation. (php artisan zenlix: install) ermöglicht die Verwendung des Benutzernamens / Passworts, um die Version von ZENLIX abzurufen und die Grundkonfiguration vorzunehmen. In den meisten Fällen ist dieses Team für unsere technischen Spezialisten erforderlich, die eine kostenlose Remote-Installation des Produkts durchführen.

Das System zum Erstellen neuer Benutzer sowie zum Erstellen einer Anwendung (Benutzerauswahl) und vieler anderer geringfügiger Änderungen, die sich im Allgemeinen stark auf die Benutzerfreundlichkeit des fertigen Produkts auswirken, wurde überarbeitet.

Unabhängig davon ist anzumerken, dass wir ein fertiges VM-Image (vmdk, ovf) mit der folgenden Software erstellt haben, auf der ZENLIX bereits installiert und konfiguriert ist:

  • Ubuntu 18.04.2 LTS
  • Nginx v1.14.0
  • PHP v7.2.17-0
  • MySQL v5.7.26-0
  • Knoten v8.10.0
  • Supervisord v3.3.1
  • Redis v5.0.4
  • ZENLIX v3.5

Fazit


Im Allgemeinen möchten wir zu dem Schluss kommen, dass wir nach dem Upgrade der Produktplattform auf die neueste stabile Version (Laravel 5.5), der vollständigen Unterstützung für PHP 7.3 und einem stabilen Produktupdate-System (git) häufiger stabile Updates veröffentlichen möchten. Wir haben viele Implementierungen von interessanten und praktischen Dingen aus anderen kundenspezifischen Projekten. Allmählich werden wir sie an ZENLIX übertragen. Zumindest erstellen wir eine Android-Anwendung, eine vollwertige API zum Erstellen und Bearbeiten von Anforderungen, Web-Hooks für Ereignisse und andere Dinge.

Gerne beantworten wir alle Ihre Fragen per E-Mail: info@zenlix.com sowie per Telegramm .

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


All Articles