コードが書けない時はまず日本語を書く

設計できたけどこれをコードにどう書こう?ってなったとき、ユースケース記述を書いてみたら良いよと教えてもらった。

ユースケース記述ってなんぞ

参考にしたのはこのあたり
it-koala.com

いろいろ項目あって大変なので、アレンジして以下の項目を基準に書いてる。

実際書くとこういうかんじになる。今回はバッチ処理のイメージ。

  • ユースケース名:契約開始
  • 概要:申込済みユーザの契約開始処理をする
  • 処理対象:契約開始可能な申込済みユーザ
    • 前日までに申込がされている
    • 支払方法が確定している
  • 基本フロー:契約開始可能な申込に対して以下の処理をする
    • ユーザの状態を契約済みに遷移
    • 契約開始イベント作成
    • 課金開始イベント作成
    • 課金システムへ契約開始連携
  • 結果:
    • 契約済みユーザ
    • 契約開始イベント
    • 課金開始イベント

で、これをそのままコードにする。
処理対象の「契約開始可能な申込」のドメインを作って、条件判定のロジックを書く。
サービス作って、フローを順に書いていく。
テストのインプットは処理対象で、期待値は結果になる。

本当はドメインモデルからクラス図とかを書くほうが良いのかもしれないけど、ツールに引っ張られずに素直に考える手段として「日本語で書く」というのが結構しっくりきたので、しばらくやってみる。