2013年以降、アプリケーションシステムの開発を開始しました。その歴史は以前の出版物に記載されています。
2017年に新しいバージョンのリリースを停止しました。 これは、製品の同梱と開発を中止したという意味ではありません。 事実、短期間で主な製品のカスタマイズを定期的に注文する大企業があったため、プロジェクトのリソースのほとんどすべてが大規模な顧客をサポートする形になりました。
補償として、
私たちはZENLIX 2.95 (
リンク )を
公開しました 。 GitHubのバージョンがZENLIX 3.xバージョンとは何の関係もない製品であることは注目に値します。
ある時点で、残りの顧客を失っていることに気付き始めました。 会社のサポートポリシーを根本的に変更する必要がありました。 一方で、予算を増やす可能性があるサポート契約によって制限されていましたが、一方で、開発者のスタッフを増やす余裕がありませんでした。 その結果、運命は私たちにそのようなチャンスを与えました。
2019年1月に、1つのカスタマーサポート契約が失効し、製品の新しい息吹を開始するためにスタッフを再フォーマットしました。
開発開始
2年間、使用されるフロントエンドモジュール(js)とバックエンド(php)のほとんどは古くなっています。 したがって、新しい機能の導入と開発には、将来的には最新の機会とリソースを使用し、消費者のニーズを満たす最新のUIを実装できるように、プラットフォームを準備する必要がありました。
バックエンド、つまりフレームワークをLaravel 5.1からLaravel 5.5(LTS)にアップグレードすることから始めました。 現在のプロジェクトを更新するためのオプションがありましたが、同僚の実践が示したように、これは複雑で不当なプロセスであり、その結果、コードリファクタリングで行き詰まるリスクがあり、その結果、アップグレードが何ヶ月も遅れます。
2番目のオプションを選択しました。 これを行うために、Laravel 5.5(LTS)でクリーンプロジェクトを初期化してから、Laravelサービスファイルに含まれるすべてのコンポーザーモジュール(最新の安定バージョン)をインストールし、リソースを生成し、前のバージョンのZENLIXに基づいて構成しました。 その後、コントローラー、モデル、移行、テンプレート、その他のパーツ、ビジネスオブジェクトの転送を行いました。 基本的な方法のほとんどは書き直さなければなりませんでした。 たとえば、承認/登録モジュール(サードパーティサービスによる承認の可能性)、完全な通知システム(メール可能なキュー)など。 また、その利点もありました-古いバージョンでいくつかの通知の問題を発見し、新しいバージョンではそれらを除外しました。 コードの移植とLaravel 5.5の使用の結果、PHPの最小ソフトウェア要件が増加しました:PHP> = 7.0.0。 このため、古い非推奨の関数と実装も書き直しました。
ZENLIX 3.5
はPHP 7.3をサポートするようになりました 。 Laravel 5.5 + PHP 7.3の新しいバージョンへの移行により、バージョン3.xと比較してアプリケーションの速度が64%大幅に向上しました。
また、nodejsマイクロサービスコードを書き直し、最適化しました。 現在では、モジュールが1つ少なくなりました-エクスプレスは除外されています。
フロントエンドを更新しました:Jquery 3.4、FontAwesome 5、Trumbowyg 2.15およびその他のモジュール。
これに関する最もクールなことは、webpack.mix.jsを使用することです。リリース時に、最小化されたjsファイルを20-> 1から、cssファイルを13-> 1から生成します。 また、コンテンツ表示のクライアント部分のレンダリング速度が大幅に向上しました。
製品の公開制御ポリシーは変更していません。 イオンキューブなどはありません すべてのコードは引き続きお客様に公開されています。 1つのエンティティのフレームワーク内での製品の使用を厳密に規制するライセンス契約以外の管理はありません。
そして、新しいバージョンでは、
いくつかの便利な機能を実装しました。
- メニュー項目とその機能を無効にする機能。
これで、管理者はすべてのユーザー(ユーザー、グループ、メッセージ、Knowledge Center、カレンダー、レポート)のモジュールを無効にできます。
- アップグレードシステムとインストールリポジトリは依然としてボトルネックでした。 ローカルコードの変更にもかかわらず、管理者が更新するものを選択できるようにしたかったのです。 その結果、大企業をサポートした経験を活用して、これをGitLabサーバーに実装しました。 製品を購入すると、クライアントにはgitリポジトリへのread_onlyアクセス権が付与されます。 ZENLIXコンソールコマンドのシェルは、ベアgit pullを使用するよりもプロセスをソフトで便利にします。 しかし、これは後者のマージへの使用を禁止していません。 製品更新システムは、コンソールを介してのみ機能するようになりました(php artisan zenlix:update)。 管理者はWebを介して、新しいバージョンを確認したり、リリース/アップデートに関する情報/指示を読んだりできます。 コンソールコマンドを起動することにより、管理者はシステムをサービス状態にし、アップデートプロセスが開始されます。
- 製品インストールの主要なタイプとしてのコンソールインストールシステム。 (php artisan zenlix:install)は、ユーザー名/パスワードを使用してZENLIXのバージョンを取得し、基本構成を作成することを許可します。 ほとんどの場合、このチームは製品のリモート無料インストールを行う技術スペシャリストに必要です。
新しいユーザーを作成するためのシステム、およびアプリケーション(ユーザー選択)を作成するためのシステム、および一般に完成品の使いやすさに非常に影響を与えるその他の多くの小さな変更がやり直されました。
別途、次のソフトウェアを使用して既製のVMイメージ(vmdk、ovf)を準備し、すでにZENLIXがインストールおよび構成されていることに注意してください。
- Ubuntu 18.04.2 LTS
- Nginx v1.14.0
- PHP v7.2.17-0
- MySQL v5.7.26-0
- ノードv8.10.0
- スーパーバイザーv3.3.1
- Redis v5.0.4
- ZENLIX v3.5
おわりに
一般に、製品プラットフォームを最新の安定バージョン(Laravel 5.5)にアップグレードし、PHP 7.3を完全にサポートし、安定した製品更新システム(git)を使用して、より頻繁に安定した更新をリリースする予定であると結論付けたいと思います。 他のカスタマイズされたプロジェクトからの興味深く便利なものの多くの実装があります。 徐々にそれらをZENLIXに転送します。 少なくとも、Androidアプリケーション、リクエストを作成および操作するための本格的なAPI、イベントなどのWebフックを作成します。
info@zenlix.comおよびtelegramですべての質問にお答えします。