学び方を学ぶ 〜オブジェクト指向の設計と実装を学ぶ〜に参加しました

学び方を学ぶ 〜オブジェクト指向の設計と実装を学ぶ〜 - DevLOVE | Doorkeeper
2012/09/12 学び方を学ぶ ~オブジェクト指向の設計と実装を学ぶ~ #devlove - Togetterまとめ

深夜に募集開始されたときに、たまたま TL 見ていて開催を知って即申し込んだ勉強会。
朝には埋まってしまったほどの大人気で、私もとても楽しみにしていました。

どんな職業でも学ばなければならないことはたくさんありますが、時間のない中で、効率よく楽しく学ぶ方法や、チーム内での暗黙知を伝える (これも学びの一種だという認識です) ためのヒントがないかという期待をもって臨みました。

結論から言うと、今の私にとって参加してよかった!と思える内容でした。

学習パターンをエンジニアの学びに適用するためには

井庭 崇 ( @takashiiba ) さんと増田 亨 ( @masuda220 ) さんによる対談。

  • 自分の学びをデザインする
    • 人それぞれ学び方は違う
    • でもパターンはある
      • パターンはフォームであって、シェイプではない
      • コツであってマニュアルじゃない
      • コツ = 骨 = bone
      • コツとコダワリは似ている
  • 暗黙知を共有する
    • パターンに名前をつけると他人のパターンが認識できる

オブジェクト指向設計と実装の基本スキルの学び方 (学習パターンの実践)

増田 亨 ( @masuda220 ) さんによるセッション。

  • 設計を学ぶ = コードを学ぶ
    • 設計しか出来ない、実装しかできないはダメ
  • 考えてコードを書く
    • コピペ禁止
    • 未来の自分を含む他人に分かるように書く

これらを学ぶための段階

  • 一人前になる
    • 感覚を養う
      • 9 つのルールに違反してると気になるように
    • 言葉を覚える
      • 本などを読む
      • 鳥の眼、虫の眼
    • 現状、あるべき姿を話す
      • 人に話すことで整理される
    • コード書く
      • 昨日のコードと今日のコードを見比べる
  • 突き抜ける
    • バックグラウンド (積み重ね) が必要
    • ドメイン駆動設計を読む

参考書籍

実装パターン

実装パターン

リファクタリング―プログラムの体質改善テクニック (Object Technology Series)

リファクタリング―プログラムの体質改善テクニック (Object Technology Series)

  • 作者: マーチンファウラー,Martin Fowler,児玉公信,平澤章,友野晶夫,梅沢真史
  • 出版社/メーカー: ピアソンエデュケーション
  • 発売日: 2000/05
  • メディア: 単行本
  • 購入: 94人 クリック: 3,091回
  • この商品を含むブログ (312件) を見る
ThoughtWorksアンソロジー ―アジャイルとオブジェクト指向によるソフトウェアイノベーション

ThoughtWorksアンソロジー ―アジャイルとオブジェクト指向によるソフトウェアイノベーション

オブジェクトデザイン (Object Oriented SELECTION)

オブジェクトデザイン (Object Oriented SELECTION)

エリック・エヴァンスのドメイン駆動設計 (IT Architects’Archive ソフトウェア開発の実践)

エリック・エヴァンスのドメイン駆動設計 (IT Architects’Archive ソフトウェア開発の実践)

感想

建築デザインにパターンがあるように、学びにもパターンがあります。
頂いた冊子に載っているパターンを見ると、あるあると納得するものが多いです。
もちろん、こんなやり方もあるんだ!という発見もあります。
これまでやったことのない学習パターンについても、積極的に取り入れて、自分にあったパターンを見つけようと思います。

そういえば、鳥の眼、虫の眼の話は、最近読んだ「リファクタリングウェットウェア」の SQ3R に似てますね。
これもパターンの一つと言えるかも。

オブジェクト指向設計と実装については、まだまだ勉強中という状況です。
9 つのルールについては、最近もスライドが話題になりましたし、数年前にもOOコード養成ギブス - rants というものもありました。

これをやったからといって必ず適切なオブジェクト指向設計、実装になるわけではないと思います。
それっぽくはなるかもしれませんが、それでは「考えて」コードを書いていることにはなりません。

なぜこんなルールがあるのかを一つ一つ考えながら、まずは手を動かしてやってみる、守破離の守としては適切なのではないでしょうか。

最後に、会場提供のKDDIウェブコミュニケーションズさん、井庭さん、増田さん、主催者の皆さん、ありがとうございました!