Text
Page: 1
概要
須藤功平
株式会社クリアコード
実践リーダブルコード
2015-03-06
概要
Powered by Rabbit 2.1.7
Page: 2
今日の流れ - 午前
✓ 10:00- アイスブレーク
✓ 10:15- 概要と進め方の説明
✓ 10:45- 実装
✓ 12:15- ランチ
概要
Powered by Rabbit 2.1.7
Page: 3
今日の流れ - 昼下がり
✓ 13:15- 読み方のデモ
✓ 13:30- チェンジして実装
✓ 15:00- グループふりかえり
✓ 15:30- グループ発表
概要
Powered by Rabbit 2.1.7
Page: 4
今日の流れ - 夕方
✓ 16:00- まとめ
✓ 次のステップを説明
✓ 16:30- 質疑応答
✓ 17:30- コードの感想戦
✓ 時間があれば
✓ 18:00- (有志で懇親会?)
概要
Powered by Rabbit 2.1.7
Page: 5
チューター紹介
✓ 参加者のサポート係
✓ 現役エンジニア
✓ 参加者がわからない
✓ →聞くと助けてくれる
✓ →モジモジしてると声をかけてくる
概要
Powered by Rabbit 2.1.7
Page: 6
チューター紹介
✓ 結城洋志(ゆうき ひろし)
✓ 得意言語: JavaScript
✓ 沖元謙治(おきもと けんじ)
✓ 得意言語: Ruby
✓ 横山昌史(よこやま まさふみ)
✓ 得意言語: Ruby
概要
Powered by Rabbit 2.1.7
Page: 7
講師紹介
須藤功平(すとう こうへい)
✓ クリアコード代表取締役
✓ リーダブルコード(本)の
「解説」の著者
✓ 進行と全体を気にかける係
概要
Powered by Rabbit 2.1.7
Page: 8
講座の目的
✓ 自分の開発チームに
✓ リーダブルなコードが
当たり前な文化の作り方を
✓ 持ち帰る
→ 「解説」に書いていることの実践方法を学ぶ
概要
Powered by Rabbit 2.1.7
Page: 9
サポート
✓ 今日の資料はすべて再利用可能
✓ チーム内で同じ講座を再現できる
✓ 無料のフォローアップ面談
✓ チームで実践→悩み
↑の相談に乗る
✓ 受講後3ヶ月以内に1回
概要
Powered by Rabbit 2.1.7
Page: 10
そもそもの話
✓ リーダブルコードはなぜ必要か
↓を目指すために
チームでの共有は必須
リーダブルなコードが
当たり前な文化
概要
Powered by Rabbit 2.1.7
Page: 11
リーダブルコードの必要性
(1)
作って終わり
じゃないから
概要
Powered by Rabbit 2.1.7
Page: 12
ソフトウェアの生涯
✓ 昔
✓ 作って終わり
✓ 作ったらできるだけ触らない
✓ 今
✓ 機能は少なくてもまず動くものを
✓ 動いてからも継続的に改良・修正
概要
Powered by Rabbit 2.1.7
Page: 13
ソフトウェアの生涯
昔
機能
なるべく
触らない
今
機能
継続的に
改良・修正
時間
利用開始
時間
利用開始
注:同じものができていそうな図だが、できあがるものは違う。
←は利用開始前に想定していたものができる。
→は利用したフィードバックを反映したものができる。
概要
Powered by Rabbit 2.1.7
Page: 14
継続的に改良・修正
✓ 既存の機能の改良
a. 既存機能の理解→
b. 改良
✓ 既存の機能の修正
a. 既存機能の理解→
b. 修正
概要
Powered by Rabbit 2.1.7
Page: 15
既存機能の理解のため
リーダブル
コード
概要
Powered by Rabbit 2.1.7
Page: 16
時間が経つほど効果がでる
開発
速度
リーダブルな場合
開発速度が落ちにくい
リーダブルじゃない場合
開発速度が落ちやすい
時間
概要
Powered by Rabbit 2.1.7
Page: 17
リーダブルコードの必要性
(2)
1人だけの開発
じゃないから
概要
Powered by Rabbit 2.1.7
Page: 18
チームでの開発
✓ 昔
✓ 1つのモジュールに1人の担当者
✓ →1人しか触れないモジュール
✓ →チームとして改良・修正できない
✓ 今
✓ 1つのモジュールに複数担当者
✓ →複数人が触れるモジュール
✓ →チームとして改良・修正できる
概要
Powered by Rabbit 2.1.7
Page: 19
複数人が触れる
触れる
↓
既存機能を
理解できる
概要
Powered by Rabbit 2.1.7
Page: 20
既存機能の理解のため
リーダブル
コード
概要
Powered by Rabbit 2.1.7
Page: 21
リーダブルコードの必要性
✓ 継続的に改良・修正したい
✓ チームとして改良・修正したい
↑をチームで共有することが
最初にやること
概要
Powered by Rabbit 2.1.7
Page: 22
必要性を共有した後
コードを読む
文化を作る
概要
Powered by Rabbit 2.1.7
Page: 23
読む?書くじゃないの?
✓ リーダブルコードを書くには
コードを読まないといけない
✓ なぜ?
✓ →リーダブルコードは
チーム毎に違うから
概要
Powered by Rabbit 2.1.7
Page: 24
リーダブルコード
「読む人」が
読みやすいなら
リーダブル
概要
Powered by Rabbit 2.1.7
Page: 25
読む人
✓ 多くの場合、いない
✓ チームのコードを読んでいますか?
✓ 読む人(チームメンバー)毎に
リーダブルの基準は違う
✓ 背景が違うので当たり前
(背景:使ってきた言語とか)
概要
Powered by Rabbit 2.1.7
Page: 26
チームでのリーダブル
✓ 1つずつ見つけていくしかない
✓ 各メンバーの読んだ感覚を
チームで共有
✓ 既存の基準をベースにするのはアリ
(基準:本の内容やコーディングスタイルなど)
チームでのリーダブルコードは
育てていくもの
概要
Powered by Rabbit 2.1.7
Page: 27
リーダブルの基準の育て方
✓ コードを読む文化を作る
(最初の難関)
✓ チームのコードの中から
リーダブルなコードを見つける
✓ リーダブルなコードを
チームで共有
✓ ↑の繰り返しで基準を増やす
概要
Powered by Rabbit 2.1.7
Page: 28
コードを読む文化を作る
✓ まず自分が読み始める
✓ 仲間がいると心強い
✓ リーダブルなコードを探す
✓ 読みにくいコードは今は置いておく
(チームにコードを読む文化ができてから!)
✓ 見つけたリーダブルなコードは…
概要
Powered by Rabbit 2.1.7
Page: 29
リーダブルなコードは…
✓ 他のメンバーに教える
(例:話しかける。チャットに書く。Wikiにまとめる。)
✓ 「○○さんの△△という書き方、
リーダブルでしたよー」
↓
読みやすさの基準を共有
コードが読まれているという自覚
概要
Powered by Rabbit 2.1.7
Page: 30
読むことを「当たり前」に
✓ 「あいつはコードを読むやつ」
という認識を広める
✓ 自分だけからチームへ
…続きはセミナーの最後に
概要
Powered by Rabbit 2.1.7
Page: 31
ワークショップ内容
改良するために
他の人のコードを読む
✓ 「まず自分が読み始める」
✓ 「リーダブルコードを探す」
(読みにくいコードは今は置いておく)
✓ 「リーダブルの基準を共有」
概要
Powered by Rabbit 2.1.7
Page: 32
注意:やらないこと
リーダブルコードを書くための
テクニックをたくさん伝授
概要
Powered by Rabbit 2.1.7
Page: 33
テクニック伝授は範囲外
✓ 順番が違う
✓ まず読む文化を作ること
✓ 今日は↑がメイン
✓ テクニックはその後
✓ 時間があれば「コードの感想戦」でフォロー
概要
Powered by Rabbit 2.1.7
Page: 34
やること
読む文化作りの
体験
概要
Powered by Rabbit 2.1.7
Page: 35
読む文化作り
✓ まず自分が読み始める
✓ リーダブルコードを探す
✓ 他のメンバーに教える
概要
Powered by Rabbit 2.1.7
Page: 36
読む文化作りの体験
✓ 10:45- 課題を実装
✓ リーダブルコードを書く
✓ 13:30- 実装チェンジ→開発継続
✓ 「まず自分が読み始める」
✓ 「リーダブルコードを探す」
✓ 15:30- グループ発表
✓ 「他のメンバーに教える」
概要
Powered by Rabbit 2.1.7
Page: 37
おさらい
✓ 講座の目的
✓ リーダブルコードの必要性
✓ 講座でやること
概要
Powered by Rabbit 2.1.7
Page: 38
講座の目的
✓ 自分の開発チームに
✓ リーダブルなコードが
当たり前な文化の作り方を
✓ 持ち帰る
概要
Powered by Rabbit 2.1.7
Page: 39
文化作りの前
✓ リーダブルコードの必要性を
チームで共有
✓ 必須
✓ これを飛ばすと頓挫する
概要
Powered by Rabbit 2.1.7
Page: 40
リーダブルコードの必要性
✓ 継続的に改良・修正したい
✓ チームとして改良・修正したい
↑
既存機能の理解が重要なら必要
概要
Powered by Rabbit 2.1.7
Page: 41
講座でやること
✓ コードを読む文化作りの体験
✓ まず自分が読み始める
✓ リーダブルコードを探す
✓ 他のメンバーに教える
概要
Powered by Rabbit 2.1.7