Tatehito's Programming Blog

Rails / Ruby / 競プロ / 技術書記録 / ガジェット / その他もろもろ。現役プログラマがIT系記事を書くブログです。

技術書は業務環境や状況に合わせて、読み方を変えるべき

リーダブルコードを読み直した

プログラマー、コーダーの必読本とも言われている『リーダブルコード』を読み直しました。

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)

  • 作者: Dustin Boswell,Trevor Foucher,須藤功平,角征典
  • 出版社/メーカー: オライリージャパン
  • 発売日: 2012/06/23
  • メディア: 単行本(ソフトカバー)
  • 購入: 68人 クリック: 1,802回
  • この商品を含むブログ (140件) を見る

『リーダブルコード』は、より読みやすく、より理解しやすい、よりキレイなコードを書くためのTipsが詰め込まれているオライリーの技術書です。

約1年前、フリーランスのエンジニアになる直前にも読んだのですが、その時は「なるほど、たしかにこう書けば読みやすいな」と感じる部分がある一方で、すべてのTipsに対して「うんうん」と頷くことができませんでした。

ところが1年間プログラマーとして働いてから読み直してみると、頷き過ぎて首が痛くなるくらい(笑)内容に共感でき、日々の業務に直接的に活かせる超良書じゃないか、と改めて感じています。

ということで今回は、「技術書は業務環境や状況に合わせて読み方を変えていくべきだ」という当たり前の気づきを、体験談を踏まえて書いてみたいと思います。

品質の悪いコードを読んで初めてコードの品質がわかるようになった

僕はこの業界に入ってからそれなりの年数が経ちますが、コードを読み書きしていたのはトータル3年くらい。それも、そのほとんどの期間を同一チーム、同一システムの担当として過ごしました。

当時担当していたシステムのコードは、今思えば読みやすいキレイなコードでした。コードだけでなく設計書もきちんとメンテされてましたし、コードやテスト仕様書のレビューをきっちり行うなど、開発体制もしっかりしていました。

そういう比較的「ちゃんとしてる」環境で育ったので、僕の中では「キレイなコード」が当たり前、という意識が根付いていくことになります。(その後の数年間はコードに触れることがなくなり、いわゆる人の管理やエクセルいじりを主とする業務に携わっていました)

プログラマーになってからのこの1年間はどうだったのかと言うと、お世辞にもキレイなコード、良いコードとは呼べないコードたちとお付き合いしてきました。

処理のまとまりで段落を分けるという気配りができていない、if文のネストがめちゃくちゃ深い、一見まったく同じコードのファイルが3つ(よく見ると違う)ある、ハンガリアン記法で変数名が定義されている、などなど......。

10年以上引き継がれ保守されてきたシステムなので仕方ない部分もあるのですが、さすがにひどい!

ただ、そんなコードを読みまくっていたおかげで、以前は特に印象に残らなかった『リーダブルコード』のTipsがぶっ刺さり、良いコードと悪いコードの区別が付くようになりました。

「品質の悪いコードを扱う経験 + リーダブルコード」がセットになって初めて、コーディングスキルの向上につながったと感じています。

ガッツリ読むか、サラッと読むか

今回の件から得た気づきは、「イメージしずらい技術知識は頭に入りにくい(定着しにくい)から、技術書は業務環境や状況に合わせて読み方を変えていくべきだ」ということです。

たとえば野球のテクニックについて書かれた本をプログラマーである僕が読んでも、「へー」と思うだけで終わりです。僕は真面目に野球をやったことがないので、そのテクニックを自分に適応させた姿がイメージできないためです。(野球が上手くなりたい、とも思ってないし。)

野球とプログラマーの例は極端すぎますが、今回の僕の例のように「品質の低いコードを読む経験していない」プログラマーにとっては、良いコードを書くためのTipsを読んでも、(品質の悪いコードを知っているプログラマーに比べると)自身のスキルに大きなインパクトを与えません。

とはいえ経験のない技術知識を身に着けることは大事だし、様々な技術書を読むのは悪いことではないです。なので、今の自分の業務や取り組みに直接関係のない技術に関しては「完璧に理解しようとせず、サラッと読む」のが良いのかなと思ってます。

理解できないとついムキになってしまうことがありますが、そこはグッと抑えて概要だけを把握して、「この本に書いてあった」ことだけ覚えておけばOKなのかなと。今の自分に関係のない技術より、今必要としている技術のキャッチアップを優先した方がスキルアップにつながる気がします!

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)

  • 作者: Dustin Boswell,Trevor Foucher,須藤功平,角征典
  • 出版社/メーカー: オライリージャパン
  • 発売日: 2012/06/23
  • メディア: 単行本(ソフトカバー)
  • 購入: 68人 クリック: 1,802回
  • この商品を含むブログ (140件) を見る