Rabbit Slide Show

SEゼミ2014 - リーダブルコード勉強会の進め方

2014-06-22

Description

2014年のSEゼミの「プログラミングが好きな学生のためのリーダブルコード勉 強会」の進め方の説明。

Text

Page: 1

進め方
須藤功平
株式会社クリアコード
SEゼミ2014 - リーダブルコード勉強会1
2014/06/22
進め方
Powered by Rabbit 2.1.3

Page: 2

今日の流れ - 午前
✓ 10:00- 進め方の説明
✓ 11:00- 実装
✓ 12:00- ランチ
進め方
Powered by Rabbit 2.1.3

Page: 3

今日の流れ - 昼下がり
✓ 13:00- コード解説
✓ 13:20- チェンジして実装
✓ 15:00- グループふりかえり
✓ 16:10- グループ発表
進め方
Powered by Rabbit 2.1.3

Page: 4

今日の流れ - 夕方
✓ 17:10- まとめ
✓ 17:20- スポンサーセッション
✓ 18:00- 懇親会
進め方
Powered by Rabbit 2.1.3

Page: 5

メンター紹介
✓ 参加者のサポート係
✓ 現役超優秀エンジニア
✓ 参加者がわからない
✓ →聞くと助けてくれる
✓ →モジモジしてると声をかけてくる
進め方
Powered by Rabbit 2.1.3

Page: 6

メンター紹介1
たなべさん
✓ DeNA社員
✓ C系グループ担当
進め方
Powered by Rabbit 2.1.3

Page: 7

メンター紹介2
まきもとさん
✓ クックパッド社員
✓ Javaグループ担当
進め方
Powered by Rabbit 2.1.3

Page: 8

メンター紹介3
結城さん
✓ クリアコード社員
✓ Pythonグループ担当
進め方
Powered by Rabbit 2.1.3

Page: 9

メンター紹介4
沖元さん
✓ クリアコード社員
✓ Rubyグループ担当
進め方
Powered by Rabbit 2.1.3

Page: 10

メンター紹介5
川原さん
✓ 楽天社員
✓ C系とPythonグループ担当 (午前)
✓ JavaとPythonグループ担当 (午後)
進め方
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

やること
コードを
書いて読んで
また書く
進め方
Powered by Rabbit 2.1.3

Page: 19

「書き読み書き」の狙い
リーダブルコード力
狙い
傾きを大きく
今日
進め方
時間
Powered by Rabbit 2.1.3

Page: 20

将来を重視
リーダブルコード力
今日
進め方
将来を重視
半年後
時間
Powered by Rabbit 2.1.3

Page: 21

どうして将来を重視?
✓ 魚のたとえ話
✓ 昔話
✓ 高速道路と大渋滞
✓ 将棋の羽生さんの話
http://japan.cnet.com/blog/umeda/2004/12/06/
entry_post_203/
進め方
Powered by Rabbit 2.1.3

Page: 22

魚のたとえ話
✓ 魚を与える
✓ その日は空腹を満たせる
✓ でも、明日には飢える
✓ 魚の獲り方を教える
✓ 最初はうまくいかないかも
✓ でも、身につければ一生飢えない
進め方
Powered by Rabbit 2.1.3

Page: 23

当てはめると
魚 = テクニック
✓ 魚を与える
✓ テクニックを伝える
✓ 魚の獲り方を教える
✓ テクニックの開発方法を伝える
進め方
Powered by Rabbit 2.1.3

Page: 24

高速道路と大渋滞
✓ インターネットの普及
✓ 情報量大・いつでも対局できる
✓ 将棋が強くなるための高速道路
✓ 高速道路の先は大渋滞
✓ 高速道路に終わりがある
✓ 次の世代も高速道路を走ってくる
✓ 終わった場所から抜け出せない
進め方
Powered by Rabbit 2.1.3

Page: 25

高速道路と大渋滞:イメージ
棋力
高速道路
超絶高速
超高速
高速
大渋滞
世代1 世代2 世代3
進め方
世代
Powered by Rabbit 2.1.3

Page: 26

当てはめると
高速道路 = テクニック集
✓ 高速道路を走る
✓ 先人が整理したテクニック集を学ぶ
✓ 大渋滞
✓ 未整理のテクニックを活かせない
進め方
Powered by Rabbit 2.1.3

Page: 27

ここまでのまとめ
✓ タイムテーブル説明
✓ メンバー紹介
✓ 勉強会で目指すことを共有
✓ 目的: リーダブルコード力アップ
✓ ポイント: 今ではなく将来を意識
進め方
Powered by Rabbit 2.1.3

Page: 28

将来を見据える
テクニックを
自ら開発できる
進め方
Powered by Rabbit 2.1.3

Page: 29

テクニックの開発方法
1. 既存のテクニックの習得
✓ 本から学ぶ
✓ 野生のコードを読む→
リーダブルコードを発見→
吸収
2. 新規にテクニックを発明
✓ リーダブルでないコードを発見→
改善案を発明
進め方
Powered by Rabbit 2.1.3

