こんにちは、ニュージーランドで働くプログラマのはっしー(@hassy_nz)です。
クラスとかプライベート/パブリックとかの用語はわかったけど、仕事でどう使えばいいの?
実際の現場で、オブジェクト指向を活用する方法が知りたい!
今日は、そんな悩みを抱える人にオススメな参考書を紹介します!
それが『Practical Object-Oriented Design in Ruby』。
2012年に発売されて以来、プログラミングの本質を伝える歴史的名著として世界中で広く読まれている技術書です。
……大丈夫、ご安心ください。
2016年に日本語版も発売されています!
この本を読むと、こんな知識や技術が身につきます。
- オブジェクト指向を効果的に使う方法
- 保守しやすく、拡張しやすいソフトウェアデザインの考え方
- 「このコードはイマイチだな」と見抜くのに必要な感覚
それでは、内容の詳しい紹介をしていきましょう!
……なお、僕が読んだのは原著ですので、以下の内容は基本的に英語版に基づいております。ご了承ください。
イマイチなコードを美しく書き直していく本
『Practical Object-Oriented Design』は、イマイチなコードを美しく書き直していくという構成で作られています。
「イマイチ」というのはつまり「理解しづらく、変更もしづらい」って意味です。
ソフトウェア開発の現場では、毎日のように既存コードへの変更が発生しています。
もしあなたのコードがオブジェクト指向だのなんだのそっちのけで、とりあえず今動いときゃいいレベルでしかなかったとしたら……
なにか変更が起きるたびに「壊れるんじゃないか」「動かないんじゃないか」「今すぐ消えたい」とビクビクし続けることになります。
日々の不安から開放され、楽しくプログラミングを続けるために必要な知識のひとつがオブジェクト指向なのです。
仕様が変わったとしても、ちょいと数行書き直すだけで、ほかの部分を壊すことなく機能を実装できる。
プログラミング言語の文法だけ知っていても、そんなきれいなコードは書けません。
『Practical Object-Oriented Design』を読むと、実際の現場でも安定して動く、美しいコードを書くための知識が身につきます!
この本のいいところは、初心者でもなんとな〜くイマイチだなと感じるような絶妙のレベル設定になっていること。
章が進むたびに「なるほどー!こう書けばキレイになるのかー!」と感動できるんですよ。
何度も何度も「なるほどー!」を繰り返すことで、頭と心の両方でオブジェクト指向の真髄を学べる一冊なのです。
ちなみに、サンプルコードはRubyで書かれていますが、Rubyの経験がなくても大丈夫。
JavaやC#など、オブジェクト指向の言語を使った経験があれば問題なく理解することができます。
ベルリンで働く凄腕プログラマも推薦する一冊
僕がこの本を読んだきっかけは、ジャバ・ザ・ハットリさんという凄腕プログラマのブログ記事でした。
参考▶ 英語とプログラミングを同時に勉強するなら「Practical Object-Oriented Design in Ruby」の一択
ジャバ・ザ・ハットリさんはベルリンのスタートアップ企業で働いている方です。
最近では機械学習を用いた映画ブログまとめサイトをリリースするなど、積極的に技術情報を発信されています。
彼がブログ記事で推薦していたのが『Practical Object-Oriented Design』なんです。
「今まで読んだ本の中でこれ以外にオススメできる本を私は知らない」とまで書かれていました。
彼ほどのプログラマが言うなら間違いないだろう……と考えて僕も買ったんですけど、期待に違わず大当たりでしたね!
どうせ技術書を買うなら、古くならない情報を買おう
プログラミング関連の技術書は割と高くて、1冊2000円とか3000円とか平気でしちゃうんですよね。
だからこそ、長く使えて古くならないものを選びたいもの。
言語やフレームワークの参考書は、数年経つとバージョンアップが起きてサンプルコードが動かなくなったり、フレームワークそのものが古びてしまって役に立たなくなったりと、賞味期限がとても短いです。
『Practical Object-Oriented Design』の情報は、この先10年は古くなりません。
オブジェクト指向に基づいたきれいなコードの書き方を学べば、プログラミング言語やフレームワークによらず、幅広い現場で使える知識になります。
デスクの上に置いておいて、何度も読み返すことのできる本です!
はじめまして。私もプログラマとして海外移住を目指しており、はっしーさんのブログはほぼ読ませていただきました。
組み込みソフトウェア(デバイス制御)で数年と、Webシステムのプロマネ経験が数年ありまして、現在はWebアプリが作れるようになるために自己学習中です。
ちょうど数日前にジャバ・ザ・ハットリさんのブログを拝見して「オブジェクト指向設計実践ガイド」を購入したところでしたので、読むのが楽しみです。
個人的には、「オブジェクト指向でなぜつくるのか(日経BP社)」も良かったです。
ニュージーランドでの活躍、応援しております。
なんと……! うれしいメッセージをありがとうございます。
これからもNZでがんばります〜!
@hero_sthg_stfl さんも海外移住目指してがんばってください!!