John Papa のAngularJS Style Guideに記載されているガイドラインを適用しようとしています。
私たちが従い始めたルールの 1 つがDefer Controller Logicです。
サービスとファクトリに委譲することにより、コントローラーのロジックを延期します。
なぜ ?: ロジックは、サービス内に配置され、関数を介して公開されると、複数のコントローラーによって再利用される場合があります。
なぜ ?: サービスのロジックは単体テストで簡単に分離できますが、コントローラーの呼び出しロジックは簡単にモックできます。
なぜ ?: 依存関係を削除し、コントローラーから実装の詳細を非表示にします。
これは、データ取得ロジックをサービスに分離するのではなく、コントローラーに配置することで過去に違反したことです。
今は、ルールをできるだけ厳しくしたいと思っています。理想的には、構成されたサービスの 1 つが依存関係としてコントローラーに渡された場合に、angular がエラーをスローするようにしたいと考えています。角度レベルで解決できるものですか、それとも個別に解決する必要がありますか? たとえば、カスタムESlint
ルールを使用して静的に解決しますか?
洞察やヒントをいただければ幸いです。
$http
特に、次のコントローラーはサービスを直接使用するため、ルールに違反しています。
function OrderController($http, $q, config, userInfo) {
var vm = this;
vm.checkCredit = checkCredit;
vm.isCreditOk;
function checkCredit() {
var settings = {};
return $http.get(settings)
.then(function(data) {
vm.isCreditOk = vm.total <= maxRemainingAmount;
})
.catch(function(error) {
});
};
}
また、コードの品質について過度に心配している/夢中になっている場合はお知らせください:)