4月新卒入社の會澤です。
最近は、寒すぎて睡眠時間がどんどん増えている気がします
7月下旬から11月の中旬までデザインパターンの勉強会を開催していました。
約4か月で全23パターン(20番目の最初の素数で覚えやすい)を走り切りました!
勉強会は基本的に毎週行う形式でしたが、予定があれば次週に回したり、臨機応変に進めていました。
課題図書としては、先輩社員の勧めでHead Firstデザインパターン 第2版を選びました。結構分量あるものです(600ページ以上あって重い)
簡潔に学べた点・良かった点、反省点をまとめたいと思います。
学べた点・良かった点
・to teach is to learnの精神で発表しながら学べた
・オブジェクト指向の基本的な考え方を学べた
・23パターン一通り周り切ったという自信がついた
1点目につきまして、発表しながら学べたのは良かったかなと思っています。私は、結構本を流しながら読んでしまいがちなので、強制的に発表しなければ進めないようにしたことで、内容が反芻され、より学びが深くなった気がします。また、先輩エンジニアの方々と色々議論できたことも深い学びになりました!内容からかなり脱線することもありましたが笑
2点目につきまして、Javaのような昔からある言語でオブジェクト指向の本筋の実装を学べたのは勉強になりました。"継承より委譲"とかは有名なフレーズですが、具体例を見ながら学ぶことによりそのようなフレーズをちょっとだけ理解することができたのかなと思いました(23パターンもあれば嫌でも体に染み込む)。
3点目が、個人的には一番良かったですね。デザインパターンが役に立つか立たないかは置いておいて、一通り体系的に学べたのは自信になりました!
日常会話でstrategyパターンとかfacadeパターン何それ?とならないのは一番メリットなのかなと思います。
反省点
・Javaすぎた
・特に銀の弾丸でもない
・私が発表しまくってしまった
1点目につきましては、弊社はバックエンドは基本的にRubyで書いているので、Javaだと違和感がある設計がありました。Rubyでインターフェースとか基本使わないですし、デザインパターンの技法を直接的に真似ることはできないので、注意が必要だなと感じました。
2点目につきましては、今ではよく使われないパターンやライブラリの内部で実装されているようなパターンが結構あって(flyweightやIteratorとか)、応用しづらいため、あまり銀の弾丸ではなかったかなと。
ただ、decorator, strategy, factoryなどは今でも知らないといけないパターンだとは思います。
3つ目は、輪読会のつもりでしたが、ほぼ私がスライドをまとめてしまったので、あまり輪読感がなく、離脱率が多くなってしまったことですね。もう少し実践形式にした方が良かったのかもしれないです。
最後に
準備が面倒な時もあるけど、なんだかんだ勉強会やるとワイワイして楽しい!