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

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

Embed Size (px)

DESCRIPTION

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

Citation preview

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

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

開発者は仕事でリーダブルなコードを

書けるのか?

須藤功平株式会社クリアコード

Developer Migration 20132013/03/02

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

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

対象

開発者

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

リーダブルなコード?

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

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

例1: リーダブル?

class Person def initialize @mutex = Mutex.new end def name=(name) @mutex.synchronize do @name = name end endend

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

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

例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 endend

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

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

参考

Ruby コードの感想戦http://jp.rubyist.net/magazine/?0040-CodePostMortem✓

http://jp.rubyist.net/magazine/?0041-CodePostMortem✓

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

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

ヒント

コードはコンピューターが実行するだけではない

読む人がいる✓

コードは書いた人の意図を語る✓

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

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

リーダブルなコード

わかりやすい(書いた人の意図が)✓

直しやすい✓

調べやすい✓

試しやすい✓

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

で?

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

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

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

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

開発者として

ストレスが減る(1)

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

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

ストレス

なにしてるか全然わからないんだけど!

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

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

ストレス

なにしたいか全然わからないんだけど!

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

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

開発者として

楽しい(2)

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

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

楽しい

すぐに対応できる

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

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

すぐに対応

こういうのが欲しいんだけどあ、ちょっと待ってください。✓

こんな感じですか?✓

→そう!こういうの!✓

→あぁ、こうなるのかぁ。じゃあ、なしで!

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

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

すぐに対応

オレってばスゲー感

http://kitaj.no-ip.com/tdiary/20040404.html#p05

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: 開発者は仕事でリーダブルなコードを書けるのか?

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

素早くない対応

このくらいで終わりそうでも、なんかあったらイヤだなぁ✓

バッファで2倍かかることにしよう✓

困ったらすぐ相談じゃダメ?全体でよくなるように進めないの?✓

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: 開発者は仕事でリーダブルなコードを書けるのか?

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

コミットへのコメントサービス

クリアコードは、よいコードを書くことを当たり前にするためには、まず「みんながみんなのコードを読む」文化にすることからはじめるのがよいと考えます。

http://www.clear-code.com/services/commit-comment.html

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

B2DBusiness to Developer

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

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

なんで読むの?

読まないと読みやすいコードは書けない

読む人を想像しろなんてムリ✓

自分が読む人になる✓

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

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

あなたが読む事を支援

どうやって読むの?よいところを学ぶ✓

悪いところ探しではない!✓

どういうタイミングで?

pushとかcommitした後✓

一区切り付いているでしょ?✓

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

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

みんなが読む事を支援

こうすると読みやすいですよ読みにくいコードばかりだと続けられない

よいコードを見た!→真似してコミットいいね!しているだけじゃない✓

行動しているからより本物✓

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

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

コミットコミュニケーション

他の人が何をしているかわかるあの人はあそこらへん詳しそう✓

相談してみよう✓

他の人が困っていないかわかるこの1時間ひとつもコミットしていないけど大丈夫?

このコミットすごいごちゃごちゃしてるけど悩んでる?

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

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

毎日↓をコミット

今日どれくらい読めたか感覚で。70%とか。✓

今日印象に残ったコミットメモリリーク直った!✓

今日の一言感想自分のコミットが真似されていた!✓

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

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

さいごに

リーダブルなコードが大事そうな気がしましたか?

仕事でリーダブルなコードを書けそうですか?

支援があれば書けそうですか?✓

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

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

いや、でも…

自分の会社は横のつながりを推奨していないので…

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

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

答え

オープンソースソフトウェアの開発に参加してみませんか?

そこで体験してよかったら自分の言葉で説明できるはず。