質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
オブジェクト指向

オブジェクト指向プログラミング(Object-oriented programming;OOP)は「オブジェクト」を使用するプログラミングの概念です。オブジェクト指向プログラムは、カプセル化(情報隠蔽)とポリモーフィズム(多態性)で構成されています。

デザインパターン

デザインパターンは、ソフトウェアのデザインでよく起きる問題に対して、解決策をノウハウとして蓄積し再利用出来るようにした設計パターンを指します。

アジャイル

アジャイルは、 迅速かつ適応的に対応できるように、効率的なシステム開発 を行うための開発手法群の総称のことです。

意見交換

5回答

690閲覧

どちらの書籍がおすすめでしょうか?

easy_wipe

総合スコア0

オブジェクト指向

オブジェクト指向プログラミング(Object-oriented programming;OOP)は「オブジェクト」を使用するプログラミングの概念です。オブジェクト指向プログラムは、カプセル化(情報隠蔽)とポリモーフィズム(多態性)で構成されています。

デザインパターン

デザインパターンは、ソフトウェアのデザインでよく起きる問題に対して、解決策をノウハウとして蓄積し再利用出来るようにした設計パターンを指します。

アジャイル

アジャイルは、 迅速かつ適応的に対応できるように、効率的なシステム開発 を行うための開発手法群の総称のことです。

0グッド

0クリップ

投稿2024/04/19 12:32

以下2冊のどちらがおすすめでしょうか?

Adaptive Code ~ C#実践開発手法 第2版
アジャイルソフトウェア開発の奥義 第2版

質問者について

  • オブジェクト指向を用いた設計を学びたいプログラマ
  • 上記2冊の評判が大変良いため興味を持っている
  • Java、C#ともに経験あり
  • デザインパターンはTemplate MethodとSingletonくらいしか知らない初学者
  • アジャイル開発はDeveloperとして経験あり

期待していること

目次を見たところ内容が2冊とも似ており、決定的な違いは言語くらいの印象なので、「自身が業務で使用している言語が記載されている方の書籍を買えば良いのでは?」という漠然とした理由しか思い浮かばず...。なので、2冊それぞれに対する感想やおすすめ理由など、買うに至る他の理由を探しており、皆様の意見を頂戴したいです。
「2冊とも止めてこの本を買うべき」や「2冊とも買うべき」などの第三の意見も歓迎です。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

回答5

#1

ikedas

総合スコア4352

投稿2024/04/19 12:41

「はずれ」の本を読んでしまったからといって、購入費用以外に何か損をするわけではありません。

とりあえず読めるものはなんでも読めばいいのではないですか。その結果自分の「おすすめ」ができたのなら、読んだものはすべて無駄ではなかったということです。

そのときは、ここで回答として投稿してくださいね。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#2

AbeTakashi

総合スコア4551

投稿2024/04/19 13:47

その2冊両方読んだことがある人が果たしてこの世の中に何人いるか・・・ そしてその数少ない人の中でteratailをやってる人は何人いるでしょうか。そしてその中でこの質問に気付く人は・・・ もしかしたら両方読んだことある人から意見が出るかもしれませんが、ちょっと厳しい気がします。

質問をする場合は、回答者が答えやすいような質問にした方が良いと思います。今回の件でいれば、その2つの選択ではなく、「開発やアジャイルに関する本でのオススメはなんですか?」みたいな一般的な質問だと意見やアドバイスが出てくると思います(タイトルも含めて表現を工夫すると多くの人が見てくれると思います)。

ということで、質問内容からは多少それますが、買う本で悩むのなら、直接大きめの本屋に行ってちょっと立ち読みして自分に合ってる本かどうか吟味するのが一番です。人の感覚はそれぞれです。私も世間的に評価が良い本を買っても自分には合わないと思ったことがあるし、その逆のパターンもありました。

自分の場合は立ち読みで本屋さんに行くも面倒なので、Amazonのレビューを見て決めることがほとんどです。2冊の選択で悩んだときは両方買って、ぱらっとめくって両方読むこともあれば、両方ともほとんど読まずにメルカリに出すこともあります。時は金なりだと思ってるので、悩んでいる時間は損だと思う派です。金銭的に多少損をしても、それ以上に学ぶ量を増やせばプラマイゼロになるという感覚です。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#3

ikedas

総合スコア4352

投稿2024/04/19 23:51

編集2024/04/20 00:19

多くの本を読むには、公共図書館を利用するという手もあります。

お住まいの自治体には必ず公立の図書館があるはずです。読んでみたい本がその図書館の蔵書になくても、リクエストすれば購入して蔵書に加えてくれることもありますし、遠方の他の図書館にあるときは代わりに借りてくれたりもします。

公共図書館の利用は原則として無料で、各自治体またはその近隣の自治体に在住・在勤の人なら登録するだけで利用できます (館内閲覧だけなら通常は登録も不要です)。ただし、本を借りておける期間に期限がありますし、高価な本は帯出禁止で館内でしか読めなかったりすることはあります。

