Rabbit Slide Show

開発者は仕事でリーダブルなコードを書けるのか?

2013-03-02

Description

ビジネスアプリケーションにおいても高速/堅牢な、保守性の高いプログラミングが求められています。 去年は「リーダブルなコード」に注目が集まりましたが、具体的に開発者へどんなメリットをもたらすのでしょうか?また、「リーダブルなコード」のコンセプトや手法は現場へ導入可能なのでしょうか? 本セッションでは、リーダブルなコードの概要を紹介した上で開発者にとってのメリットと現場導入について考察します。

Text

Page: 1

開発者は仕事で
リーダブルなコードを
書けるのか?
須藤功平
株式会社クリアコード
Developer Migration 2013
2013/03/02
開発者は仕事でリーダブルなコードを書けるのか?
Powered by Rabbit 2.0.7

Page: 2

対象
開発者
開発者は仕事でリーダブルなコードを書けるのか?
Powered by Rabbit 2.0.7

Page: 3

リーダブルな
コード?

Page: 4

例1: リーダブル?
class Person
def initialize
@mutex = Mutex.new
end
def name=(name)
@mutex.synchronize do
@name = name
end
end
end
開発者は仕事でリーダブルなコードを書けるのか?
Powered by Rabbit 2.0.7

Page: 5

例2: リーダブル?
class Person
def initialize
@mutex = Mutex.new
end
def name=(name)
synchronize do
@name = name
end
end
def synchronize
@mutex.synchronize do
yield
end
end
end
開発者は仕事でリーダブルなコードを書けるのか?
Powered by Rabbit 2.0.7

Page: 6

参考
Ruby コードの感想戦
✓ http://jp.rubyist.net/magazine/?0040-CodePostMortem
✓ http://jp.rubyist.net/magazine/?0041-CodePostMortem
開発者は仕事でリーダブルなコードを書けるのか?
Powered by Rabbit 2.0.7

Page: 7

ヒント
✓ コードはコンピューターが
実行するだけではない
✓ 読む人がいる
✓ コードは書いた人の意図を語る
開発者は仕事でリーダブルなコードを書けるのか?
Powered by Rabbit 2.0.7

Page: 8

リーダブルなコード
✓ わかりやすい (書いた人の意図が)
✓ 直しやすい
✓ 調べやすい
✓ 試しやすい
開発者は仕事でリーダブルなコードを書けるのか?
Powered by Rabbit 2.0.7

Page: 9

で?

Page: 10

リーダブルな
コードって
うれしいの?

Page: 11

開発者として
ストレスが減る
(1)
開発者は仕事でリーダブルなコードを書けるのか?
Powered by Rabbit 2.0.7

Page: 12

ストレス
なにしてるか
全然わからない
んだけど!
開発者は仕事でリーダブルなコードを書けるのか?
Powered by Rabbit 2.0.7

Page: 13

ストレス
なにしたいか
全然わからない
んだけど!
開発者は仕事でリーダブルなコードを書けるのか?
Powered by Rabbit 2.0.7

Page: 14

開発者として
楽しい
(2)
開発者は仕事でリーダブルなコードを書けるのか?
Powered by Rabbit 2.0.7

Page: 15

楽しい
すぐに
対応できる
開発者は仕事でリーダブルなコードを書けるのか?
Powered by Rabbit 2.0.7

Page: 16

すぐに対応
✓ こういうのが欲しいんだけど
✓ あ、ちょっと待ってください。
✓ こんな感じですか?
✓ →そう!こういうの!
✓ →あぁ、こうなるのかぁ。
じゃあ、なしで!
開発者は仕事でリーダブルなコードを書けるのか?
Powered by Rabbit 2.0.7

Page: 17

すぐに対応
オレってば
スゲー感
http://kitaj.no-ip.com/tdiary/20040404.html#p05
開発者は仕事でリーダブルなコードを書けるのか?
Powered by Rabbit 2.0.7

Page: 18

オレってばスゲー感を
✓ 他の人のコードで、じゃなく
✓ 自分たちのコードで!
開発者は仕事でリーダブルなコードを書けるのか?
Powered by Rabbit 2.0.7

Page: 19

作らないのがいい?
✓ 本当に必要?検討しましょう!
✓ 必要?本当に?本当に?
✓ 考えている間に試したら?
✓ コードを書かない事が目指す事?
✓ 必要ないものに時間をかけない事
じゃない?
開発者は仕事でリーダブルなコードを書けるのか?
Powered by Rabbit 2.0.7

Page: 20

コストが
下がれば
試せる

Page: 21

コストが下がる
✓ 実サーバー → 仮想マシン
✓ すぐに追加できる
✓ すぐに削除できる
開発者は仕事でリーダブルなコードを書けるのか?
Powered by Rabbit 2.0.7

Page: 22

試せる
✓ 実サーバー → 仮想マシン
✓ どのくらいあらかじめ用意する? →
✓ いつどうやって増減させる?
開発者は仕事でリーダブルなコードを書けるのか?
Powered by Rabbit 2.0.7

Page: 23

コード
だって
同じ

Page: 24

リーダブルなコードなら
素早く
対応できる
開発者は仕事でリーダブルなコードを書けるのか?
Powered by Rabbit 2.0.7

Page: 25

素早い対応
うわぁ!
こんなに素早く対応して
もらえるなんて!
ありがとう!
開発者は仕事でリーダブルなコードを書けるのか?
Powered by Rabbit 2.0.7

Page: 26