Page: 30

本から学ぶ
1. 既存のテクニックの習得
✓ 本から学ぶ ←各自やって
✓ 野生のコードを読む→
リーダブルコードを発見→
吸収
2. 新規にテクニックを発明
✓ リーダブルでないコードを発見→
改善案を発明
進め方
Powered by Rabbit 2.1.3

Page: 31

野生のコードから発見
1. 既存のテクニックの習得
✓ 本から学ぶ
✓ 野生のコードを読む→
リーダブルコードを発見→
吸収 ↑今日のターゲット
2. 新規にテクニックを発明
✓ リーダブルでないコードを発見→
改善案を発明
進め方
Powered by Rabbit 2.1.3

Page: 32

改善案を発明
1. 既存のテクニックの習得
✓ 本から学ぶ
✓ 野生のコードを読む→
リーダブルコードを発見→
吸収
2. 新規にテクニックを発明
✓ リーダブルでないコードを発見→
改善案を発明 ←別の機会で
進め方
Powered by Rabbit 2.1.3

Page: 33

リーダブルコードの発見
✓ 本の内容→世界の一部
✓ 世界
✓ 野生のリーダブルコードがたくさん
✓ リーダブルコードがある場所
✓ OSSのコード
✓ 大学・会社の仲間のコード
進め方
Powered by Rabbit 2.1.3

Page: 34

発見方法
書いて読んで
書いて読んで
書いて読んで
進め方
Powered by Rabbit 2.1.3

Page: 35

理由
✓ 読まないとコードのサンプルが0
✓ サンプルがないと見つけられない
✓ 書かないと身につかない
✓ 知識だけで終わらせない
✓ 自分のスキルにする
進め方
Powered by Rabbit 2.1.3

Page: 36

今日やること
1. 書いて
2. 読んで
3. 書いて
進め方
Powered by Rabbit 2.1.3

Page: 37

書いて読んで書いて
✓ 11:00- 課題を開発
✓ 書く
✓ 13:20 実装をチェンジ
✓ 13:20- 他の人の実装で開発継続
✓ 読む・書く
✓ 読まないと変更できない
進め方
Powered by Rabbit 2.1.3

Page: 38

1: 初期状態
1. 書いて←自己流で本気をだす
2. 読んで
3. 書いて
進め方
Powered by Rabbit 2.1.3

Page: 39

2: 吸収
1. 書いて←自己流で本気をだす
2. 読んで←他のコードから吸収
3. 書いて
進め方
Powered by Rabbit 2.1.3

Page: 40

3: レベルアップ
1. 書いて←自己流で本気をだす
2. 読んで←他のコードから吸収
3. 書いて←↑を活用して成長
進め方
Powered by Rabbit 2.1.3

Page: 41

明日からは自分たちで
リーダブルコード力
読み
書き
習慣にして
継続的に
レベルアップ
今日
進め方
時間
Powered by Rabbit 2.1.3

Page: 42

ここまでのまとめ
✓ リーダブルコードの
発見方法を紹介
✓ 書いて読んで書いて…
✓ 今日やることの説明
✓ 書いて読んで書いて
✓ 1ターンだけ
✓ 2ターン目以降は各自がんばって!
進め方
Powered by Rabbit 2.1.3

Page: 43

書いた後にやること
✓ 15:00- グループふりかえり
✓ 各自:リーダブルコードを発見済
✓ 各自からグループに共有
✓ 16:10- グループ発表
✓ グループ:リーダブルコードを発見済
✓ グループから全体に共有
進め方
Powered by Rabbit 2.1.3

Page: 44

最後
✓ 17:10- まとめ
✓ 成功だった?(発見できた?)
✓ 17:20- スポンサーセッション
✓ 18:00- 懇親会
✓ 積極的に情報交換してね
✓ 参加者同士
✓ メンターの人に質問←参考になるはず
進め方
Powered by Rabbit 2.1.3

Page: 45

確認

Page: 46

目的
参加者の
リーダブルコード力の
レベルアップ
進め方
Powered by Rabbit 2.1.3

Page: 47

ポイント
今よりも将来
進め方
Powered by Rabbit 2.1.3

Page: 48

やること
テクニックを
開発する方法を
体験
進め方
Powered by Rabbit 2.1.3

Page: 49

具体的なやること
コードを読んで
リーダブルコードを発見
進め方
Powered by Rabbit 2.1.3

Page: 50

目標
コードを読んで
リーダブルコードを発見
↑が習慣になる
進め方
Powered by Rabbit 2.1.3

Page: 51

目標達成の判断基準例
1. 今後はOSSのコードを毎日読む
2. 面接時に↓を質問
✓ コードを見せてください
✓ チーム内で
コードを読みあっている?
進め方
Powered by Rabbit 2.1.3

Page: 52

忘れないで
プログラミングが好きなことは
とても大切にして欲しいこと
誰かのコードから
リーダブルコードを見つける事は
辛い事でなく楽しい事になるはず
進め方
Powered by Rabbit 2.1.3

Other slides

Mroonga!
2015-10-30