クリアなコードのn作り方

: subtitle

How to make clear code

: author

須藤功平

: institution

株式会社クリアコード

: content-source

札幌Ruby会議2012

: date

2012/09/16

: allotted-time

25m

: theme

.

クリアなコードの作り方n((‘note:(How to make clear code)’))

((‘wait’)) We Code.n Period.n ((‘note:(以上)’))

クリアなコード?n((‘note:(Clear code?)’))

((‘wait’)) 自然なコードn ((‘note:(Natural code)’))

メモ

クリアなコードn((‘note:(Clear code)’))

# blockquote
クリアなコードっていうのは、読んだら「おぉー!」ってなるもんじゃなく
て、しばらく読んでて「あれ?ずいぶんするっと読めるなぁ」って思ったと
きに「あぁ、これはクリアなコードだなぁ」と気付くもんなんじゃないかなぁ。

((‘tag:center’)) ((‘note:twitter.com/ktou/status/199838535073808385’))

クリアなコードn((‘note:(Clear code)’))

# blockquote
かっこよくもなければ\n
膝を打つものでもない、\n
自然なコード。

((‘tag:center’)) ((‘note:twitter.com/ktou/status/199838535073808385’))

クリアなコードと私n((‘note:(Clear code and I)’))

とてもn大事にしていることn ((‘note:(It’s very important to me)‘))

どうして?n((‘note:(Why should we code clear code?)’))

たのしく開発を続けたいからn ((‘note:(Because I want to keep developing in a joyful way)’))

私n((‘note:(Me)’))

プログラミングが好きn ((‘note:(I love programming)’))

開発n((‘note:(Development)’))

たのしいn ((‘note:(Joyful)’))

たのしくない開発n((‘note:(Joyless development)’))

汚いコードn ((‘note:(Dirty code…)’))

もっとたのしくない開発n((‘note:(More joyless development)’))

汚れていくnコードn ((‘note:(Code gets dirty…)’))

汚れていくコードn((‘note:(Code gets dirty…)’))

* 直しても直しても\n
  他の人が汚していく\n
  (('note:(I clean codes but others make codes dirty...)'))
