ZEALS TECH BLOG

チャットボットでネットにおもてなし革命を起こす、チャットコマース『Zeals』を開発する株式会社ZEALSのテックブログです。技術やエンジニア文化について情報を発信します。

ZEALSではリーダブルコード読書会を実施しています

f:id:zeals-engineer:20190424155226p:plain

こんにちは!
Railsエンジニアのtakakudaです。

今回はエンジニアチームで取り組んだリーダブルコード読書会についてご紹介します!

目的

  • 理解しやすいコードとは何かを知り[to know what is "readable" code like]
  • 実際にそのようなコードを書けるようになることで[and to learn how to write "readable" code]
  • 今後の開発効率を向上させ、バグや障害の発生を削減する[aiming to improve develepment productivity and reduce software bugs and system troubles]

以上のことを目的として、今回の読書会を実施しました。

実はこのリーダブルコードの読書会は3回目で、最初は「またやるの?」という気持ちでしたが、新しい発見がたくさんありました。

やはり『リーダブルコードは』何度読んでも良い名著ですね…。
自分のコードの質が上がったのではないかと感じています!

内容

読書会ですが、以下のような流れで進めました。

1. 座学

リーダブルコードを3章区切りで読みます。
読んだことがある人は、再度読み直します。

2. プルリク作成

リーダブルコードを参考に、改善できそうなコードを見つけてプルリクを作成します。

その際にセルフレビューのコメントで、

  • リーダブルコードのどの章を参考にしたか
  • 質問(ex..このように改善したが、もっと良い書き方はあるか?)
    を追記していきます。

3. ピアレビュー

自分以外の参加者のプルリクを、1人2つ以上レビューします。

レビューの際は

  • 良いと思った点
  • こうしたほうが良いと思った点
  • 質問
    をコメントとして追記します。

4. 議論・講評

  • 1 ~ 3が終わったら全員で顔を合わせるタイミングを作り、議論をします

f:id:zeals-engineer:20190419202758j:plain

講評

  • コードオーナーが全体を通して気づいたことを話す

質問

  • 直接プルリクに記載はなかったが、聞きたいことを質問する

議論

リーダブルコードに書いてある内容で、プロダクトコードに合わせて読み替えたほうが良い点などを話し合う

結果

この読書会は任意参加なのですが、ほぼ全員のメンバーが参加し、プルリクを送りあってくれています。

この取り組みはCTO自らが中心となり推し進めており、ZEALSでは3回目の実施となります。
初回から参加していたメンバーが、教えてもらっていた立場から教える立場へと変わっていく...、という良いサイクルが回っていて、とても良い文化だなと感じています。

ちなみに

実際に参加したメンバーからも良い反応をもらいました!

  • 強制的にアウトプットする場を用意することで、リーダブルコードの内容を忘れてしまうことを回避できる
  • 実際に普段触っているコードのbefore -> afterを見ることで、リーダブルコードに記載されている内容がより深く理解できる
  • エンジニア同士のコミュニケーションやTIPSを共有する場として機能している
  • 勉強会を開いた後から、PRレビューが活発になった
  • 普段のPRで議論にならない細かい点についても議論できた
  • アウトプットされたコードを見ることは多いが、その裏に隠れている、意図や良い習慣を垣間見れるのがとても良い
  • 自分が普段メインで使っている言語以外のプルリクに対しても、非常に活発に議論が起きていた
  • 普段だとあまり深く突っ込まないコードに対しても、メンバー全員で議論できていたので、改めて自分のコードを見直す良い機会になった

どの項目も、チーム開発においてとても大事なことですよね!
ちなみに、この読書会、この記事を書いている現時点でもまだ継続中です!

ZEALSのエンジニアチームは、きれいなコードをチームで書いていくために、これからも工夫して努力していきます!
今後も引き続き、よろしくお願いいたします。