素早くない対応
✓ このくらいで終わりそう
✓ でも、なんかあったらイヤだなぁ
✓ バッファで2倍かかることにしよう
✓ 困ったらすぐ相談じゃダメ?
✓ 全体でよくなるように進めないの?
開発者は仕事でリーダブルなコードを書けるのか?
Powered by Rabbit 2.0.7

Page: 27

信用
いつも素早く対応してくれる
人が時間がかかるっていうんだ
から大変なんだろう。
開発者は仕事でリーダブルなコードを書けるのか?
Powered by Rabbit 2.0.7

Page: 28

チームとして
誰でも直せる
開発者は仕事でリーダブルなコードを書けるのか?
Powered by Rabbit 2.0.7

Page: 29

誰でも直せる
✓ あるべき設計を維持できる
✓ ×担当じゃないからわからない…
✓ ×自分のところでなんとかするか…
✓ 助け合える
開発者は仕事でリーダブルなコードを書けるのか?
Powered by Rabbit 2.0.7

Page: 30

誰でも直せる?
✓ 直せても直しちゃダメ?
✓ エンバグしたら責任が…
✓ できる人にだけ負荷がかかる?
✓ できる人ほどツライ…
✓ できない人の方が得?
開発者は仕事でリーダブルなコードを書けるのか?
Powered by Rabbit 2.0.7

Page: 31

開発者は
仕事で
リーダブルな
コードを
書けるのか?

Page: 32

ムリ?

Page: 33

コードレビュー
リーダブルなコードにするた
めにコードレビューっていうの
を導入したいけど他の人が読ん
でくれないからできない。
開発者は仕事でリーダブルなコードを書けるのか?
Powered by Rabbit 2.0.7

Page: 34

答え
まず、
あなたが読んでみませんか?
開発者は仕事でリーダブルなコードを書けるのか?
Powered by Rabbit 2.0.7

Page: 35

時間がない
自分は他の人のコードを読ん
でいる時間ないし…
開発者は仕事でリーダブルなコードを書けるのか?
Powered by Rabbit 2.0.7

Page: 36

答え
時間を決めて読んでみません
か?
ペースがわかったらどうやって
取り組んでいけばよいかアイデ
ィアが浮かぶと思いますよ。
開発者は仕事でリーダブルなコードを書けるのか?
Powered by Rabbit 2.0.7

Page: 37

でも
でも、でも、でも…
開発者は仕事でリーダブルなコードを書けるのか?
Powered by Rabbit 2.0.7

Page: 38

コミットへの
コメントサービス
クリアコードは、よいコード
を書くことを当たり前にするた
めには、まず「みんながみんな
のコードを読む」文化にするこ
とからはじめるのがよいと考え
ます。
http://www.clear-code.com/services/commit-comment.html
開発者は仕事でリーダブルなコードを書けるのか?
Powered by Rabbit 2.0.7

Page: 39

B2D
Business to
Developer

Page: 40

なんで読むの?
✓ 読まないと
読みやすいコードは書けない
✓ 読む人を想像しろなんてムリ
✓ 自分が読む人になる
開発者は仕事でリーダブルなコードを書けるのか?
Powered by Rabbit 2.0.7

Page: 41

あなたが読む事を支援
✓ どうやって読むの?
✓ よいところを学ぶ
✓ 悪いところ探しではない!
✓ どういうタイミングで?
✓ pushとかcommitした後
✓ 一区切り付いているでしょ?
開発者は仕事でリーダブルなコードを書けるのか?
Powered by Rabbit 2.0.7

Page: 42

みんなが読む事を支援
✓ こうすると読みやすいですよ
✓ 読みにくいコードばかりだと
続けられない
✓ よいコードを見た!→
真似してコミット
✓ いいね!しているだけじゃない
✓ 行動しているからより本物
開発者は仕事でリーダブルなコードを書けるのか?
Powered by Rabbit 2.0.7

Page: 43

コミットコミュニケーション
✓ 他の人が何をしているかわかる
✓ あの人はあそこらへん詳しそう
✓ 相談してみよう
✓ 他の人が困っていないかわかる
✓ この1時間ひとつもコミットしていな
いけど大丈夫?
✓ このコミットすごいごちゃごちゃし
てるけど悩んでる?
開発者は仕事でリーダブルなコードを書けるのか?
Powered by Rabbit 2.0.7

Page: 44

毎日↓をコミット
✓ 今日どれくらい読めたか
✓ 感覚で。70%とか。
✓ 今日印象に残ったコミット
✓ メモリリーク直った!
✓ 今日の一言感想
✓ 自分のコミットが真似されていた!
開発者は仕事でリーダブルなコードを書けるのか?
Powered by Rabbit 2.0.7

Page: 45

さいごに
✓ リーダブルなコードが大事そう
な気がしましたか?
✓ 仕事でリーダブルなコードを書
けそうですか?
✓ 支援があれば書けそうですか?
開発者は仕事でリーダブルなコードを書けるのか?
Powered by Rabbit 2.0.7

Page: 46

いや、でも…
自分の会社は横のつながりを
推奨していないので…
開発者は仕事でリーダブルなコードを書けるのか?
Powered by Rabbit 2.0.7

Page: 47

答え
オープンソースソフトウェア
の開発に参加してみませんか?
そこで体験してよかったら自分
の言葉で説明できるはず。
開発者は仕事でリーダブルなコードを書けるのか?
Powered by Rabbit 2.0.7

Other slides

Apache Arrow
2017-06-13
Apache Arrow
2017-05-28
Mroonga!
2015-10-30