天の月

ソフトウェア開発をしていく上での悩み, 考えたこと, 学びを書いてきます

コードレビューで必ず気をつけることに参加してきた

ddd-community-jp.connpass.com

こちらのイベントに参加してきたので、会の様子と感想を書いていこうと思います。

会の概要

以下、connpassのイベントページから引用です。

開発で避けて通れないのはコードレビュー。

どのようにすればいいか迷う人も多いのではないでしょうか?  今回はコードレビューで気をつけるポイントについて解説します。 DDD前提のものとそうでないもの両方ともお話ししようと思います。

会で印象的だったこと

責務!テスト!

責務が明確であるかということと、テストがしやすいコードであるかどうかという2点をとにかく意識して欲しいというお話が出ていました。

これだけ意識しているコードであれば全てOKという訳ではないものの、このポイントが守られていないコードは、レビューを通しては絶対にいけないということです。

レイヤーの責務

責務の中でも、レイターの責務違反をしないように実装することは非常に重要だというお話でした。

レイヤーの責務を守れないと、リファクタリングする際のコストが非常に高くついてしまう(レイヤー内のリファクタリングにかかるコストは比較的低め)ため、レイヤーごとに責務を分けるのが特に重要になってくるということです。

なお、レイヤーの責務を明確にするための考え方としては、オニオンアーキテクチャやクリーンアーキテクチャなどを活用していくというお話でした*1

クラス/メソッドの責務

こちらは、様々なクラスやメソッドで同じようなドメインロジックが散らばっていないかを考えていくのが重要だということでした。
また、名前がクラスやメソッドの責務を表しているのかを考えたり、意図に反した記述をしていないか考えたり、メソッドに関してはシグニチャが責務が明白なものになっているかを意識してレビューをしていくというお話も出ていました。

テスト

責務の話とも関連していますが、テストコードが書きやすいかどうかは、高凝集/低結合のコードになっているかどうかに関わってくるという話がありました。

会全体を通した感想

話されていること自体は、色々な書籍や色々なイベントで言われがちな点でしたが、実際のコードを見ながら解説が入っていたので、非常にわかりやすかったです。

言葉だけではなかなか書籍で言われているようなことがピンとこない場合に、コードで実際に示しながら説明する重要性を実感するイベントでした。

*1:ただし、クリーンアーキテクチャに関しては以前の会で最初のうちは特に推奨しないという話が出ていました