こんにちは! 佐々木寛太です。 今回はリーダブルコードの輪読会最後の15章になります。 リーダブルコードの最終章では、これまでに学習してきた内容を実際のコードに適用してみるという課題が出されていました。 そこで今回は15章で出てくるサンプルをみんなでリファクタリングしてみようということになりました。
どのように進めたのか
今回リーダブルコードで出題されているサンプルコードはC++で書かれていたためTypeScriptに書き換え、そのコードを参加者に共有しながら意見を出し合いリファクタしていくという流れで実施しました。
リファクタリングしたコードはGitHubにアップロードしています。
また、このリポジトリには、「リーダブルコード」で紹介されているコードをTypeScriptに書き換えたものもありますので、興味のある方はぜひご覧ください。 https://github.com/atomic-kanta-sasaki/redable-code-15/blob/main/readable-code-5.ts
リファクタに使用した時間は40分ほどです。
リファクタをしてみて
リーダブルコードで出てきた要点を復習できたり、それぞれの異なる解釈を見ることができたりと、非常に有意義な時間になったと感じています。
最終的なリファクタの結果読みやすいソースコードという点ではいい改善ができたと思いますが、
汎用性を考えた抽象クラスを作成することやアルゴリズムの観点で計算量を考慮した実装というところまでは気が回らなかったため今後の課題ということになりました。
一か月輪読会の運営をやってみて
一か月輪読会の運営を行い良かった点、改善点を挙げてみようと思います。
まず良かった点です。
- 最初に比較的読みやすいとされる入門書に取り組んだこと
- 少ない人数で始めたこと
- 発表した資料をそのままブログに掲載するという方法をとったこと
現在輪読会を行っている目的としては社内の技術レベルの底上げや学習文化の形成を目指して取り組んでいます。
そこでいきなり抽象度の高い難しい書籍を取り扱い途中で挫折してしまったり、大人数で日程調整がうまくいかないということを避けることができました。
また社外の人も閲覧できるブログに載せることで内輪でやるより緊張感をもって資料作成や課題図書の読み込みを行えると思います。 輪読会のような学習習慣を定着させるためには、まずは参加するハードルを下げることが重要だと思います。
今後の課題点としては以下のようなものがあります。
- 様々な年代の人が参加してもらうには
- 課題図書の選定
輪読会を運営していくにあたり、できるだけ様々な年代、様々な職種の人に参加してほしいと思っているのですが、開催頻度であったり書籍の難易度の問題があります。
また今後の書籍の選定ですが可能な限り一人で読むにはハードルが高い書籍を選べるようメンバーと相談していこうと思います。
今後は書籍のレベルを徐々に上げつつ社内でこのような学習を定期的に行うチームを増やせるよう施策を行っていこうと思います。
次回の課題図書はOAuth、OAuth認証、OpenID Connectの違いを整理して理解できる本です!
こちらも輪読会の発表資料はブログに挙げていきますので、よろしくお願いいたします。