また蔵書検索だけなら、図書館に行かなくても図書館のサイトに行けばOPACで検索できますし、カーリルローカルのように地域横断検索できるサービスもあります。

図書館も利用してたくさんの本を読んで、最終的に自分の手元においておきたいものだけ自分で購入すればいいのではないでしょうか。

もうひとつの質問*の本についても同じです。


【追記】

プログラミング言語を学ぶ場合などは、仕様がしばしば更新されてほんの数年前の書籍でも役に立たないということが起きるので、図書館の利用はお勧めしないです。最新の書籍の情報を得るには、大きな書店へ行って立ち読みして読み比べてみるのがいいです (ネット書店などの「試し読み」はたいてい目次くらいしか読めないので駄目です)。

ご質問の本はプログラミング言語などと違ってより根本的・普遍的なテーマを扱っているため、少し前に出版された書籍でも内容が古びるということが少なく、図書館の蔵書で学ぶのには向いています (ただし、改訂版が出ている書籍でも図書館には前の版しか蔵書がないということはあります)。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#4

TakaiY

総合スコア12774

投稿2024/04/20 01:36

両方読んだことはありませんが、両方買って読むに一票です。

自分の目的に合うかどうかは自分にしかわからないし、同じような内容だとしても同じことが書いてあるわけではないので、それぞれ得るものがあるはずです。
そもそも、その分野の本を1冊だけ読んで全て理解するということはないので、いずれにしても複数の書籍にあたるべきでしょう。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#5

pecmm

総合スコア406

投稿2024/04/22 12:18

前提:.NETはあまり詳しくないので、『C#実践開発手法』の方には何も言及しません

>アジャイルソフトウェア開発の奥義 第2版

#3 でも触れられていますが、古すぎる書籍(に限らずブログ記事等含む)の情報は注意が必要です。

(私はこれを読んだことがないので目次やオンライン書評を流し見しただけでの評価になってしまいますが…)

目次だけを見て、全体的に「読むべきではない」と言うほどではなさそうですが
出版が2008年なので、注意が必要かなーと思います。

特にJavaにおけるGoF発のデザインパターンなどは、様々な事情で生まれたパターンが混ざっており

  • 「需要があってパターンとして流行った結果、言語のアップデートで標準に取り込まれたためパターンとすら認識されなくなた」
  • 「当時のJavaでコンパイル時型チェック等の支援&変更容易性や柔軟性を両立させるにはこうせざるを得なかった」

等、現在は別の実装方法が望ましくなったものは多々あります。

例えばSingletonといえば、いにしえの解説では「private staticな変数で唯一の変数を扱う」でしたが
現在は「通常の変数をDIコンテナ経由で初期化させ、設定値でインスタンスの数を制御」とした方がclassの記述がシンプルになるし継承等でも問題が起こりにくいしテスト観点でもモックに切り替えやすくて良い、とされます。

こういったパターンを「インスタンス数を制御することで課題解決に繋がったり、別の問題を抱えることになる」等の視点や知見を得るためという目的で学ぶことはよいですが
実装方法までまるっと覚えるのは逆に弊害になりかねません。

他にも例えばVisitorパターンが登場していますが
VisitorパターンはCompositeを走査できるような型安全かつ処理を拡張可能としたいパターンにはほぼ必須、instanceofswitchは力不足(単純な型しか扱えないとかComposite種類=型の追加時にコンパイルで検知できない)…みたいな扱いでしたが
最新のJava(ver21以降辺り)ではパターンマッチ導入やswitch式強化、さらにsealedと組み合わせることで簡潔かつ変更に強い記述ができるようになりました。

代替案…

じゃあ何を読めば良いのか?に関しては…
自分は古い書籍(当時はまだそこまで古典ではなかったもの)を読み、以降のアップデートを差分として蓄積して覚えていったので、残念ながらコレ1冊で~というのを知らずオススメはできません。
どちらかといえば雑誌やオンラインの記事を継続的につまみ食いするスタイルでした。

というわけですので、申し訳ないですが「読むのであれば気を付けてください」というやや後ろ向きなアドバイスしかできません。

オブジェクト指向で検索してもちょっとバズワード的に使われすぎててあまり良い結果が得られにくいので
「SOLID原則 書籍」でぐぐったら、『C#実践開発手法』と『Clean Architecture』『ちょうぜつソフトウェア設計入門』辺りが多くヒットしました。
『C#実践開発手法』も悪くない書籍なのかもしれません。
『Clean Architecture』の方は、ちょっと理想論すぎるとか賛否両論だった記憶があるので微妙かも?
『ちょうぜつソフトウェア設計入門』これはPHPらしいのでスコープ外?

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

この意見交換はまだ受付中です。

会員登録して回答してみよう

アカウントをお持ちの方は

関連した質問