「デザインパターン」社内勉強会でこそやる”理由”と”すすめ方”

開発チームエンジニアのyasuです。
つい先日、私を筆頭にしてデザインパターンに迷える3人が企画し、
デザインパターン勉強会が社内でスタートしました。
知見のある先輩社員による勉強会ではあなく、
ノーティーチャーによる学習の共有会のような形式となっていますが、
社員、ビジネスパートナーさん含め10人以上というそこそこな規模の勉強会となっています。
それだけ、デザインパターンに興味を持っている人がいたということに驚きました。

そこで、なぜ勉強会でデザインパターンを選択したのかについてと、
どのように進めているのかをまとめていきたいと思います。

デザインパターンとは

デザインパターンとは、GoF(Gang of Four)と呼ばれる4名によって書かれた書籍で定義されたもので、
Javaを始めとしたオブジェクト指向言語における全23種類の設計パターンのことを言います。
設計パターンなので、具体的なコードや技術ではなく、またフレームワークでもありません。
1995年に出版された書籍で古いものではありますが、当時の達人が考えた設計思想を一般のエンジニアが学ぶことで、
誰もが生産性を向上させることができるのです。

デザインパターンを学習する理由

現在では、オブジェクト指向言語を扱うエンジニアにとって広く一般的な存在となっているデザインパターンですが、
なかには学ぶ必要性に対して疑問を持つ人も大変増えてきました。

社内勉強会でわざわざデザインパターンを学ぶメリットとは何なのでしょうか
「デザインパターン」の学習を社内勉強会でやる理由とすすめ方

1.ライブラリやAPIを把握できる!

デザインパターンを学習すること、イコール私達学習者が設計に組み込むものと考えがちですが、
実はもう既にライブラリに組み込まれていて、私達が開発をする必要はないことが往々にしてあります。
例えば、JavaScriptとHTMLのデータを双方向にバインディングすることができるknockoutjsというライブラリは、
Obserberパターンによって実装されています。
また、Javaを扱う人であれば誰もが使ったことのあるBufferdReaderクラスはデコレーターパターンです。
これらのライブラリやクラスを扱う際に、デザインパターンを知っていれば、使い方の説明を読まなくても
ある程度把握できますし、ライブラリの学習コストを下げることができます。
内部設計がある程度見えていれば、機能の拡張も可能になります。
デザインパターンによる共通認識は使う側にとっても非常にメリットのあるものです。

2.車輪の再発明をしない

デザインパターンは、達人にしか思いつかないものではなく、全てのエンジニアがやがて辿り着く設計思想です。
一生懸命考えて設計をしたものは、もう既にパターンとして定義されている可能性は高いのです。
また、それは既存のライブラリや、言語に組み込まれている可能性もあるということでもあります。
長い時間考えたコードや設計がもうすでにデザインパターンにあったとしたら、
時間と労力のムダになってしまいます。

「デザインパターンはわざわざ学習するものではない。誰でも思いつく。」と言う意見がありますが、
誰でもが思いつけるものを再発明することは避けましょう。

3.共通のボキャブラリーとなる

実装やフレームワークの具体的なこととは違って、設計の方針や思想は共有が困難です。
「ここの仕組みは他の人も使うから、これこれこうしてこういう風にしてくれない?」と伝えるよりかは、
「この部分はファクトリークラスを用意してもらっていいかな?」と伝えるほうが容易ですし正確です。
社内でデザインパターンを学習することで、社内における共通ボキャブラリーが増えるので、
無駄な説明の手間や設計思想の共有のコストを省くことができます。
また同じプロジェクトのメンバーから突然デザインパターンをベースにした話をされたときに、
あとでオタオタせずにすむという消極的なメリットもあります(笑)

他にもデザインパターン自体のメリットは多くありますが、
今回の社内勉強会として取り上げるに至ったメリットは以上3点です。

社内勉強会でのすすめかた

さて、それでは実際に社内での勉強会はどのように進めているのでしょうか。
「デザインパターン」の学習を社内勉強会でやる理由とすすめ方

HeadFirstデザインパターン

デザインパターンを学習したことのない3人が企画して始めた勉強会ということもあって、
誰かが教師として勉強会を開くという形にはすることができませんでした。
今回は教科書としてオライリー社様の「HeadFirstデザインパターン」を使って学習を進めています。
この本はイラストを多用し、各デザインパターンを物語調で学ぶことができます。
ただただクラス図や重要ポイントをまとめただけのものでは、なかなか理解は深まりませんが、
この本では「問題・課題」があって、それに対する解決への道のりを追体験することができるので大変わかりやすくおすすめです。
「デザインパターン」の学習を社内勉強会でやる理由とすすめ方

週に1回1章1パターン

本勉強会は週に1回木曜日に社内カフェにて実施されています。
本の1章は1パターンに該当しますが、これを1時間で扱います。
もちろん1時間で全てを共有するわけにはいかなないので、各自がその日の章を読んできている前提で進めます。
個人で勉強をしようと思うと、分厚い本ですし、読破する前に飽きてしまいがちですが、
週ごとに1章と設定することで継続的に学習する習慣づけとすることができます。

勉強会形式

勉強会自体は、一人の発表者がまとめてきたスライドをベースに進めています。
まずこのスライドでパターンの概要とポイントを全員で復習します。
その後、全員で疑問点や認識を合わせるトークの時間を設けるという大変シンプルなものです。
シンプルではありますが、このデザインパターンは一人で勉強していると何かと疑問点が出てくるもので、
話し合いだけでも1時間はあっという間に過ぎてしまいます。
「このパターンの使い所って結局どこなの?」「こういうところで使おうと思っているけどどうだろう?」
「このパターンって、詰まるところ単にこういうことだよね?」
などなど多くの意見が出てきます。
一人で勉強するよりも理解が深まり、また疑問点も解決することができるので非常に効果的であると言えそうです。

さいごに

以上いかがだったでしょうか。
まだデザインパターン勉強会は始まったばかりではありますが、
以前一人で読んだときよりも遥かに理解が深まっていることを感じています。
教師のいない勉強会で、互いの読み合わせ、学習の共有という体裁の勉強会ではありますが、
現状では、非常に効果のある勉強会となっていると言えます。
今後の勉強会の1つのパターンとなりそうです。

弊社社内では社員が積極的に勉強会を開催しています。
エンジニアとしてメンバーと切磋琢磨したい方、また一緒に働いてみたい方はぜひ採用ページへ!

最近の記事

  • 関連記事
  • おすすめ記事
  • 特集記事

アーカイブ

カテゴリー

PAGE TOP