カロリーメイトください

Barbaroi Ware(バルバロイ・ウェア)という名前でアプリ開発してます

【感想】『リーダブルコード』読了

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

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

序文

巷で評判の「リーダブルコード」の学習が終了しましたので感想を記載しておきます。

10日ぐらいでさらっと取り組みました。

取り組んだ動機

とにかくいろんなところで同書の良い評判を聞いていたので、1回読んでおかなきゃなーと思っていたことと、日々ソースコードを書く中で、「ここはこういう書き方で正しいのだろうか?」とか「目的を実現する方法がいくつかあるけれど、どれを選択すべきなのだろう?」など迷うことがあり、そういう時の判断の指針を得られればと思い、本書に取り組みました。

www.techbookrank.com

学習方法

14章までを順番におおよそ1日1章ペースで取り組みました。
私の技術力的に高度だと判断したため15章『「分/時間カウンタ」を設計・実装する』は取り組んでいません。
C++難しいです。(--〆)

とりあえず結論

  • あまり類書がない内容の書籍のため、そういう意味では有益
  • ただし劇的にコードが改善されるような知見や明確な指針を与えてくれるような書籍ではないとも思う
  • 翻訳本らしい不親切な部分も感じられる

おすすめ度:★★★★☆ 難易度:★★☆☆☆

あまり類書がない内容の書籍のため、そういう意味では有益

表題のとおりですが、特定の技術でなくソースコードの書き方に的を絞った内容の書籍というのが珍しいかと思いますので、一読する価値はあると思います。
自身の書いてきたソースコードへの考え方を見直すのに良い機会を与えてくれると思います。

内容としては書籍全体が大きく4部に分けられており、

第Ⅰ部では変数の命名やコメントの書き方などの表面的な改善、
第Ⅱ部ではif、while、スコープなど制御文まわりのコードの改善、
第Ⅲ部では下位問題を解決する関数の切り出しやライブラリの利用など関数まわりのコードの改善、
第Ⅳ部は総まとめとして、テストコードやカウンタを題材とした実践的なコードの改善を学習します。

第Ⅰ部の内容は英語と日本語の環境の違いから疑問に思うところもありましたが、第Ⅱ部以降の内容はおおむね納得できるものではないかと思います。
後述するようにいくつか不親切に感じる部分もありましたが、それほど高度な知識は求められず、またエッセイ風の文体もあいまって気軽に読み進めていくことができると思います。

何より現実的にもはや本書がソースコードを書く時のバイブル的な役割を担っている部分があるかと思いますので、レベルを問わず一度は目を通しておく価値のある書籍だと思います。

劇的にコードが改善されるような知見や明確な指針を与えてくれるような書籍ではない

私個人の問題と言われると返す言葉もないのですが、ただこれを読んだからといって劇的に書くコードが改善されるということはないかなぁとも感じています。

例えば私はこの本に取り組む前に、
生成したオブジェクトに初期データを持たせるには

  • コンストラクタ内でオブジェクト生成時にデータを持たせる
  • Getメソッド内で必要なデータを与えたオブジェクトを生成して返す
  • Setメソッドに空のオブジェクトを与えてデータをセットする

などの内、どの方法を使うべきなのだろうか?という疑問があったのですが、残念ながら本書では回答を得ることはできませんでした。
(例がわかりにくかったらごめんなさい)

また、ソースコードを書いていくうちに自然に身につくような内容も多く、いくつかのトピックについては「あぁやっぱりこれでよかったんだ」と多少自信を持つことはできましたが、反面「そうか!こう書くべきだったのか!」と驚きを持って得られるような内容はさほどありませんでした。

ある意味期待しすぎていたのかもしれません。

翻訳本らしい不親切な部分も感じられる

おそらく本書は初心者にも取り組みやすい内容として執筆されたものだと思うのですが、その割には不親切に感じる部分もありました。

まず扱う内容が多岐にわたるゆえか、C、JavaScriptPythonC++など様々なプログラミング言語ソースコードが実例として扱われています。
もちろん意図あってのこととは思いますが、特にC++に習熟している学習者はそれほど多くないと思いますので、初心者向けの内容としては不親切かなと感じます。

また、(特に第Ⅰ部は)英語環境と日本語環境で適切な解が異なってくる部分もあると思いますので、内容をそのまま飲み込むのではなく、自分なりに咀嚼して理解するべきであるようにも感じました。

あとは些細な部分ですが、目次の章立てに一貫性がなくて気持ち悪いです。(笑)
(『例:~』ではじまる題が見出しになっていたり、見出しの中の項目名になっていたりする)

個人的な希望としては、日本のライターの方に日本語学習者の環境に配慮した同趣旨の書籍を執筆していただけると、かゆいところに手が届く内容になるんじゃないかなぁという気がしています。

あ、あとちょっと内容に比してのコストパフォーマンスが気になるかなぁ。

カロリーメイトください。

BGM

SEE YA!!! / KOZ

www.youtube.com