まとめと次のステップ¶ ↑
: author
須藤功平
: institution
株式会社クリアコード
: content-source
実践リーダブルコード
: date
2015-06-24
: allotted-time
30m
: theme
clear-code
講座の目的¶ ↑
* 自分の開発チームに * ((*リーダブルなコードが\n 当たり前な文化の作り方*))を * 持ち帰る
リーダブルコードの必要性¶ ↑
* チームの開発速度の維持のため * 継続的に改良・修正したい * それも現実的なコストで
変更コストと開発速度¶ ↑
# image # src = images/readable-code-reasonability.svg # relative_width = 90
プロパティー¶ ↑
: enable-title-on-image
false
文化の作り方の流れ(1)¶ ↑
* チームでリーダブル基準を育む * 「読む人」が\n 読みやすいなら\n リーダブル * 「読む人」が変われば基準が変わる * →読む人が違うのでチーム毎に違う
文化の作り方の流れ(2)¶ ↑
* 基準の育て方 * 各メンバーがコードを読む * リーダブルだと思ったコードを共有 * チームとしてリーダブルかを判断 * →チームの基準に加わる
基準の育て方(1)¶ ↑
* コードを読む文化を作る * まず自分が読み始める * リーダブルなコードを探す * 見つけたリーダブルなコードを\n 他のメンバーに伝える(('note:(後述)')) * →コードが読まれるという自覚が\n チームに浸透
((‘tag:center’)) ((‘note:今日やったのはここまで’))
基準の育て方(2)¶ ↑
((‘tag:center’)) ((‘note:次のステップ’))
* コミットを読む * コード全体ではなく差分を読む * 設計の仕方ではなく\n 開発の仕方が見える * リーダブルなコードを\n 見つけるには適切
基準の育て方(3)¶ ↑
* コミットの読み方 * pull型よりpush型がよい\n (('note:(Git用のオススメツールあり:git-commit-mailer)'))\n (('note:(Subversion用のツールもあり:同梱されている)')) * 読むコストが下がる * 流し読む(負担が多いと続かない) * 問題探し視点では読まない\n (('note:(必要ならコードレビューを実施)'))
基準の育て方(4)¶ ↑
* リーダブルコードの伝え方 * Wikiに書く(全チームで有効) * コードで伝える(上級チーム向け)
基準の育て方(5)¶ ↑
* Wikiに書いて伝える * Wikiもdiffを通知できるようにする\n (('note:(RedmineとGitHub用はツールあり)')) * 後で参照できるため * 更新もできるため\n (('note:(リーダブルコードの基準は変わることもある!)'))
基準の育て方(6)¶ ↑
* コードで伝える * 上級チーム向け\n (('note:(チームにコードを読む文化が根付いた後)')) * リーダブルコードを真似てコミット * →他の人:「またこの書き方だ」 * →真似する人増加→チームが合意 * →チームが合意→Wikiにまとめる
コードを読む文化¶ ↑
* 新人の受け入れにも有用 * 人の入れ替えにも有用
どうして有用か¶ ↑
((‘tag:center’)) 開発を通じて↓を伝えられるn ((‘note:(ただし、上級チームになってから)’))
* チームが大事にしていること * チームのリーダブル * チームの開発スタイル
コードを読む文化¶ ↑
((‘tag:center’)) チームが大事にしていることをn 開発を通じて伝えられるn ↓
* 新人の受け入れにも有用 * 開発速度低下を抑えられる * 人の入れ替えにも有用 * リーダブル見直しのよい機会
これからやること¶ ↑
* この講座をチームでもやる * 資料はすべて再利用可能 * 自分がコードを読み始める * 自分が変更するコードの周辺から\n リーダブルコードを探す * 見つけたリーダブルなコードを\n 他のメンバーに伝える
サポート(1)¶ ↑
* 今日の資料はすべて再利用可能 * チーム内で同じ講座をできる * 無料のフォローアップ面談 * チームで実践→悩み\n ↑の相談に乗る * 受講後3ヶ月以内、1回限り
サポート(2)¶ ↑
* コミット読みの支援 * OSSとしてツールを公開 * コミット毎にメールで通知(('note:(diff入り)')) * Git、Subversionで使える * GitHub、GitLab連携もできる
おしらせ¶ ↑
((‘tag:center’)) コードリーダー育成支援n ((‘note:www.clear-code.com/services/code-reader/’))
((‘tag:center’)) リーダブルなコードがn 当たり前な文化づくりを支援
クリアコード¶ ↑
* クリアなコードが大切 * クリア == clear == 意図が明確 * クリアなコードはリーダブルコード
((‘tag:center’)) みなさんのチームがn リーダブルコードが当たり前なn チームになることを応援します!