= まとめと次のステップ : 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:http://www.clear-code.com/services/code-reader/')) (('tag:center')) リーダブルなコードが\n 当たり前な文化づくりを支援 = トラブルシューティング (('tag:center')) 1人で始めたまま\n なかなかチームに広げられない * 実績を元に\n リーダーや○○長に協力依頼 * 実績例:リーダブル基準集 * 前述の支援サービスを使う * →組織として本気で取り組むぞ!\n というメッセージになる = クリアコード * クリアなコードが大切 * クリア == clear == 意図が明確 * クリアなコードはリーダブルコード (('tag:center')) みなさんのチームが\n リーダブルコードが当たり前な\n チームになることを応援します!