「リーダブルコード」が良書すぎて胃が痛い

インフラ系のエンジニアは、あまりリファクタリングとかクラス構造といった視点でコードを読む機会が少なくて、勢い作ったスクリプトやツールはそれはそれはひどいものになりがちです(体験談)。

僕もエンジニアになって以来、まともなコードなんか書いたことなくて、従ってる原則といえば、「グローバル変数は悪」とか「短いことはいいことだ」とか「コメントは書かない方がいい」とか、なんか学生の時にたまたま目にしたよくわからない何かに従ってる程度。

少し大きい規模を書き始めると、昨日の自分と今日の自分で命名規則が全然一貫性なくて、「getHoge()」と「makeFuga()」がおんなじようなことをやってたりしていつも嫌悪感に駆られてました。

ちょうど1000行くらいのアプリ書いてたところだったので毎日吐き気をこらえながら「まずは動くものをつくるんだ。全てはそれからだ」と言い聞かせて汚いコードをゲロゲロしてたところで目に入ってきたのが「リーダブルコード」。幸運にもオライリー社様から献本を頂いたのですが、とても自分は献本して頂く様な身分ではないので自腹でも購入しております。(ちなみに献本分は著名なハッカーさんにお渡して書評をお願いしてます!)

こちらは原著のリンク。Kindleで買われる方はこちらをどうぞ。

この本に溢れていたのは、僕みたいな三流エンジニアがいつも感じる、ハッカーのコードを読んだ時の「読みやすい、すごい」の源泉を垣間見せてくれるいくつかの原則でした。

もうね、読んでて胃が痛くなってくるし目眩してくるし、今まで書いたコード全部書き直したくて泣きそうになりました。

  • tmpとかretvalとかしょっちゅう書いてますごめんなさい。
  • 三項演算子並べて俺かっこいいとか思ってますごめんなさい。
  • コメント書かないくせに関数の名前がpreprocessHoge()とかイミフでごめんなさい

普通のプログラマは当たり前の様にこういうことに気をつけて書いてるんだなぁということを懇切丁寧に僕みたいな素人にも分かる様に書いてくれていて、本当に素晴らしい本だと思いました。

もう書いちゃったコードを今更全部きれいにすることはすぐにはできないですが、これから書くコードはこの本から学んだことを最大限活かして、リーダブルコードを書きたいと思います。とても全部覚えられるほど頭良くないので、手元にいつも置いておこうと思います。

著者のDustin/Trevorはもちろん、素晴らしい翻訳をして頂いた角さんに感謝!僕もこんな翻訳がいつか書けるようになりたいです。ちなみに角さんといえばこちらの翻訳も有名ですね!持ってない方はこの機会にぜひ!

おわりに

@lamanotramaさんがつぶやいてたのですが、

インフラ系のエンジニアって意外とこういう方多いんじゃないかなぁと思います(僕もそうです)。だから余計にコードを書くのが億劫になってしまう。

まずはリーダブルコード片手に、読みやすいスクリプトを書き始めてみてはいかがでしょうか!!!!