Text
Page: 1
進め方
須藤功平
株式会社クリアコード
SEゼミ2014 - リーダブルコード勉強会2
2014/07/06
進め方
Powered by Rabbit 2.1.3
Page: 2
今日の流れ - 午前
✓ 10:00- 進め方の説明
✓ 11:00- 実装
✓ 12:00- スポンサー紹介
✓ 12:30- ランチ
進め方
Powered by Rabbit 2.1.3
Page: 3
今日の流れ - 昼下がり
✓ 13:30- コード解説
✓ 13:50- チェンジして実装
✓ 15:30- グループふりかえり
✓ 16:00- グループ発表
進め方
Powered by Rabbit 2.1.3
Page: 4
今日の流れ - 夕方
✓ 17:30- まとめ
✓ 17:35- 質疑応答
✓ 17:50- アンケート記入
✓ 18:00- 撤収&移動
✓ 18:10- 懇親会
進め方
Powered by Rabbit 2.1.3
Page: 5
メンター紹介
✓ 参加者のサポート係
✓ 現役超優秀エンジニア
✓ 参加者がわからない
✓ →聞くと助けてくれる
✓ →モジモジしてると声をかけてくる
進め方
Powered by Rabbit 2.1.3
Page: 6
メンター紹介1
川原さん(@ooharabuchou)
✓ 楽天社員
✓ 楽天ウェブサービスの開発
✓ OpenPNEの開発
進め方
Powered by Rabbit 2.1.3
Page: 7
メンター紹介2
たなべさん(sunaot)
✓ DeNA社員
✓ 「るびま」の編集者
(Rubyist Magazine)
✓ 最新るびま:リリースアナウンス
進め方
Powered by Rabbit 2.1.3
Page: 8
メンター紹介3
結城さん(Piro)
✓ クリアコード社員
✓ 開発Firefoxアドオン数世界一
✓ ツリー型タブ
(Tree Style Tab)
進め方
Powered by Rabbit 2.1.3
Page: 9
メンター紹介4
沖元さん(okkez)
✓ クリアコード社員
✓ 「るりま」のリーダー
(Rubyリファレンスマニュアル刷新計画)
(≒ Rubyの日本語ドキュメント改善プロジェクト)
✓ CRubyのコミッターの1人
進め方
Powered by Rabbit 2.1.3
Page: 10
トレーナー紹介
須藤
✓ クリアコード代表取締役
✓ 進行と全体を気にかける係
✓ リーダブルコード(本)の
「解説」の著者
✓ RubyKaigi 2014で話すよ
進め方
Powered by Rabbit 2.1.3
Page: 11
勉強会の目的
参加者の
リーダブルコード力の
レベルアップ
進め方
Powered by Rabbit 2.1.3
Page: 12
実現方法
✓ やること
✓ コードを書いて読んでまた書く
✓ やらないこと
✓ リーダブルコードを書くための
テクニックをたくさん伝授
進め方
Powered by Rabbit 2.1.3
Page: 13
やらないこと
リーダブルコードを書くための
テクニックをたくさん伝授
進め方
Powered by Rabbit 2.1.3
Page: 14
テクニック伝授は範囲外
リーダブルコード力
目指さない
今日の増加分の
最大化
今日
進め方
時間
Powered by Rabbit 2.1.3
Page: 15
やること
コードを
書いて読んで
また書く
進め方
Powered by Rabbit 2.1.3
Page: 16
「書き読み書き」の狙い
リーダブルコード力
狙い
傾きを大きく
今日
進め方
時間
Powered by Rabbit 2.1.3
Page: 17
将来を重視
リーダブルコード力
今日
進め方
将来を重視
半年後
時間
Powered by Rabbit 2.1.3
Page: 18
どうして将来を重視?
高速道路と大渋滞
(将棋の羽生さんの話)
http://japan.cnet.com/blog/umeda/2004/12/06/
entry_post_203/
進め方
Powered by Rabbit 2.1.3
Page: 19
高速道路と大渋滞
✓ インターネットの普及
✓ 情報量大・いつでも対局できる
✓ 将棋が強くなるための高速道路
✓ 高速道路の先は大渋滞
✓ 高速道路に終わりがある
✓ 次の世代も高速道路を走ってくる
✓ 終わった場所から抜け出せない
進め方
Powered by Rabbit 2.1.3
Page: 20
高速道路と大渋滞:イメージ
棋力
高速道路
超絶高速
超高速
高速
大渋滞
世代1 世代2 世代3
進め方
世代
Powered by Rabbit 2.1.3
Page: 21
当てはめると
高速道路 = テクニック集
✓ 高速道路を走る
✓ 先人が整理したテクニック集を学ぶ
✓ 大渋滞
✓ 未整理のテクニックを活かせない
進め方
Powered by Rabbit 2.1.3
Page: 22
ここまでのまとめ
✓ タイムテーブル説明
✓ メンバー紹介
✓ 勉強会で目指すことを共有
✓ 目的: リーダブルコード力アップ
✓ ポイント: 今ではなく将来を意識
進め方
Powered by Rabbit 2.1.3
Page: 23
将来を見据える
テクニックを
自ら開発できる
進め方
Powered by Rabbit 2.1.3
Page: 24
テクニックの開発方法
1. 既存のテクニックの習得
✓ 本から学ぶ
✓ 野生のコードを読む→
リーダブルコードを発見→
吸収
2. 新規にテクニックを発明
✓ リーダブルでないコードを発見→
改善案を発明
進め方
Powered by Rabbit 2.1.3
Page: 25
本から学ぶ
1. 既存のテクニックの習得
✓ 本から学ぶ ←各自やって
✓ 野生のコードを読む→
リーダブルコードを発見→
吸収
2. 新規にテクニックを発明
✓ リーダブルでないコードを発見→
改善案を発明
進め方
Powered by Rabbit 2.1.3
Page: 26
野生のコードから発見
1. 既存のテクニックの習得
✓ 本から学ぶ
✓ 野生のコードを読む→
リーダブルコードを発見→
吸収 ↑今日のターゲット
2. 新規にテクニックを発明
✓ リーダブルでないコードを発見→
改善案を発明
進め方
Powered by Rabbit 2.1.3
Page: 27
改善案を発明
1. 既存のテクニックの習得
✓ 本から学ぶ
✓ 野生のコードを読む→
リーダブルコードを発見→
吸収
2. 新規にテクニックを発明
✓ リーダブルでないコードを発見→
改善案を発明 ←別の機会で
進め方
Powered by Rabbit 2.1.3
Page: 28
リーダブルコードの発見
✓ 本の内容→世界の一部
✓ 世界
✓ 野生のリーダブルコードがたくさん
✓ リーダブルコードがある場所
✓ OSSのコード
✓ 大学・会社の仲間のコード
進め方
Powered by Rabbit 2.1.3
Page: 29
発見方法
書いて読んで
書いて読んで
書いて読んで
進め方
Powered by Rabbit 2.1.3
Page: 30
理由
✓ 読まないとコードのサンプルが0
✓ サンプルがないと見つけられない
✓ 書かないと身につかない
✓ 知識だけで終わらせない
✓ 自分のスキルにする
進め方
Powered by Rabbit 2.1.3
Page: 31
今日やること
1. 書いて
2. 読んで
3. 書いて
進め方
Powered by Rabbit 2.1.3
Page: 32
書いて読んで書いて
✓ 11:00- 課題を開発
✓ 書く
✓ 13:50 実装をチェンジ
✓ 13:50- 他の人の実装で開発継続
✓ 読む・書く
✓ 読まないと変更できない
進め方
Powered by Rabbit 2.1.3
Page: 33
1: 初期状態
1. 書いて←自己流で本気をだす
2. 読んで
3. 書いて
進め方
Powered by Rabbit 2.1.3
Page: 34
2: 吸収
1. 書いて←自己流で本気をだす
2. 読んで←他のコードから吸収
3. 書いて
進め方
Powered by Rabbit 2.1.3
Page: 35
3: レベルアップ
1. 書いて←自己流で本気をだす
2. 読んで←他のコードから吸収
3. 書いて←↑を活用して成長
進め方
Powered by Rabbit 2.1.3
Page: 36
明日からは自分たちで
リーダブルコード力
読み
書き
習慣にして
継続的に
レベルアップ
今日
進め方
時間
Powered by Rabbit 2.1.3
Page: 37
ここまでのまとめ
✓ リーダブルコードの
発見方法を紹介
✓ 書いて読んで書いて…
✓ 今日やることの説明
✓ 書いて読んで書いて
✓ 1ターンだけ
✓ 2ターン目以降は各自がんばって!
進め方
Powered by Rabbit 2.1.3
Page: 38
書いた後にやること
✓ 15:30- グループふりかえり
✓ 各自:リーダブルコードを発見済
✓ 各自からグループに共有
✓ 16:00- グループ発表
✓ グループ:リーダブルコードを発見済
✓ グループから全体に共有
進め方
Powered by Rabbit 2.1.3
Page: 39
最後
✓ 17:30- まとめ
✓ 成功だった?(発見できた?)
✓ 17:35- 質疑応答
✓ 18:10- 懇親会
✓ 積極的に情報交換してね
✓ 参加者同士
✓ メンターの人に質問←参考になるはず
進め方
Powered by Rabbit 2.1.3
Page: 41
目的
参加者の
リーダブルコード力の
レベルアップ
進め方
Powered by Rabbit 2.1.3
Page: 42
ポイント
今よりも将来
進め方
Powered by Rabbit 2.1.3
Page: 43
やること
テクニックを
開発する方法を
体験
進め方
Powered by Rabbit 2.1.3
Page: 44
具体的なやること
コードを読んで
リーダブルコードを発見
進め方
Powered by Rabbit 2.1.3
Page: 45
目標
コードを読んで
リーダブルコードを発見
↑が習慣になる
進め方
Powered by Rabbit 2.1.3
Page: 46
目標達成の判断基準例
1. 今後はOSSのコードを毎日読む
2. 面接時に↓を質問
✓ コードを見せてください
✓ チーム内で
コードを読みあっている?
進め方
Powered by Rabbit 2.1.3
Page: 47
忘れないで
プログラミングが好きなことは
とても大切にして欲しいこと
誰かのコードから
リーダブルコードを見つける事は
辛い事でなく楽しい事になるはず
進め方
Powered by Rabbit 2.1.3