まとめと次のステップ

: author

須藤功平

: institution

株式会社クリアコード

: content-source

実践リーダブルコード

: date

2015-03-06

: allotted-time

30m

: theme

clear-code

講座の目的

* 自分の開発チームに
* ((*リーダブルなコードが\n
  当たり前な文化の作り方*))を
* 持ち帰る

文化の作り方の流れ(1)

* リーダブルコードの必要性を\n
  チームで共有
  * 改良・修正が多いなら必要
  * 継続的に改良・修正したいか
  * チームとして改良・修正したいか

文化の作り方の流れ(2)

* チームでのリーダブルの基準を\n
  育てる
  * 「読む人」が\n
    読みやすいなら\n
    リーダブル
  * 「読む人」が変われば基準が変わる
  * →読む人が違うのでチーム毎に違う

文化の作り方の流れ(3)

* 基準の育て方
  * 各メンバーがコードを読む
  * リーダブルだと思ったコードを共有
  * チームとしてリーダブルかを判断
  * →チームの基準に加わる

基準の育て方(1)

* コードを読む文化を作る
  * まず自分が読み始める
  * リーダブルなコードを探す
  * 見つけたリーダブルなコードを\n
    他のメンバーに伝える(('note:(後述)'))
  * →コードが読まれるという自覚が\n
    チームに浸透

((‘tag:center’)) ((‘note:今日やったのはここまで’))

基準の育て方(2)

((‘tag:center’)) ((‘note:次のステップ’))

* コミットを読む
  * コード全体ではなく差分を読む
  * 設計の仕方ではなく\n
    開発の仕方が見える
  * リーダブルなコードを\n
    見つけるには適切

基準の育て方(3)

* コミットの読み方
  * pull型よりpush型がよい\n
    (('note:(Git用のオススメツールあり:git-utils)'))
  * 読むコストが下がる
  * 流し読む(負担が多いと続かない)
  * 問題探し視点では読まない

基準の育て方(4)

* リーダブルコードの伝え方
  * Wikiに書く(全チームで有効)
  * コードで伝える(上級チーム向け)

基準の育て方(5)

* Wikiに書いて伝える
  * Wikiもdiffを通知できるようにする\n
    (('note:(RedmineとGitHub用はツールあり)'))
  * 後で参照できるため
  * 更新もできるため\n
    (('note:(リーダブルコードの基準は変わることもある!)'))

基準の育て方(6)

* コードで伝える
  * 上級チーム向け\n
    (('note:(チームにコードを読む文化が根付いた後)'))
  * リーダブルコードを真似てコミット
  * →他の人:「またこの書き方だ」
  * →真似する人増加→チームが合意
  * →チームが合意→Wikiにまとめる

おまけ:副次効果

* コードを読む文化
  * 新しい人の受け入れにも有用
  * 自分たちが大事にしていることを\n
    開発を通じて徐々に伝えていける

来週からやること

* リーダブルコードの必要性を\n
  チームで確認
* →この講座をチームでもやる
  * 資料はすべて再利用可能
* →自分がコードを読み始める
  * 自分が変更するコードの周辺から\n
    リーダブルコードを探す

サポート(1)

* 今日の資料はすべて再利用可能
  * チーム内で同じ講座をできる
* 無料のフォローアップ面談
  * チームで実践→悩み\n
    ↑の相談に乗る
  * 受講後3ヶ月以内、1回限り

サポート(2)

* コミット読みの支援
  * OSSとしてツールを公開
  * コミット毎にメールで通知(('note:(diff入り)'))
  * Git、Subversionで使える
  * GitHub、GitLab連携もできる

おしらせ(1)

* WEB+DB PRESS Vol.86に寄稿
  * よいコード・よいコミットについて
  * 2015-4-24発売予定
  * http://www.amazon.co.jp/dp/4774172480

おしらせ(2)

((‘tag:center’)) コードリーダー育成支援n ((‘note:www.clear-code.com/services/code-reader/’))

((‘tag:center’)) リーダブルなコードがn 当たり前な文化づくりを支援

トラブルシューティング

((‘tag:center’)) 1人で始めたままn なかなかチームに広げられない

* 実績を元に\n
  リーダーや○○長に協力依頼
  * 実績例:リーダブル基準集
  * 前述の支援サービスを使う
  * →組織として本気で取り組むぞ!\n
    というメッセージになる

クリアコード

* クリアなコードが大切
  * クリア == clear == 意図が明確
  * クリアなコードはリーダブルコード

((‘tag:center’)) みなさんのチームがn リーダブルコードが当たり前なn チームになることを応援します!