= まとめと次のステップ : author 結城洋志 : institution 株式会社クリアコード : content-source 実践リーダブルコード : date 2019-09-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) * 今日の資料はすべて再利用可能 * チーム内で同じ講座をできる = サポート(2) * コミット読みの支援 * OSSとしてツールを公開 * コミット毎にメールで通知(('note:(diff入り)')) * Git、Subversionで使える * GitHub、GitLab連携もできる = おしらせ (('tag:center')) コードリーダー育成支援\n (('note:http://www.clear-code.com/services/code-reader/')) (('tag:center')) リーダブルなコードが\n 当たり前な文化づくりを支援 = クリアコード * クリアなコードが大切 * クリア == clear == 意図が明確 * クリアなコードはリーダブルコード (('tag:center')) みなさんのチームが\n リーダブルコードが当たり前な\n チームになることを応援します!