Rabbit Slide Show

リーダブルコード演習の概要

2022-11-02

Description

2022-08-04開催のリーダブルコード演習の概要と進め方の説明。

Text

Page: 1

概要
結城洋志
株式会社クリアコード
実践リーダブルコード
2022-11-02
概要
Powered by Rabbit 2.2.1

Page: 2

全体の流れ
✓ 概要と進め方の説明
✓ 実装
✓ 実装を交換、続きを実装
✓ 全体で結果を共有
概要
Powered by Rabbit 2.2.1

Page: 3

講師紹介
結城洋志(ゆうき ひろし)
aka Piro
✓ 株式会社クリアコード所属
✓ FirefoxやThunderbirdの
法人サポートに従事
✓ トラブルの原因や対策を探るため
ソースコードを調査することが多い
概要
Powered by Rabbit 2.2.1

Page: 4

アジェンダ
✓ 講座の目的を確認
✓ リーダブルコードの
必要性を確認
✓ リーダブルコードの
実践方法を紹介
✓ 実践方法を練習
概要
Powered by Rabbit 2.2.1

Page: 5

講座の目的
✓ 自分の開発チームに
✓ 注:個々人の話ではない
✓ リーダブルなコードが
当たり前な文化の作り方を
✓ 持ち帰る
→ 「解説」に書いていることの実践方法を学ぶ
概要
Powered by Rabbit 2.2.1

Page: 6

目的でないこと
✓ 実践前の不安のケア
✓ 「やる」と決めないと理解が進まな
い
✓ テクニックをたくさん覚える
✓ 難しいプログラムを実装する
✓ 早解きや実行時性能の追求
✓ 奇抜な方法で目立つ
概要
Powered by Rabbit 2.2.1

Page: 7

ワークショップ後
✓ ぜひ実践を!
✓ 今日の資料はすべて再利用可能
✓ チーム内で同じ講座を再現できる
概要
Powered by Rabbit 2.2.1

Page: 8


        

Page: 9

そもそもの話
✓ リーダブルコードは
なぜ必要か
概要
Powered by Rabbit 2.2.1

Page: 10

リーダブルコードのニーズ
チーム開発を
無理なく
続けるため
概要
Powered by Rabbit 2.2.1

Page: 11

チーム開発でのニーズ
✓ 既存のコードを読んで
素早く内容を把握したい
✓ 既存のコードに
素早く手を加えたい
✓ 開発速度を落としたくない
概要
Powered by Rabbit 2.2.1

Page: 12

読みにくいと開発が遅くなる
✓ 既存のコードを
理解しにくいと……
✓ 修正・機能追加に時間がかかる
(理解しないと変更できない)
✓ 後退バグが発生しやすい
(理解しないまま変更すると問題発生)
→コストがかかる
概要
Powered by Rabbit 2.2.1

Page: 13

時間が経つほど影響大
開発
速度
リーダブルな場合
開発速度が落ちにくい
リーダブルじゃない場合
開発速度が落ちやすい
時間
(注意:グラフではなく概念図です)
概要
Powered by Rabbit 2.2.1

Page: 14

つまり
✓ 現実的なコストの範囲で
✓ 既存のコードを継続的に、
無理なく改良・修正したい
→なので、リーダブルコード
概要
Powered by Rabbit 2.2.1

Page: 15


        

Page: 16

リーダブルコードの実践
どうすれば無理なく実践できる?
概要
Powered by Rabbit 2.2.1

Page: 17

リーダブルコードの実践
コードを読む
習慣を作る
概要
Powered by Rabbit 2.2.1

Page: 18

読む?書くじゃないの?
✓ リーダブルコードを書くには
コードを読むことが欠かせない
✓ なぜ?
↓
読まないと
何が「読みやすい」か
分からないから
概要
Powered by Rabbit 2.2.1

Page: 19

何が「良い」かは受け手の状
況次第
✓ しょっぱいのが好きな人と
甘いのが好きな人で
「おいしい」の基準は違う
✓ 自分はどんな味が好みか?
✓ 日常の運転とレースでは
「乗りやすい」の基準は違う
✓ 自分はどんな乗り方をするのか?
概要
Powered by Rabbit 2.2.1

Page: 20

