社内でDDDのコードリーディング会をやりました

モデルでドメイン知識を表現するとは何か[DDD]
この記事がすごくいいこと書いてる感じなので、今からDDDに沿った設計をしようと考えてる弊社のプロジェクトメンバーでぜひ共有したい!と思い、コードリーディング会をやってみました。

コードリーディング会

みんなでコードリーディングすることで、

  • 学習負荷を下げ、(僕が楽するため 🙂 )
  • 疑問点も即座に質問し合えて理解度も高まり、
  • 得た知見を共有知にできる

みたいな効果を目指しました。

やってみた

オフィスにいたプログラマ4人で一緒に内容を読み合わせ、悪いコード例、いいコード例について議論しました。
以下のような知見/気づきを得ることができました。

  • セッターがあるとオブジェクトの状態を変えれてしまうのでよくない。基本セッターがないオブジェクトとしてクラスを設計しよう。
  • ドメインモデルにドメインの知識を集めることで、得られるもの。
    • 不変条件をコードで表現できるので、プログラムが壊れにくくなる。
    • アプリケーションサービスのコードからマジックナンバーを除外でき、見通しが良くなる。
  • コマンドメソッドであっても、ドメインモデルが副作用を起こすのは気持ち悪いので、内部状態を変更するのでなく、新しいオブジェクトを返す方針でいきたい、という意見も出た。

コードリーディング会の良さ

DDDの具体的なコード例を見ながら議論することで、机上の空論ではなく地に足を付けた議論ができたなー、と感じました。
どういうコードが悪くてどういうコードがいいのか、ということを実例を見ながら具体的に話し合うことができました。「DDDで書いたときの嬉しさ」について共有できたのではないかと思います。
また、個人個人で考えている「こういうコードがいい」という指針があることに気づけたのも良かったです。それらを言語化して共有するきっかけになったのが良かった。
こういう意識の共有は、違うメンバーが書いたコードでも統一感を保つために重要なことだと思うので、こういう機会を今後も設けていきたいですね。

最後に

お題に使わせていただいた記事の著者である @little_hand_s に感謝いたします。
今後もこの程度の難易度のコードリーディング会をやっていきたいですね。準備が面倒だったりすると続けられなくなるかもしれないので、かるいスナック感覚で続けられるといい感じかなと思います。
がんばらないと続けられない活動だとしんどくなってくるので、がんばらずに続けていきたい。
では。

リモートワークも可能なWebエンジニア&フロントエンドエンジニアを募集しています。

WEBエンジニア・プログラマー求人採用情報
フロントエンドエンジニア求人採用情報

カテゴリー別ブログ記事


Webエンジニア・プログラマー >

フロントエンド >

QAエンジニア >

会社・職場環境紹介 >

社内イベント >

在宅リモートワーク >

関連記事

最近の記事 おすすめ記事
  1. 新人さん向けの品質についての読書会

  1. Hello, Processing

  2. LINE QA Engineer Interview

  3. 個人的で技術的な話:使っているエディタや言語

カテゴリー

アーカイブ

検索


TOP
TOP