気がつくと手続型でプログラミングしている、ということはないだろうか。
オブジェクト指向を志向しながら、実は手続型の発想から抜け出せていない、ということは珍しいことではない。
手続型プログラミングの泥沼から抜け出すために、オブジェクト指向の発想を理屈ではなく、
体で覚えるための実践的な練習方法を紹介する。
<エクササイズ3つのステップ>
(1)準備運動 (2)基礎トレーニング (3)実戦的な応用テクニック
今回のエクササイズの中心となる、基礎トレーニングでは、題材として「オブジェクト指向エクササイズ」の
9つのルールを取り上げる。
9つのルールの意味、ルールを実践する効果、実践のテクニックを具体例で解説する。
具体的には、ルールの実践のテクニックとして
・Martin Fowler「リファクタリング」
・Kent Beck「実装パターン」
・Joshua J. Bloch「Effective Java」
から有用なパターンを抜粋して取り上げる。
<このエクササイズで得られること>
・「手続き的」な設計と「オブジェクト指向的」な設計との考え方の違いを実感できる。
・より「役に立つ」オブジェクトを設計・実装する基本テクニックを習得できる。
・オブジェクトの実践的な設計スキルを磨くための指針が手に入いる。
<想定する参加者>
・3年目以降の開発者の方。
・現場仕事を通じて実装経験を積んできたが、次のステップとして設計力を磨く方法や機会に悩んでいる。
・学びやスキルを自分の手で獲得しようという意欲のある方。
<参考書籍>
ThoughtWorksアンソロジー
リファクタリング
実装パターン
Effective Java
<アジェンダ>
14:15 - 14:30 受付
14:30 - 16:00 コードで覚える、オブジェクト設計。
[形式] レクチャー
[講師] 増田亨氏
有限会社システム設計 代表取締役。
業務アプリケーション開発プロジェクトの陣頭指揮をしながら「ドメイン駆動設計」の実践に
日々取り組んでいる。自らのスキルアップのためにも「ドメイン駆動設計の実践」や
「オブジェクトの設計スキル」をテーマに講演やブログ執筆を行っている。
2012年6月ソフトウェア技術者の創造的な学習の場の創出を目的にクリエイティブラーニングLLCを設立。
[これまでの発表]
「オブジェクト指向の設計と実装の学び方のコツ」
「小さなオブジェクトでドメインモデルを組み立てる」
「ドメイン駆動設計という仕事の流儀」
16:10 - 17:10 ディスカッションで深める、オブジェクト設計。
今回のレクチャーを踏まえて、講師・参加者でディスカッションを行います。
学んだことを腹に落とすための時間です。気になるところ、分からないところ、
もっと知識を深めたいところについて、議論しましょう。
[形式] ディスカッション
< Learning Community Factoryについて>
ソフトウェア開発者にとって、現場の仕事ベースのみで、様々なスキルを身に着けていくには、あまりにもその機会が限定的、偶発的であると言わざるを得ません。より良いソフトウェア作りが現場で増えるよう、現場での実践を想定した、学びの機会と場の創出をその目的としています。
「Learning Community Factory」は、井庭研究室が発見した「学習パターン」の「学びの共同体をつくる」から、実践的、創発的な学びの場を作り出していく思いを込めて、命名しました。
ソフトウェア開発者の学び方をリデザインするために、このコミュニティでは学習パターンを応用、適用します。
<次回以降の予定>
今回の企画は、3部構成となっており、第1部にあたります。以降、第2部第3部を予定しています。
第1部は、ドメイン駆動設計の前提であるオブジェクト指向の設計と実装を、基本に戻って学び直す講座です。
第2部は、ドメイン駆動設計の各パターンの基礎になっている「責任駆動設計(RDD)」の考え方を、ラーマンの GRASP パターンを中心に、具体例で学ぶ講座です。
第3部は、要件定義や要件分析の活動と、ソフトウェア特にドメイン層の設計・実装の活動を、直接結びつける実践的でアジャイルなやり方を紹介します。
<主催>
Learning Community Factory
<開催支援>
クリエイティブ・ラーニング LLC
DevLOVE
このコミュニティは、ソフトウェア開発に必要な技術、知識を実践的な方法で 学び、メンバー同士のコミュニケーションによって、創発的に学びを 深めることを目的としています。 井庭研究室が発見した「学習パターン」をベースに、ソフトウェア開発者の 学び方をリデザインするために、このコミュニティを始めました。 学習パターン http://learningpatterns.sfc.keio.ac.jp...
メンバーになる