ebinase / othello

Othello on Laravel with DDD
4 stars 16 forks source link

ドメイン層を再モデリング&リファクタリング #55

Open ebinase opened 2 years ago

ebinase commented 2 years ago

API実装・フロント連携をするプレゼンテーション層を充実させる前に、少しごちゃごちゃしていたドメイン層を改めて整理してみる。

ebinase commented 2 years ago

ドメインモデリング(WIP) https://drive.google.com/drive/folders/14dn0FEog8jcX6Wi_TMeh1N3fVbviZMyS?usp=sharing

ebinase commented 2 years ago

⏫ ドメイン層を以下のように大別

上から純粋なオセロのルールなど、参加者や対戦モードなどのゲームとしてのオセロの管理、ボット、自作ライブラリ等

ebinase commented 2 years ago

OthelloとTurnを再定義

純粋な遊戯としてのOthello、その中で毎ターン変化する項目としてTurnを定義する。

Othello

OthelloはEntity、TurnはValueObjectとして再定義。

ドメイン層のディレクトリ構造を下記に変更

大きな変更をする上での対策

TDDをメインに実装

クラスの構造やディレクトリ名の変更などかなり修正範囲が大きくなる。 そこでテストエラーが発生することを恐れず大きな変更を加えてから、分割統治の考え方で一つ一つの機能のテストをグリーンにすることを目指す。 その積み重ねから最終的に動作する安定した状態への復帰を目指す。 (ついでにカバレッジも上げていく)

ebinase commented 2 years ago

Turnの修正完了

これを元にOthelloのリファクタリング開始

ebinase commented 2 years ago

Othelloの修正完了

次はGameの修正だけど、いったん保留へ。 フロント側へOthelloの基本機能を提供するため、バックエンドのwebページはダウンさせる。