そのため、ドメインについて詳しく知らずに「ベスト プラクティス」について完全な回答を提供することは不可能かもしれませんが、実装の詳細についてこれほど早い段階で考えることで、災害に備えている可能性があると言えます。
あなたが私のような人なら、優れた OOD/OOP は細心の注意を払って詳細に説明され、 BDUF が含まれていると教えられました。これが非常に多くのプロジェクトが後になってひどく保守不能になる理由であることに気がついたのは、私のキャリアの後半になってからでした。コードが実際にどのように使用されるかから設計が自然に浮かび上がるのではなく、プロジェクトがどのように機能するかについて仮定が行われます。
簡単に言えば、 BDD / TDD(ビヘイビア/テスト駆動開発)を行う必要があります。
- 大まかなドメイン モデルをスケッチするところから始めますが、詳細になりすぎないようにします。
- 開始する機能領域を選択します。できれば、モデルの上部、またはユーザーが操作するモデルの上部に配置します。
- ユニットに期待される機能についてブレインストーミングし、リストを作成します。
- そのユニットで TDD サイクルを開始し、その後積極的にリファクタリングします。
最終的に得られるものはまさに必要なものであり、不要なものは何もありません (ほとんどの場合)。テストを完全にカバーするという追加の利点が得られるため、後で何かを壊すことを心配することなくリファクタリングできます:)
ここでコードを提供していないことはわかっていますが、それは、私が提供するものはおそらく間違っているため、あなたはそれで立ち往生するでしょう. コードが実際にどのように使用されるかを知っているのはあなただけであり、その方法でコードを書くことから始めるべきです。TDD は、コードがどのように見えるべきかということに焦点を当てており、その後、実装の詳細を入力していくことができます。
これについての完全な説明は、この投稿の範囲を超えていますが、オンラインで入手できるリソースは無数にあり、TDD の実践を開始するための優れたリソースである書籍も多数あります。この2人でいいスタートが切れるはずです。