私は、保守とテストが容易なアーキテクチャを構築するための最良の方法を見つけようとしています。いくつかのプロジェクトを経て、私はいくつかのかなり悪いアーキテクチャを見てきました、そして私は自分のプロジェクトで将来の間違いを犯さないようにしたいと思います。
かなり複雑な3層アプリケーションを構築していて、DDDを使用したいとします。私の質問は、ビジネスロジックをどこに配置すればよいかということです。一部の人々は、それをサービス(サービス層)に配置する必要があると言いますが、それは理にかなっています。単一責任の原則に準拠した多数のサービスを持つことは理にかなっています。
ただし、これはアンチパターンであり、ビジネスロジックをサービス層に実装するべきではないと言う人もいます。どうしてこれなの?
署名付きIAuthenticationService
のメソッドがあるとしましょう。bool UsernameAvailable(string username)
このメソッドは、ユーザー名が使用可能かどうかを確認するために必要なすべてのロジックを実装します。
「これはアンチパターンです」という群衆によると、ここでの問題は何ですか?