Text
Page: 1
リーダブルコードを
読んだ後
須藤功平
株式会社クリアコード
DevLOVE 2012
2012/12/16
リーダブルコードを読んだ後
Powered by Rabbit 2.0.6
Page: 2
やること
クリアコードの
開発方法を体験
リーダブルコードを読んだ後
Powered by Rabbit 2.0.6
Page: 3
目標
リーダブルコードを
当たり前にする
リーダブルコードを読んだ後
Powered by Rabbit 2.0.6
Page: 4
イベントのテーマ
リーダブルコードを読んだ後
Powered by Rabbit 2.0.6
Page: 5
目標
あなたが
リーダブルコードを
当たり前にする
リーダブルコードを読んだ後
Powered by Rabbit 2.0.6
Page: 6
やること
✓ クリアコードの開発方法を体験
✓ 対象: 野生のフリーソフトウェア
✓ 読む人を「想像」しない
✓ 読む人を「思い出す」
リーダブルコードを読んだ後
Powered by Rabbit 2.0.6
Page: 7
想像上の誰か
想像上の誰かが自分のコード
を理解しやすいかなんて考える
のは大変なことだ。
[「リーダブルコード 1.5 でもやるんだよ」より引用
]
リーダブルコードを読んだ後
Powered by Rabbit 2.0.6
Page: 8
想像しない
✓ 読む人を「想像」しない
✓ 読む人を「思い出す」
リーダブルコードを読んだ後
Powered by Rabbit 2.0.6
Page: 9
思い出すには?
読む人になる
リーダブルコードを読んだ後
Powered by Rabbit 2.0.6
Page: 10
クリアコードの開発方法
✓ コミットメールが全員に届く
(diff入り)
✓ 全員が読む
✓ 気になったらコメント
(プロジェクト外の人でも)
✓ 「昨日印象に残ったコミット」
を朝会で報告
リーダブルコードを読んだ後
Powered by Rabbit 2.0.6
Page: 11
ポイント
✓ 全員が書く人で読む人
✓ 書く時:
✓ 読む時の事を思いながら
(こう書くと読みやすいんだよな。)
✓ 読む時:
✓ 書く時の事を思いながら
(これ読みやすいから今度同じように書こう。)
リーダブルコードを読んだ後
Powered by Rabbit 2.0.6
Page: 13
なぜリーダブルコード?
開発を
続けるため
リーダブルコードを読んだ後
Powered by Rabbit 2.0.6
Page: 14
メリット
✓ メンテナンスコストを低く保つ
(開発を続けるわりにあわなくなってしまう)
✓ 機能追加・変更をしやすくする
(使われないものになって開発する必要がなくなる)
✓ プログラマーの意欲を保つ
(プログラマーも人です)
リーダブルコードを読んだ後
Powered by Rabbit 2.0.6
Page: 15
注意
✓ すべてを解決するわけではない
✓ よりよくする重要な方法の1つ
✓ トレードオフ
リーダブルコードを読んだ後
Powered by Rabbit 2.0.6
Page: 16
メンテナンスコスト
メンテナンスコストを低く保
つためにずっとリファクタリン
グをし続けると…高いメンテナ
ンスコスト
リーダブルコードを読んだ後
Powered by Rabbit 2.0.6
Page: 17
素早い変更
素早く機能追加・変更できる
よう、リーダブルコードにする
ために必要な時間を確保して開
発しているのに、機能を追加し
たいというと必ず1週間以上は
必要だと言われる…素早くない
変更
リーダブルコードを読んだ後
Powered by Rabbit 2.0.6
Page: 18
ゴール
✓ 本末転倒にならないように!
✓ リーダブルコードを書くことは
ゴールじゃない
✓ 効率よく目的を実現するのがゴール
(今だけ効率がよければよいのではない。念のため。)
✓ 手早くリーダブルコードを
書けるようになろう!
リーダブルコードを読んだ後
Powered by Rabbit 2.0.6
Page: 19
なぜコミットメール?
ペアプロより
スケールする
リーダブルコードを読んだ後
Powered by Rabbit 2.0.6
Page: 20
ペアプロ
✓ 常にコードレビュー
✓ 2人だけ
✓ 時間をあわせる
✓ 距離をあわせる
✓ プロジェクトをあわせる
リーダブルコードを読んだ後
Powered by Rabbit 2.0.6
Page: 21
コミットメール
✓ 常にコードレビュー
✓ 2人以上も読める
✓ 時間がずれてもよい
✓ 距離がずれてもよい
✓ プロジェクトがずれてもよい
リーダブルコードを読んだ後
Powered by Rabbit 2.0.6
Page: 22
コミット
ペアプロしているように!
✓ 小さくコミット
✓ 意図が伝わるコミット
リーダブルコードを読んだ後
Powered by Rabbit 2.0.6
Page: 23
ペアプロの方がよいこと
全体の設計とかもみれる
✓ コミットメールだけだとムリ
✓ pull requestだけでもムリ
✓ 一緒に書いていないとムリ
(同じプロジェクトだといけそう)
リーダブルコードを読んだ後
Powered by Rabbit 2.0.6
Page: 25
確認
事前課題
リーダブルコードを読んだ後
Powered by Rabbit 2.0.6
Page: 26
事前課題
1. リーダブルコードを読む
2. Rubyコードの感想戦を読む
3. github://clear-code/git-utils
をfork
4. commit-email.rbを読む
✓ Rubyコードの感想戦のように読む
リーダブルコードを読んだ後
Powered by Rabbit 2.0.6
Page: 27
事前課題確認1
1. リーダブルコードを読む
2. Rubyコードの感想戦を読む
3. github://clear-code/git-utils
をfork
4. commit-email.rbを読む
✓ Rubyコードの感想戦のように読む
リーダブルコードを読んだ後
Powered by Rabbit 2.0.6
Page: 28
事前課題確認2
1. リーダブルコードを読む
2. Rubyコードの感想戦を読む
3. github://clear-code/git-utils
をfork
4. commit-email.rbを読む
✓ Rubyコードの感想戦のように読む
リーダブルコードを読んだ後
Powered by Rabbit 2.0.6
Page: 29
事前課題確認3
1. リーダブルコードを読む
2. Rubyコードの感想戦を読む
3. github://clear-code/git-utils
をfork
4. commit-email.rbを読む
✓ Rubyコードの感想戦のように読む
リーダブルコードを読んだ後
Powered by Rabbit 2.0.6
Page: 30
事前課題確認4
1. リーダブルコードを読む
2. Rubyコードの感想戦を読む
3. github://clear-code/git-utils
をfork
4. commit-email.rbを読む
✓ Rubyコードの感想戦のように読む
リーダブルコードを読んだ後
Powered by Rabbit 2.0.6
Page: 31
むずかしい?
✓ 「うまくできない」は今のうち
✓ 聞けば答えます
リーダブルコードを読んだ後
Powered by Rabbit 2.0.6
Page: 32
進め方
✓ 読み手になる: 15分
✓ 事前課題をやっていない人:
Rubyコードの感想戦を読
む
✓ 読み手目線で書く: 15分
✓ 事前課題をやっていない人:
読み手になる
✓ 質疑応答: 10分
リーダブルコードを読んだ後
Powered by Rabbit 2.0.6
Page: 33
読み手になる: 15分
1. 数人のグループを作る
2. グループ用のgit-utilsをclone
3. 読んでcommit & push
✓ リーダブルなら理由をコメントと
して書く
✓ リーダブルじゃないなら直してコ
ミットメッセージで理由を説明
リーダブルコードを読んだ後
Powered by Rabbit 2.0.6
Page: 34
読み手目線で書く: 15分
1. 他のグループのリポジトリの
コミットを確認
コミットメールが届いているはず
✓ 自分達にピンとこないものを選ぶ
✓ 直してメッセージで理由を説明
✓ コードで伝える
2. 自分たちのリポジトリを確認
3. 繰り返す
リーダブルコードを読んだ後
Powered by Rabbit 2.0.6
Page: 35
質疑応答: 10分
✓ 気になったコミットは?
✓ やってみて困ったことは?
✓ 実践すると困りそうなことは?
リーダブルコードを読んだ後
Powered by Rabbit 2.0.6
Page: 36
宣伝
コミットへのコメントサービス
https://www.clear-code.com/services/#commit-comment
お客様の開発プロジェクトの
コミットを読んでコメントする
ことにより、お客様の開発チー
ムが「当たり前のようにクリア
なコードを書く文化」を育むこ
とを支援します。
リーダブルコードを読んだ後
Powered by Rabbit 2.0.6