まとめと次のステップ

: 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 チームになることを応援します!