マスターに指導をお願いします。システム アーキテクチャについて質問があります。
私は Web サイト システムに取り組んでおり、いくつかの問題が発生しました。
の説明です。状況:
この Web サイトのアーキテクチャは PHP の CodeIgniter で書かれており、CodeIgniter は MVC アーキテクチャを満たしていますが、システム内の多くの M 層と C 層のコードが Python で実装されているため、設計時に次の 2 つの問題が発生しました。システムのアーキテクチャ (コードの再利用と共有データベースの転送リファレンス):
1. コードの再利用は php と Python のモデル層に反映されます。現状では、相互に呼び出すことが困難であり、コードの再利用が発生します。
2. 共有データベースは、php と python の両方がデータベースを操作するという事実に反映されており、python と php が相互に呼び出すことが難しいため、パラメーターの転送にデータベースの特定のテーブルが使用されるようになりました。
現在、将来のシステムには次のような要件があります。
1. 異なる当事者が異なる関数を使用できる (コードは物理的に分離されている)。
2. システムのモジュール間の結合度が低く、モジュールを柔軟に組み合わせることで新しい機能を実現できます。
3. 未知の圧力下でもシステムは安定しています。
ヘルプ: 専門家が、できるだけ少ない変更で上記のニーズを満たすソリューション (どのようなシステム アーキテクチャ、データ インターフェイスの設計など) を提案できることを願っています。
------ソリューションアイデア----------------------
3 層アーキテクチャが表示されます
最も内側は、実際のデータベースを扱うために使用されるデータ層です
真ん中のリングは、特定のビジネスプロセスを実装するビジネス層です
最も外側の層は、ユーザーインターフェースを実装するユーザー層 関連する機能
は、ユーザー層がビジネス層をバイパスしてデータベース
を直接操作することができないという構造からわかるように、ビジネス層によって提供されるさまざまなメソッドは API と呼ばれるようになりました。
は、以下を満たす場合に実装する必要があります。
エンティティ データベースがどのようなものになっても、データ層インターフェイスは変更されません (つまり、ビジネス層コードを変更する必要はありません)
関係ありませんユーザー層が必要とするものは、ビジネス層インターフェース (API) を介して (のみ) 実現できます
もちろん、ビジネス ロジックも変更する必要がありますが、これはユーザーレベルのコード (当然効果は変わります)