プログラミングを覚えてきたら、オブジェクト指向設計を学ぶのがおすすめです。
なぜなら、これまで汚いコードを書いてきて痛い目にあってきたからです!
上司やリーダーは気軽に言うんですよ、
「ちっちゃい修正だからさ!すぐ直せるでしょ!」
う、、、あ、、、うーん。。。
そうっすねー、、、っとコードを見つめる自分。
自分で書いたコードとはいえ、xxxを修正したらyyyも修正しなければなんないしー、、、っと考え始めます。
ほんとオブジェクト指向を学んだあとだからこそ、あそこで関数やクラスを疎結合にしとけばよかったな、あーしけばよかったなと思い返されることが多くありました。
オブジェクト指向設計を頭に入れてコーディングすると、修正がしやすくなり数ヶ月後の自分が幸せになります。
なのでオブジェクト指向設計を学ぶことをオススメします。
Java言語で学ぶデザインパターン入門
- 作者: 結城浩
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2004/06/19
- メディア: 大型本
- 購入: 51人 クリック: 762回
- この商品を含むブログ (397件) を見る
javaを学び始めたころ、オブジェクト指向設計の良さがわかりませんでしたが。
便利さがよくわかりました。
suganoo.hatenablog.com
現場で役立つシステム設計の原則
現場で役立つシステム設計の原則 〜変更を楽で安全にするオブジェクト指向の実践技法
- 作者: 増田亨
- 出版社/メーカー: 技術評論社
- 発売日: 2017/07/05
- メディア: Kindle版
- この商品を含むブログ (4件) を見る
やっぱり日本語で説明してあるのはわかりやすいです。
より実践的な解説なのがいいです。
suganoo.hatenablog.com
なぜ、あなたはJavaでオブジェクト指向開発ができないのか
なぜ、あなたはJavaでオブジェクト指向開発ができないのか―Javaの壁を克服する実践トレーニング
- 作者: 小森裕介,アクロクエストテクノロジー株式会社
- 出版社/メーカー: 技術評論社
- 発売日: 2004/12/01
- メディア: 単行本
- 購入: 10人 クリック: 217回
- この商品を含むブログ (50件) を見る
初学者に理解してもらおうとする趣向があり、これを最初に読むのがいいかもしれません。
オブジェクト指向設計実践ガイド
オブジェクト指向設計実践ガイド ?Rubyでわかる 進化しつづける柔軟なアプリケーションの育て方
- 作者: Sandi Metz
- 出版社/メーカー: 技術評論社
- 発売日: 2016/09/02
- メディア: Kindle版
- この商品を含むブログ (6件) を見る
どういう考えで改善していけばいいかを説明してくれるのがいい。
ただ文章がだらだら長いのが難点。Rubyやってる人にはおすすめです。
suganoo.hatenablog.com
番外編
オブジェクト指向設計っと言うわけではありませんが下記の本もオススメです。
リファクタリング
新装版 リファクタリング―既存のコードを安全に改善する― (OBJECT TECHNOLOGY SERIES)
- 作者: Martin Fowler,児玉公信,友野晶夫,平澤章,梅澤真史
- 出版社/メーカー: オーム社
- 発売日: 2014/07/26
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (11件) を見る
立ち読みしたとき、あーこう言う書き方すればいいのかー!と感心してしまいました。
ちょっと高かったので数日考えたあと買ってしまいましたが、やっぱ買ってよかった本です。
毎年エンジニアが選ぶ技術書ランキングとかどこかが発表してますが、なんでこれが10位以内に入らないのかちょっと理解できないです。。。
suganoo.hatenablog.com
リーダブルコード
リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)
- 作者: Dustin Boswell,Trevor Foucher,須藤功平,角征典
- 出版社/メーカー: オライリージャパン
- 発売日: 2012/06/23
- メディア: 単行本(ソフトカバー)
- 購入: 68人 クリック: 1,802回
- この商品を含むブログ (140件) を見る
ソースコードが読みやすくなります。
かなりおすすめです。
あれこれ書評記事書いてなかったかぁ。
おまけ
読んでみたい本
読んでないけど気になってる本も紹介します。
(読んでないのに紹介すんなよとか言わないでね、ごめんなさい)
本屋で立ち読みしましたが内容が良さそう。ただページ数がむちゃくちゃ多い。凶器としても使えそうです。
オブジェクト指向入門 第2版 原則・コンセプト (IT Architect’Archive クラシックモダン・コンピューティング)
- 作者: バートランド・メイヤー,酒匂寛
- 出版社/メーカー: 翔泳社
- 発売日: 2007/01/10
- メディア: 単行本(ソフトカバー)
- 購入: 11人 クリック: 307回
- この商品を含むブログ (132件) を見る
アジャイルソフトウェア開発の奥義 第2版 オブジェクト指向開発の神髄と匠の技
- 作者: ロバート・C・マーチン,Robert C. Martin,瀬谷啓介
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2008/07/01
- メディア: 単行本
- 購入: 18人 クリック: 586回
- この商品を含むブログ (64件) を見る
エリック・エヴァンスのドメイン駆動設計 (IT Architects’Archive ソフトウェア開発の実践)
- 作者: エリック・エヴァンス,今関剛,和智右桂,牧野祐子
- 出版社/メーカー: 翔泳社
- 発売日: 2011/04/09
- メディア: 大型本
- 購入: 19人 クリック: 1,360回
- この商品を含むブログ (131件) を見る
伊藤淳一さんの記事
伊藤淳一さんの記事に、「10年たっても役立つ技術書17選」として紹介されています。
これ、ほんと参考になります。
blog.jnito.com
まとめ
自分の経験からなんですが、ソースコードって書いた瞬間から公共のものになると考えた方がいい。
「俺だけ使うちょっとしたコードだから適当でいいや。」
「誰かに使ってもらうことを想定してねーしー」
なんて思ってませんか?
俺は思っていました。
たまたまログを集計して描画するツール的なスクリプトを書いていたんですが、「ちょっと便利だな使わせてくれよ」って別の部署にも流用されることになったことがあります。
そのコードはオラーっと適当に書いてたんですがmain関数に全処理をさせてしまうというもの!
まあ俺だけが使うからいいかーっと思ってたんですが、他人も読むことになってしまい、めちゃくちゃ恥ずかしい思いをしたのとメンテナンスが(自分も他人も)大変になってしまいました。
その時以来どんなに小さなスクリプトであってもコードのみやすさやメンテナンス性に気を配るようになりました。
設計上手くなりたいですよね。共々に頑張りましょう。