リーダブルコードも同じ
✓ チームの状況によって
「リーダブル」の基準が違う
概要
Powered by Rabbit 2.2.1

Page: 21

リーダブルコード
「読む人」が
読みやすいなら
リーダブル
概要
Powered by Rabbit 2.2.1

Page: 22

読む人
✓ 多くの場合、いない
✓ チームのコードを読んでいますか?
✓ 読む人(チームメンバー)毎に
リーダブルの基準は違う
✓ 背景が違うので当たり前
(背景:使ってきた言語・今の知識)
概要
Powered by Rabbit 2.2.1

Page: 23

チームでのリーダブル
✓ 1つずつ見つけていくしかない
✓ 各メンバーの読んだ感覚を
チームで共有
✓ 既存の基準をベースにするのはアリ
(基準:本の内容やコーディングスタイルなど)
チームでのリーダブルコードは
育てていくもの
概要
Powered by Rabbit 2.2.1

Page: 24

リーダブルの基準の育て方
✓ コードを読む文化を作る
(最初の難関)
✓ チームのコードの中から
リーダブルなコードを見つける
✓ リーダブルなコードを
チームで共有
✓ ↑の繰り返しで基準を増やす
概要
Powered by Rabbit 2.2.1

Page: 25

コードを読む文化を作る
✓ まず自分が読み始める
✓ 仲間がいると心強い
✓ リーダブルなコードを探す
✓ 読みにくいコードは今は置いておく
(チームにコードを読む文化ができてから!)
✓ 見つけたリーダブルなコードは…
概要
Powered by Rabbit 2.2.1

Page: 26

リーダブルなコードは…
✓ 他のメンバーに共有する
(例:話しかける。チャットに書く。Wikiにまとめる。)
✓ 「○○さんの△△という書き方、
◇◇な所がリーダブルですね」
↓
読みやすさの基準を共有
コードが読まれているという自覚
概要
Powered by Rabbit 2.2.1

Page: 27

読むことを「当たり前」に
✓ 「あいつはコードを読むやつ」
という認識を広める
✓ 自分だけからチームへ
✓ 「このチームはコードを読み合う」
という認識を広める
…続きはセミナーの最後に
概要
Powered by Rabbit 2.2.1

Page: 28

この後の実践
開発を続けるために
他の人のコードを読む
✓ まず自分が読み始める
✓ リーダブルコードを探す
(読みにくいコードは今は置いておく)
✓ リーダブルの基準を共有
(チームでのリーダブルコードができる)
概要
Powered by Rabbit 2.2.1

Page: 29

やること
読む文化作りの
体験
概要
Powered by Rabbit 2.2.1

Page: 30

読む文化作りの体験
✓ 10:45-12:15 課題を実装
✓ リーダブルコードを書く
✓ 13:30-14:45 実装チェンジ
→開発継続
✓ 「まず自分が読み始める」
✓ 「リーダブルコードを探す」
✓ 15:00- グループふりかえり
✓ 「他のメンバーに教える」
概要
Powered by Rabbit 2.2.1

Page: 31

おさらい
✓ この講座の目的
✓ リーダブルコードの必要性
✓ この講座でやること
概要
Powered by Rabbit 2.2.1

Page: 32

この講座の目的
✓ 自分の開発チームに
✓ ↑注意:個々人の話ではない
✓ リーダブルなコードが
当たり前な文化の作り方を
✓ 持ち帰る
概要
Powered by Rabbit 2.2.1

Page: 33

リーダブルコードの必要性
✓ チームの開発速度の維持のため
✓ 継続的に改良・修正したい
✓ それも現実的なコストの範囲内で
概要
Powered by Rabbit 2.2.1

Page: 34

変更コストと開発速度
開発
速度
リーダブルな場合
開発速度が落ちにくい
リーダブルじゃない場合
開発速度が落ちやすい
時間
概要
Powered by Rabbit 2.2.1

Page: 35

この講座でやること
✓ コードを読む文化作りの体験
✓ まず自分が読み始める
✓ リーダブルコードを探す
✓ 他のメンバーに教える
概要
Powered by Rabbit 2.2.1

Page: 36

ここまでの説明
腑に落ちました
か?
概要
Powered by Rabbit 2.2.1

Other slides