ZENLIX 3.5 - 2 ans plus tard



Ayant commencé à développer le système d'application, depuis 2013, dont l'histoire est décrite dans les publications précédentes:


nous avons arrêté la sortie de nouvelles versions en 2017. Cela ne signifie pas que nous avons cessé d'accompagner le produit et de le développer. Le fait est que, dans un court laps de temps, nous avons de grandes entreprises clientes qui ont régulièrement commandé la personnalisation du produit principal, c'est pourquoi pratiquement toutes les ressources du projet sont allées à la prise en charge de gros clients.

En compensation, nous avons rendu public ZENLIX 2.95 ( lien ). Il convient de noter que la version sur GitHub est un produit qui n'a rien à voir avec la version ZENLIX 3.x.

À un moment donné, nous avons commencé à réaliser que nous perdions le reste de nos clients. Il était nécessaire d'apporter des changements radicaux aux politiques de soutien aux entreprises. D'une part, nous étions limités par l'accord d'escorte avec la possibilité d'augmenter le budget, d'autre part, nous ne pouvions pas nous permettre d'augmenter le personnel des développeurs. En conséquence, le destin nous a donné une telle chance.

En janvier 2019, un accord de support client a expiré et nous avons reformaté le personnel pour commencer un nouveau souffle du produit.

Début du développement


Depuis 2 ans, la plupart des modules frontaux utilisés (js), ainsi que le backend (php), sont obsolètes. Par conséquent, pour l'introduction de nouvelles fonctionnalités et le développement, il était nécessaire de préparer la plate-forme afin qu'à l'avenir, il soit possible d'utiliser les dernières opportunités et ressources, de mettre en œuvre une interface utilisateur moderne qui réponde aux besoins des consommateurs.

Nous avons commencé avec le backend, à savoir la mise à niveau du framework de Laravel 5.1 vers Laravel 5.5 (LTS). Il y avait des options pour mettre à jour le projet actuel, mais comme la pratique de nos collègues l'a montré, il s'agit d'un processus complexe et injustifié, ce qui entraîne un risque de s'enliser dans le refactoring de code, ce qui retarderait à son tour la mise à niveau de plusieurs mois.

Nous avons choisi la deuxième option. Pour ce faire, nous avons initialisé un projet propre sur Laravel 5.5 (LTS), puis installé tous les modules de composition (les dernières versions stables), en les incluant dans les fichiers de service Laravel, généré des ressources et les configuré en fonction de la version précédente de ZENLIX. Après cela, nous avons pris en charge le transfert des contrôleurs, modèles, migrations, modèles, autres pièces et objets métier. La plupart des méthodes fondamentales ont dû être réécrites. Par exemple, des modules d'autorisation / enregistrement (avec possibilité d'autorisation via des services tiers), un système de notification complet (file d'attente Mailable) et autres. Il a également donné ses avantages - nous avons trouvé des problèmes de notification dans l'ancienne version et les avons exclus dans la nouvelle. En raison du portage de code, ainsi que de l'utilisation de Laravel 5.5, les exigences logicielles minimales pour PHP ont augmenté: PHP> = 7.0.0. Pour cette raison, nous avons également réécrit certaines anciennes fonctions et implémentations obsolètes.

Nous pouvons officiellement dire que maintenant ZENLIX 3.5 prend en charge PHP 7.3 . Le passage à la nouvelle version de Laravel 5.5 + PHP 7.3 a permis une augmentation significative de la vitesse d'application de 64% par rapport à la version 3.x.

Nous avons également réécrit et optimisé le code du microservice nodejs. Maintenant, il utilise un module de moins - express est exclu.

Nous avons mis à jour l'interface: Jquery 3.4, FontAwesome 5, Trumbowyg 2.15 et d'autres modules.
La chose la plus cool à ce sujet est que nous utilisons maintenant webpack.mix.js, et à la sortie, nous générons un fichier js minimisé de 20 -> 1 et un fichier css de 13 -> 1. Cela a également permis une augmentation significative de la vitesse de rendu de la partie client de l'affichage du contenu.

Nous n'avons pas modifié notre politique de contrôle de l'ouverture des produits. Pas d'ioncube, etc. Tout le code est toujours ouvert à nos clients. Il n'y a pas d'autre contrôle qu'un accord de licence, qui réglemente strictement l'utilisation du produit dans le cadre d'un sujet d'activité organisationnelle.



Et dans la nouvelle version, nous avons implémenté plusieurs fonctionnalités pratiques :

  • Possibilité de désactiver les éléments de menu, ainsi que leurs fonctionnalités.
    L'administrateur peut désormais désactiver les modules pour tout le monde: utilisateurs, groupes, messages, centre de connaissances, calendrier, rapports.
  • Le système de mise à jour et le référentiel d'installation sont restés un goulot d'étranglement. Nous voulions que l'administrateur puisse choisir quoi mettre à jour, malgré ses changements dans le code local. En conséquence, en utilisant l'expérience du support de nos grandes entreprises, nous l'avons implémenté sur un serveur GitLab. Lors de l'achat d'un produit, le client bénéficie d'un accès en lecture seule au référentiel git. Le shell des commandes de la console ZENLIX rend le processus plus doux et plus pratique que l'utilisation de git pull nu. Mais cela n'interdit pas l'utilisation de ces derniers pour la fusion. Le système de mise à jour du produit ne fonctionne désormais que via la console (php artisan zenlix: mise à jour). Sur le Web, l'administrateur peut toujours rechercher une nouvelle version, ainsi que lire les informations / instructions sur la version / mise à jour. En lançant la commande de console, l'administrateur met le système en état de service et le processus de mise à jour démarre.
  • Système d'installation de la console, désormais le principal type d'installation du produit. (php artisan zenlix: install) permet d'utiliser le nom d'utilisateur / mot de passe pour obtenir la version de ZENLIX, ainsi que pour effectuer la configuration de base. Dans la plupart des cas, cette équipe est nécessaire pour nos spécialistes techniques qui effectuent une installation gratuite à distance du produit.

Le système de création de nouveaux utilisateurs, ainsi que de création d'une application (choix de l'utilisateur) et de nombreuses autres modifications mineures, qui affectent généralement beaucoup la convivialité du produit fini, a été refait.

Par ailleurs, il convient de noter que nous avons préparé une image VM prête à l'emploi (vmdk, ovf) avec le logiciel suivant, déjà avec ZENLIX installé et configuré:

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

Conclusion


En général, nous aimerions conclure qu'ayant mis à niveau la plate-forme du produit vers la dernière version stable (Laravel 5.5), une prise en charge complète de PHP 7.3, un système de mise à jour du produit stable (git), nous prévoyons de publier des mises à jour stables plus fréquentes. Nous avons de nombreuses implémentations de choses intéressantes et pratiques d'autres projets personnalisés. Nous les transférerons progressivement vers ZENLIX. Au minimum, nous créerons une application Android, une API à part entière pour créer et travailler avec des demandes, des crochets Web pour des événements et d'autres choses.

Nous serons heureux de répondre à toutes vos questions par courrier: info@zenlix.com , ainsi que par télégramme .

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


All Articles