* 掃除しているそばから\n
  ゴミを捨てられているよう\n
  (('note:(Like ... I can't translate it... :<)'))

続けられない!n((‘note:I can’t keep developing!‘))

どうしてクリアなコード?n((‘note:(Why should we code clear code?)’))

みんなでn たのしく開発を続けたいからn ((‘note:(Because I want to keep developing in a joyful way)’))

どうしてこのトークを?n((‘note:(Why do I this talk?)’))

みんなもnクリアなコードn書いて!nたのしいから!n ((‘note:(Please code clear code! It’s joyful!)‘))

We Code.

((C))ode ((C))lear ((C))ode

クリアなコードの作り方n((‘note:(How to make clear code)’))

* みんなでクリアなコードにする\n
  (('note:(We make clear code)'))
  * 他の人のことを考えて書く\n
    (('note:(Write codes for others)'))
  * 他の人のコードを読む\n
    (('note:(Read codes by others)'))

メモ

どういうこと?n((‘note:(What does it mean?)’))

文化にしよう!

メモ

# blockquote
人と一緒にコードを書いて、\n
人のコードを見て\n
プログラマーは\n
良くなっていくんだ

((‘tag:center’)) ((‘note:札幌Ruby会議02に行ってみて初心に帰った’))n ((‘note:adzuki34.blogspot.jp/2009/12/ruby02.html’))

解説参照

# image
# src = readable-code.jpeg
# relative_height = 90
# reflect_ratio = 0.15

リーダブルコードの解説n((‘note:(The comment of readable code)’))

(1) 実際にやる\n
    (('note:(Do it)'))
(2) 当たり前にする\n
    (('note:(Make coding readable code natural)'))
(3) コードで伝える\n
    (('note:(Communicate by readable code)'))

((‘tag:center’)) ((‘note:CC BY-NC-SA 3.0で公開されている’))n ((‘note:You can translate it into English!!!’))n ((‘note:www.clear-code.com/blog/2012/6/11.html’))

リーダブルコードの解説

(1) 実際にやる(('note:(Do it)'))
    * 書く(('note:(Write)'))
(2) 当たり前にする(('note:(Make natural)'))
    * 書く・読む(('note:(Write and Read)'))
(3) コードで伝える(('note:(Communicate by code)'))
    * 書く・読む・書く(('note:(Write, Read and Write)'))

リーダブルコードの解説

(1) 実際にやる(('note:(Do it)'))
    * ((*書く*))(('note:(Write)'))
(2) 当たり前にする(('note:(Make natural)'))
    * 書く・読む(('note:(Write and Read)'))
(3) コードで伝える(('note:(Communicate by code)'))
    * 書く・読む・書く(('note:(Write, Read and Write)'))

メモ

自分が動く

# blockquote
成長したいなら、それも早く成長したいなら、すごい人と一緒になれる環境
に行きたいとか言っていちゃ遅いと思うんだ。

一緒にいるだけじゃそんなに変わらないよ。

同じ場所で一緒に同じものを作って、振りきられないように食い下がって付
いていくぐらいじゃないとどこでやったって同じだよ。

((‘tag:center’)) ((‘note:twitter.com/ktou/status/27342986390’))

自分が動くn((‘note:(YOU do it)’))

# blockquote
すごい人と一緒になれる環境に行きたいとか言っていちゃ遅いと思うんだ。

一緒にいるだけじゃそんなに変わらないよ。

((‘tag:center’)) ((‘note:twitter.com/ktou/status/27342986390’))

自分が動くn((‘note:(YOU do it)’))

# blockquote

同じ場所で一緒に同じものを作って、振りきられないように食い下がって付
いていくぐらいじゃないとどこでやったって同じだよ。

((‘tag:center’)) ((‘note:twitter.com/ktou/status/27342986390’))

書くn((‘note:(Write)’))

# blockquote
本を読んでるだけじゃいいコードは書けるようにならないよ。

実際にコードを書かないとわからないことがたくさんある。

((‘tag:center’)) ((‘note:twitter.com/ktou/status/222338170811977729’))

リーダブルコードの解説

(1) 実際にやる(('note:(Do it)'))
    * 書く(('note:(Write)'))
(2) 当たり前にする(('note:(Make natural)'))
    * ((*書く・読む*))(('note:(Write and Read)'))
(3) コードで伝える(('note:(Communicate by code)'))
    * 書く・読む・書く(('note:(Write, Read and Write)'))

書くn((‘note:(Write)’))

# blockquote
まわりのコードが汚くたって、自分も汚いコードを書いていい理由にはなら
ないんだよ。

((‘tag:center’)) ((‘note:twitter.com/ktou/status/10565574631’))

困ったらn((‘note:(If you get a trouble)’))

# blockquote
ふつうにコードを書いているとき、1時間に1回もコミットできなかったらそ
れは異常な状態だよね。

((‘tag:center’)) ((‘note:twitter.com/ktou/status/180249583304183808’))

相談するn((‘note:(Talk)’))

# blockquote
だれかに相談するとか気分転換するとか方向性を変えてみるとかした方がい
いよね。

((‘tag:center’)) ((‘note:twitter.com/ktou/status/180249583304183808’))

読むn((‘note:(Read)’))

# blockquote
お前ら、いいコードを書けるようになりたいんだったら、
少なくとも自分が関わっている
プロジェクトのコミットくらい全部読めよ!

((‘tag:center’)) ((‘note:twitter.com/ktou/status/195137471057633281’))

メモ

* レビュー依頼されたときだけ読むの?

レビューn((‘note:(Review)’))

* 間違いをいれないため?\n
  (('note:(Is it for blocking wrong codes?)'))
* 批判的な目で読む?\n
  (('note:(I can't translate it... :<)'))
* 言われてやるもの?\n
  (('note:(I can't translate it... :<)'))

コードを読むことn((‘note:(Reading code)’))

もっとたのしいものじゃないの?n ((‘note:(Is it joyful, isn’t it?)‘))

* この書き方知らなかった!\n
  いいなぁ!真似しよう!\n
  (('note:(Wow! I didn't know the feature! I'll use it!)'))
* おぉ!\n
  この機能欲しかったんだよ!\n
  (('note:(Cool! I realy like the new feature!)'))

リーダブルコードの解説

(1) 実際にやる(('note:(Do it)'))
    * 書く(('note:(Write)'))
(2) 当たり前にする(('note:(Make natural)'))
    * 書く・読む(('note:(Write and Read)'))
(3) コードで伝える(('note:(Communicate by code)'))
    * ((*書く・読む・書く*))(('note:(Write, Read, Write)'))

書くn((‘note:(Write)’))

# blockquote
私たちができることはコードを書くこと。

コードを通じて伝えられることは多いよ。

そんな当たり前のことを当たり前のように思い出した。

((‘tag:center’)) ((‘note:札幌Ruby会議02に行ってみて初心に帰った’))n ((‘note:adzuki34.blogspot.jp/2009/12/ruby02.html’))

書くn((‘note:(Write)’))

# blockquote
コードを書いているだけで人に影響を与えることができる人っているんだよ。

((‘tag:center’)) ((‘note:札幌Ruby会議02に行ってみて初心に帰った’))n ((‘note:adzuki34.blogspot.jp/2009/12/ruby02.html’))

リーダブルコードの解説

(1) 実際にやる(('note:(Do it)'))
    * 書く(('note:(Write)'))
(2) 当たり前にする(('note:(Make natural)'))
    * 書く・読む(('note:(Write and Read)'))
(3) コードで伝える(('note:(Communicate by code)'))
    * 書く・読む・書く(('note:(Write, Read and Write)'))

((‘tag:center’)) ((‘note:www.clear-code.com/blog/2012/6/11.html’))

解説へのコメント

# blockquote
読んだだけでその気になって終わらせるな。

世界を変えたいなら自分を変えろ。諦めることを拒み続けろ。

小さくとも具体的な行動をしろ。それはこうすることだ。

((‘tag:center’)) # ((‘note:id:habuakihiroのブクマコメント’))n ((‘note:b.hatena.ne.jp/habuakihiro/20120701#bookmark-97498594’))

道n((‘note:(Road)’))

# blockquote
よいプログラマへの道を歩き出したのなら、ともにその道を歩くものだと思っ
ています。

育ててあげるという考え方はやめることにしました。

((‘tag:center’)) ((‘note:twitter.com/ktou/status/6464335060’))

期待する世界n((‘note:(Expected world)’))

# blockquote
そうか、キレイなコードを書くことが当たり前の世界になって欲しいのかも
しれない。

((‘tag:center’)) ((‘note:twitter.com/ktou/status/170661011152572416’))

クリアなコードの作り方n((‘note:(How to make clear code)’))

((‘wait’)) We Code.n Period.n ((‘note:(以上)’))