ソースコードから理解する技術-UnderSourceCode

手を動かす(プログラムを組む)ことで技術を理解するブログ

「現場で役立つシステム設計の原則」を読んで - その2

「現場で役立つシステム設計の原則」を読んで - ソースコードから理解する技術-UnderSourceCode
前回の記事の続きとなります。

こちらの本を読み終えました。
最後まで読んだ感想としては、オブジェクト指向ドメイン駆動開発を如何に実践的に使うかについて
非常に分かりやすく書かれていると思います。

前回にも書きましたが非常に読みやすい本だと思うので、気になる方は本書を読んでみることをお勧めします。

以下、前回からの続きのチラシの裏書レベルのメモ書きです。

  • データベースについて
    • テーブルを分けることで、全てのカラムをNot Nullにする。
    • 「記録のタイミングが異なるデータはテーブルを分ける」
    • 取り消し、更新もすべてInsertで表現する。
    • 「コト」を記録する(Insertする)テーブルと、状態を保持するテーブルを分ける。
      • 「コト」を記録は即時、状態は非同期も検討。
  • 画面について
    • 内容ごとに画面を分けることを推奨しているが、特に受託開発などで「大きな」管理画面を作る必要が出たときはどうするのだろうか?
      • 「内部の設計はタスクベースに分けておくべき」
    • とはいえ画面を「タスクベースに分ける」のが今後の主流となることについては同意である。
    • 「画面はドメインオブジェクトを視覚的に表現したもの」
    • パッケージ内の配置や、クラス内の変数の位置まで、画面の表示位置と一致させるべき。
  • APIについて
    • APIの基本的なこと(RESTやレスポンスの種類など)についても書かれている。
    • ドメインオブジェクトとAPIが返す or 受け取る形式が異なる場合、レスポンス層にオブジェクトを作って違いを吸収する。
    • 「共通部分と個別対応部分を明確にする」
      • コアとなる基本API
      • 拡張API
      • 個別対応API
  • CHAPTER9
    • 多分、この一文が重要。
    • 契約についても言及されている。


私が今回写経・改変したプログラムは以下となります。
GitHub - SrcHndWng/learningPrinciplesSystemArchitecture