楽しい質問!
簡単な答えです。 プログラマの場合はユースケースを記述しないでください。 specifications document
はあなたのユースケースを派生させる場所です。かんばんのボードにユースケースがすべて整理されたら、それらの問題を解決し始めます。一つずつ。
通知プログラマと言っていますか?それはあなたが仕事に行き、座って、上司にあなたの仕様を渡し、あなたが8時間コードして家に帰るときだけです。しかし、それは通常そうではなく、私たちの一部は建築家です。あなたのオリジナルのポストの文脈から
(これは。私の次の点を単純化し過ぎている)、およびコメントの誰もがあなたの上にジャンプしている理由
い我々はする必要が...これのためでありますドメインレイヤのリポジトリインタフェースから各メソッドのユースケースを作成しますか?
簡単に言えば、テスト駆動型開発では、まず不合格のテストを書くまで、コードの1文字を書きません。同じことがユースケース主導の開発にも当てはまります。解決しようとしているユースケースがあるまで、コードの1文字を書いてはいけません。
と
あなたは何でも、>データベースまたはファイル内のレコードの数を返します。size()メソッドがある見ることができるように。そして、この方法はかなり速いです。 UI>スレッドをブロックせず、同期的に実行できるので、このメソッドにはUseCaseは必要ありません。
何がそうですか。 「データベースのレコード数を表示するためのユースケースはありませんでしたので、リポジトリインターフェイスにsize()
関数を追加しました。なぜなら、それが必要であると思ったからです。私はそのためのユースケースを作成しようとしています。 。「そのユースケース駆動開発の単純ではない目標。
だから、すべて言われていることは、背中のあなたのThingRepository
でsize()
機能に来てみましょう。あなたはがsize()
機能が追加されている必要がある唯一の理由は、解決することです
例: "アプリケーションには、のすべての合計数が データベースに表示されている必要があります。
ユーザーにThings
と表示されている場合、Presenter
には_ThingRepository
が挿入されている可能性があります。私は多くの場合、すでにメモリに入っているか、または別のPresenter
機能のためにある時点にいる必要があるので、_ThingRepository.readAll().Count()
を実行することになります(単純に別の国にある可能性があります)カウント。
あなたが最初size()
ユースケースを解決しようとしていた場合は、お使いのかんばんボード「は、ユーザに物事を表示する」Presenter
機能となるまで延期されなければならない実装の詳細あるとして、おそらく故障しています最後に責任がある瞬間。
したがって、size()
機能は本当にそこに存在する必要がありますか?あなたが本当にそれを置く理由がない限り、あなたがそれを必要とするまでではありません。
ユースケースは、「フェッチ・ユーザー・リスト」のような高水準のドメイン・ロジックを表すことを意図しています。ユーザーリストを取得すると、ネットワーク、ローカルリポジトリ、またはその他の方法から取得される可能性があります。リポジトリがアーキテクチャ内の別の層にあるため、リポジトリへの1対1のマッピングではありません。ドメインとデータの間に1対1のマッピングがあれば、それらを分離する目的は壊れてしまいます。 – drhr
@drhr私の場合、あなたは私にUseCaseを作成しないことを提案していますか? –
@drhr「ドメインとデータの1対1のマッピングは、それらを分離する目的を破るでしょう。私は、MVPの使用がこのような場合には良いと思いますが、私の場合は何を提案できますか? –