新接手的代码,发现在Controller里处理的逻辑就有几百行代码?又没有事务管理,这么做好吗?
阿神2017-04-17 18:03:27
標準 MVC は、コントローラーにビジネス ロジックを直接実装しますが、実際のプロジェクトでは、コントローラーとデータベース操作の間のサービス層をカプセル化することが依然として推奨されます。
一方で、コントローラーはさまざまなリクエスト URL に応答するため、機能の重複が多くなり、保守が困難になります。
他方では、サービス機能が次のような場合があることを考慮する必要があります。将来的には、他のアプリケーション インターフェイスや別の端末 (APP、モバイル H5 など) などの他のフロントエンドに公開される可能性もあります。
PHP中文网2017-04-17 18:03:27
非常に悪く、拡張が非常に難しく、保守性も非常に悪いです。
コントローラーはシンレイヤーであるべきであり、ビジネスロジックは可能な限りサービスレイヤーに配置して処理する必要があり、サービスの粒度やサービス利用の点でもより自由である必要があります。
PHP中文网2017-04-17 18:03:27
今引き継いだプロジェクトのController層も非常に大きく、1つのメソッドが数百行もあり、ifの入れ子が複数層になっており、非常に面倒になるのが最大の問題だと感じています。後のメンテナンスでは、前のビジネス ロジックを理解する必要があります。個人的には、特定の論理操作を担当するサービスを使用する方が良いと感じています。コードは可能な限り拡張可能である必要があります。
PHP中文网2017-04-17 18:03:27
今日同僚にコードを見てもらいましょう。彼が最初に言ったのは、サービスにコントローラー コードを配置する必要があるということでした。
それは主にビジネスの複雑さによって異なります。非常に単純なビジネスであれば、必要はありません。コントローラーからサービス、そして Dao までは、チーム全体の開発仕様に依存します。