オブジェクト指向設計を学ぶためにオススメの本

f:id:suganoo:20180831233953p:plain

プログラミングを覚えてきたら、オブジェクト指向設計を学ぶのがおすすめです。

なぜなら、これまで汚いコードを書いてきて痛い目にあってきたからです!

上司やリーダーは気軽に言うんですよ、

「ちっちゃい修正だからさ!すぐ直せるでしょ!」

う、、、あ、、、うーん。。。

そうっすねー、、、っとコードを見つめる自分。

自分で書いたコードとはいえ、xxxを修正したらyyyも修正しなければなんないしー、、、っと考え始めます。

ほんとオブジェクト指向を学んだあとだからこそ、あそこで関数やクラスを疎結合にしとけばよかったな、あーしけばよかったなと思い返されることが多くありました。

オブジェクト指向設計を頭に入れてコーディングすると、修正がしやすくなり数ヶ月後の自分が幸せになります。

なのでオブジェクト指向設計を学ぶことをオススメします。

Java言語で学ぶデザインパターン入門

増補改訂版Java言語で学ぶデザインパターン入門

増補改訂版Java言語で学ぶデザインパターン入門

これはほんとおすすめです。
javaを学び始めたころ、オブジェクト指向設計の良さがわかりませんでしたが。
便利さがよくわかりました。
suganoo.hatenablog.com

現場で役立つシステム設計の原則

これもすごくおすすめです。
やっぱり日本語で説明してあるのはわかりやすいです。
より実践的な解説なのがいいです。
suganoo.hatenablog.com

なぜ、あなたはJavaでオブジェクト指向開発ができないのか

なぜ、あなたはJavaでオブジェクト指向開発ができないのか―Javaの壁を克服する実践トレーニング

なぜ、あなたはJavaでオブジェクト指向開発ができないのか―Javaの壁を克服する実践トレーニング

ちょっと古い本ですが、これもわかりやすかったです。
初学者に理解してもらおうとする趣向があり、これを最初に読むのがいいかもしれません。

オブジェクト指向設計実践ガイド

改善前のコードと改善後のコードがあって理解しやすい。
どういう考えで改善していけばいいかを説明してくれるのがいい。
ただ文章がだらだら長いのが難点。Rubyやってる人にはおすすめです。
suganoo.hatenablog.com

番外編

オブジェクト指向設計っと言うわけではありませんが下記の本もオススメです。

リファクタリング

新装版 リファクタリング―既存のコードを安全に改善する― (OBJECT TECHNOLOGY SERIES)

新装版 リファクタリング―既存のコードを安全に改善する― (OBJECT TECHNOLOGY SERIES)

立ち読みしたとき、あーこう言う書き方すればいいのかー!と感心してしまいました。
ちょっと高かったので数日考えたあと買ってしまいましたが、やっぱ買ってよかった本です。

毎年エンジニアが選ぶ技術書ランキングとかどこかが発表してますが、なんでこれが10位以内に入らないのかちょっと理解できないです。。。
suganoo.hatenablog.com

リーダブルコード

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

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

  • 作者: Dustin Boswell,Trevor Foucher,須藤功平,角征典
  • 出版社/メーカー: オライリージャパン
  • 発売日: 2012/06/23
  • メディア: 単行本(ソフトカバー)
  • 購入: 68人 クリック: 1,802回
  • この商品を含むブログ (140件) を見る
これも定評高いですね。
ソースコードが読みやすくなります。
かなりおすすめです。

あれこれ書評記事書いてなかったかぁ。

おまけ

読んでみたい本

読んでないけど気になってる本も紹介します。
(読んでないのに紹介すんなよとか言わないでね、ごめんなさい)

本屋で立ち読みしましたが内容が良さそう。ただページ数がむちゃくちゃ多い。凶器としても使えそうです。

オブジェクト指向入門 第2版 原則・コンセプト (IT Architect’Archive クラシックモダン・コンピューティング)

オブジェクト指向入門 第2版 原則・コンセプト (IT Architect’Archive クラシックモダン・コンピューティング)

アジャイルソフトウェア開発の奥義 第2版 オブジェクト指向開発の神髄と匠の技

アジャイルソフトウェア開発の奥義 第2版 オブジェクト指向開発の神髄と匠の技

  • 作者: ロバート・C・マーチン,Robert C. Martin,瀬谷啓介
  • 出版社/メーカー: SBクリエイティブ
  • 発売日: 2008/07/01
  • メディア: 単行本
  • 購入: 18人 クリック: 586回
  • この商品を含むブログ (64件) を見る
エリック・エヴァンスのドメイン駆動設計 (IT Architects’Archive ソフトウェア開発の実践)

エリック・エヴァンスのドメイン駆動設計 (IT Architects’Archive ソフトウェア開発の実践)

伊藤淳一さんの記事

伊藤淳一さんの記事に、「10年たっても役立つ技術書17選」として紹介されています。
これ、ほんと参考になります。
blog.jnito.com

まとめ

自分の経験からなんですが、ソースコードって書いた瞬間から公共のものになると考えた方がいい

「俺だけ使うちょっとしたコードだから適当でいいや。」
「誰かに使ってもらうことを想定してねーしー」

なんて思ってませんか?

俺は思っていました。
たまたまログを集計して描画するツール的なスクリプトを書いていたんですが、「ちょっと便利だな使わせてくれよ」って別の部署にも流用されることになったことがあります。

そのコードはオラーっと適当に書いてたんですがmain関数に全処理をさせてしまうというもの!

まあ俺だけが使うからいいかーっと思ってたんですが、他人も読むことになってしまい、めちゃくちゃ恥ずかしい思いをしたのとメンテナンスが(自分も他人も)大変になってしまいました。

その時以来どんなに小さなスクリプトであってもコードのみやすさやメンテナンス性に気を配るようになりました。

設計上手くなりたいですよね。共々に頑張りましょう。