まえがき
こんにちは、きりみです。
ドヤ顔で前の記事書いてから1年近く放置してました。
昨日寿司食べながら@rokudenashiに話した話が自分の中で面白かったので、たまにはブログを書こうと思います。
本題
私はコーディングが大好きです。
コードを書くのも見るのも好きです。
出来ることならば仕事でOfficeを操作してる時間を80%程削減してその分毎日コーディングが出来たらなぁと思ってます。
だけど学校に通って頭を抱えながら課題をでっち上げていた頃はそこまでコーディングが好きだったわけじゃありませんでした。
プログラミング全体にはとても興味があっても、いざコーディングをするとすぐに頭がぐちゃぐちゃになっちゃうし、自分の書いてるコードがいいのか悪いのかも分からないし、いつも「あーなんかとりあえず動いたけど多分いいコードじゃないんだろうなー」とかモヤモヤしていました。
そしてそれは仕事を始めてからも同じでした。
そんな時にある本に出会いました。
リーダブルコードです。
リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)
- 作者: Dustin Boswell,Trevor Foucher,須藤功平,角征典
- 出版社/メーカー: オライリージャパン
- 発売日: 2012/06/23
- メディア: 単行本(ソフトカバー)
- 購入: 68人 クリック: 1,802回
- この商品を含むブログ (117件) を見る
この本では、読みやすく美しいコードを書くための実践的なテクニックが分かりやすく解説されています。
私はこの本を読んで衝撃を受けました。
リーダブルコードで書かれている事は恐らく普通のプログラマならば当たり前にやっているような基本的で、よく耳にするような事ばかりです。
例えば、メソッドは短く分けるだとか、メソッドの再利用性を高めるだとか、分かりやすい変数名を付けるだとか、ネストが深くなり過ぎないようにするだとか。
でも、私はこの本を読むまでそれらの言葉がいまいちピンと来ませんでした。
「メソッドを分けると何がいいの?」「どうすれば再利用性の高いメソッドになるの?」「分かりやすい変数名ってどんなの?」「ネストを深くしないって無理じゃない?」
そんな風に思っていました。
しかしリーダブルコードではこれらの曖昧な「いいコード像」について、具体的でとても分かりやすく解説しているのです。
例えば、変数名に関しては「その変数名を見ただけで何の変数なのか理解出来るようにする」「誤解されないようにより具体的な単語を選ぶ」「短い名前より分かる名前にする」等の事が具体的な命名例や悪い名前を付けた時の危険性なども交えて解説しているのです。
また、「スペースを入れて縦の列を揃える」「乱雑な式を一旦変数として名前を付ける」等の例は本当にちょっとした工夫なのに見違えるほどコードが見やすくなり驚きました。
リーダブルコードを読んでからは、コードを見ると「もっと綺麗なコードに出来ないか」といつも考えるようになりました。
そして、コードを見るのが好きになりました。
ちょっとした工夫でとても見やすくなったコードを見て、自分のコードが好きになれたのです。
コードが見やすくなり適切な設計になるにつれて、書いたコードがすぐに動かない事や一体どこのコードが悪さをしているのか見当もつかないような事が少なくなり、コーディングをしていて頭を抱える事も少なくなりました。
するとますますコーディングが楽しくなってきます。
そして「いいコード」のイメージが掴めた事で、今までいまいち分かっていなかったオブジェクト指向がとても魅力的に思え、クラスやメソッドの設計を考えるのがとても楽しくなりました。
更に言語やライブラリの設計思想などにも興味が持てるようになったのです。
(この辺りの過程は大分省略しています)
とにかく、コーディングへのモヤモヤが晴れ、一気に色々な事が分かるようになるきっかけとなった本が、リーダブルコードだったのです。
私は子供の頃から絵が上手くなりたいと思っていて、不定期に絵の練習をしたりするのですが、「上手い絵が描きたい」という気持ちはあっても、絵を描く事自体には実はなかなか夢中になれず、モヤモヤした「上手く出来ない」という気持ちがいつもあります。
きっと、絵を描く事や、その他の色々な事にも、コーディングが突然楽しくなったような「分かる」瞬間があるんじゃないかなぁと思うのです。
そういうものを、たくさん見つけられたらいいなぁ。
おわり。