この商品は選択したお届け先には発送できません。別のお届け先を選択してください。
次に追加されました:

申し訳ありません。問題が発生しました。

ウィッシュリストの取得中にエラーが発生しました。もう一度やり直してください。

申し訳ありません。問題が発生しました。

リストを利用できません。
Kindleアプリのロゴ画像

無料のKindleアプリをダウンロードして、スマートフォン、タブレット、またはコンピューターで今すぐKindle本を読むことができます。Kindleデバイスは必要ありません

ウェブ版Kindleなら、お使いのブラウザですぐにお読みいただけます。

携帯電話のカメラを使用する - 以下のコードをスキャンし、Kindleアプリをダウンロードしてください。

KindleアプリをダウンロードするためのQRコード

  • 良いコード/悪いコードで学ぶ設計入門 ―保守しやすい 成長し続けるコードの書き方

著者をフォロー

新刊とおすすめタイトルの情報を入手
何か問題が発生しました。後で再度リクエストしてください。

良いコード/悪いコードで学ぶ設計入門 ―保守しやすい 成長し続けるコードの書き方

5つ星のうち4.4 (629)

良いコードが書けるようになる、ソフトウェア設計の入門書

「ITエンジニア本大賞2023」技術書部門で大賞受賞!

本書は、より成長させやすいコードの書き方と設計を学ぶ入門書です。

システム開発では、ソフトウェアの変更が難しくなる事態が頻発します。
コードの可読性が低く調査に時間がかかる、
コードの影響範囲が不明で変更すると動かなくなる、
新機能を追加したいがどこに実装すればいいかわからない……。
変更しづらいコードは、成長できないコードです。
ビジネスの進化への追随や、機能の改善が難しくなります。

成長できないコードの問題を、設計で解決します。

(こんな方におすすめ)
・ コードの設計スキルに興味がある人
・ 日々、悪いコードと向き合っていて改善したい人
・より良いコードを書きたい人

(目次)
1 悪しき構造の弊害を知覚する
1.1 意味不明な命名
1.2 理解を困難にする条件分岐のネスト
1.3 さまざまな悪魔を招きやすいデータクラス
1.4 悪魔退治の基本

2 設計の初歩
2.1 省略せずに意図が伝わる名前を設計する
2.2 変数を使い回さない、目的ごとの変数を用意する
2.3 ベタ書きせず、意味のあるまとまりでメソッド化
2.4 関係し合うデータとロジックをクラスにまとめる

3 クラス設計 ―すべてにつながる設計の基盤―
3.1 クラス単体で正常に動作するよう設計する
3.2 成熟したクラスへ成長させる設計術
3.3 悪魔退治の効果を検証する
3.4 プログラム構造の問題解決に役立つ設計パターン

4 不変の活用 ―安定動作を構築する―
4.1 再代入
4.2 可変がもたらす意図せぬ影響
4.3 不変と可変の取り扱い方針

5 低凝集 ―バラバラになったモノたち―
5.1 staticメソッドの誤用
5.2 初期化ロジックの分散
5.3 共通処理クラス(Common・Util)
5.4 結果を返すために引数を使わないこと
5.5 多すぎる引数
5.6 メソッドチェイン

6 条件分岐 ―迷宮化した分岐処理を解きほぐす技法―
6.1 条件分岐のネストによる可読性低下
6.2 switch文の重複
6.3 条件分岐の重複とネスト
6.4 型チェックで分岐しないこと
6.5 interfaceの使いこなしが中級者への第一歩
6.6 フラグ引数

7 コレクション ―ネストを解消する構造化技法―
7.1 わざわざ自前でコレクション処理を実装してしまう 7.2 ループ処理中の条件分岐ネスト
7.3 低凝集なコレクション処理

8 密結合 ―絡まって解きほぐせない構造―
8.1 密結合と責務
8.2 密結合の各種事例と対処方法

9 設計の健全性をそこなうさまざまな悪魔たち
9.1 デッドコード
9.2 YAGNI原則
9.3 マジックナンバー
9.4 文字列型執着
9.5 グローバル変数
9.6 null問題
9.7 例外の握り潰し
9.8 設計秩序を破壊するメタプログラミング
9.9 技術駆動パッケージング
9.10 サンプルコードのコピペ
9.11 銀の弾丸

10 名前設計 ―あるべき構造を見破る名前―
10.1 悪魔を呼び寄せる名前
10.2 名前を設計する―目的駆動名前設計
10.3 設計時の注意すべきリスク
10.4 意図がわからない名前
10.5 構造を大きく歪ませてしまう名前
10.6 名前的に居場所が不自然なメソッド
10.7 名前の省略

11 コメント ―保守と変更の正確性を高める書き方―
11.1 退化コメント
11.2 コメントで命名をごまかす
11.3 意図や仕様変更時の注意点を読み手に伝えること
11.4 コメントのルール まとめ
11.5 ドキュメントコメント

12 メソッド(関数) ―良きクラスには良きメソッドあり―
12.1 必ず自身のクラスのインスタンス変数を使うこと
12.2 不変をベースに予期せぬ動作を防ぐ関数にすること
12.3 尋ねるな、命じろ
12.4 コマンド・クエリ分離
12.5 引数
12.6 戻り値

13 モデリング ―クラス設計の土台―
13.1 邪悪な構造に陥りがちなUserクラス
13.2 モデリングの考え方とあるべき構造
13.3 良くないモデルの問題点と解決方法
13.4 機能性を左右するモデリング

14 リファクタリング ―既存コードを成長に導く技―
14.1 リファクタリングの流れ
14.2 ユニットテストでリファクタリングのミスを防ぐ
14.3 あやふやな仕様を理解するための分析方法
14.4 IDEのリファクタリング機能
14.5 リファクタリングで注意すべきこと

15 設計の意義と設計への向き合い方
15.1 本書はなんの設計について書いたものなのか
15.2 設計しないと開発生産性が低下する
15.3 ソフトウェアとエンジニアの成長性
15.4 課題を解決する
15.5 コードの良し悪しを判断する指標
15.6 コード分析をサポートする各種ツール
15.7 設計対象と費用対効果
15.8 時間を操る超能力者になろう

16 設計を妨げる開発プロセスとの戦い
16.1 コミュニケーション
16.2 設計
16.3 実装
16.4 レビュー
16.5 チームの設計力を高める

17 設計技術の理解の深め方
17.1 さらにステップアップするための設計技術書紹介
17.2 設計スキルを高める学び方

最大12%ポイント還元:
紙書籍 真夏の涼読まとめ買いキャンペーン

出版社より

オブジェクト指向, Java, 設計, ソフトウェア設計, クソコード, リーダブルコード, コードレビュー, ミノ駆動, 開発技法, モデリング, モデル, オブジェクト指向プログラミング

商品の説明

出版社からのコメント

良いコードを書き、開発力を高めるための「設計」の入門書です。本書では本来あるべきコードの構造、まずいコードが生みだす弊害をわかりやすく解説します。

著者について

青森県出身。大手電機メーカーなどを経て、現在はREADYFOR株式会社にてアプリケーションアーキテクトを務める。リファクタリングや設計全般を推進。

悪しきコードとの戦いの中で設計の魅力に気付く。暇さえあれば脳内でリファクタリングしている。

Twitterではプログラミングの風刺動画を不定期で投稿。

Developers Summit 2021 Summerベストスピーカー賞3位。その他登壇多数。

Twitter : ミノ駆動(@MinoDriven)

登録情報

  • 出版社 ‏ : ‎ 技術評論社
  • 発売日 ‏ : ‎ 2022/4/30
  • 言語 ‏ : ‎ 日本語
  • 本の長さ ‏ : ‎ 400ページ
  • ISBN-10 ‏ : ‎ 4297127830
  • ISBN-13 ‏ : ‎ 978-4297127831
  • 商品の重量 ‏ : ‎ 1 g
  • 寸法 ‏ : ‎ 21 x 14.8 x 2.2 cm
  • Amazon 売れ筋ランキング: 本 - 127,727位 (本の売れ筋ランキングを見る)
  • カスタマーレビュー:
    5つ星のうち4.4 (629)

著者について

著者をフォローして、新作のアップデートや改善されたおすすめを入手してください。
仙塲 大也
Brief content visible, double tap to read full content.
Full content visible, double tap to read brief content.

著者の本をもっと見つけたり、似たような著者を調べたり、おすすめの本を読んだりできます。

カスタマーレビュー

星5つ中4.4つ
629グローバルレーティング

お客様のご意見

お客様はこの書籍について、以下のような評価をしています: 本質的な要素を認識・理解する上での大きな助けになったと感じています。著者の考える実践の指針が説明されており、解決のヒントになる本だと評価されています。また、具体例が多く、初心者にも分かりやすいと好評です。ただし、説明に関しては意見が分かれています。例えば、ゲームの未経験者やゲームをしない人にとっては余計ピンとこない説明になっているという指摘もあります。 全体的に、この本は設計の入門書として高く評価され、初心者のプログラマーに適していると感じているようです。
お客様の投稿に基づきAIで生成されたものです。カスタマーレビューは、お客様自身による感想や意見であり、Amazon.co.jpの見解を示すものではありません

選択して詳細を見る

28人のお客様が参考になるに言及し、23人が肯定的、5人が否定的です
お客様はこの書籍について、本質的な要素を認識・理解する上での大きな助けになったと評価しています。著者の考える実践の指針が説明されており、学習の目標を立てやすく助かっていると感じています。また、コードスメルについても具体例を交えて解説しており、開発チーム全員で読んで共有しておきたい知識が詰まっているという意見もあります。一方で、内容面ではレベル感的に初学者向けだと感じているようです。
タイトルに書いたようにとても良いです、参考になります。...もっと読む
...設計方針は著者の思想が強く反映されており、好みが分かれる気もするが私としては概ね良い内容だと考える。 さすがにこの1冊で設計ができるようにはならないが、アンチパターンのいくつかには気付けるようになるのでそれだけでも初心者には価値がある。...もっと読む
...そのため私にとっては解決のヒントになる本でした。 「現場で役立つシステム設計の原則」や「ドメイン駆動設計」など関連する著書はありますが、実際のコードを用いて説明していたところが特にわかりやすかったです。...もっと読む
...なので両方購入したことに後悔はしていません。 オブジェクト指向でコードを設計する為の書籍で、参考になる部分が多くあります。 当方メインフレームやオフコンの時代からの人間で、AI等の先端IT関連まで幅広くやっていますが、少し設計の型が古いのは自認していました。...もっと読む
19人のお客様が内容に言及し、16人が肯定的、3人が否定的です
お客様はこの書籍について、以下のように評価しています: ITエンジニアや初心者にはありがたい本だと感じています。特に、スモールステップで実務に取り入れることができる点が高く評価されています。具体的な例が多く、初学者を置いてけぼりにしない内容だと感じているようです。また、保守性の高いコーディングの基本から書かれているため、長く付き合える本だと考えています。
...その人達には分かりやすく、良い本だと思います。 逆に慣れた人達も過去を思い出し、設計に不慣れなメンバーが何に困るかを把握するのにも良いと思います。もっと読む
何となくプログラミングしてた人は絶対に読むべき本です。もっと読む
...ては、実感持って読むのは難しいかもしれませんが、成長し続けるプロダクトのコードを書くために必要な知識とは思いますので、そのような方でも読むことをお勧めしますもっと読む
...上流下流関係なく、オブジェクト指向言語に関わるなら是非読んで頂きたいです。 本書にも書かれていますが、課題は理想と現実のギャップによって発見されます。理想を知らなくてはスタート地点に立てないのです。もっと読む
13人のお客様が分かりやすさに言及し、10人が肯定的、3人が否定的です
お客様はこの本の分かりやすさを高く評価しています。初心者にはとっつきやすく、具体例が多く、実務で使える内容がコンパクトにまとめられているため、初学者を置きけぼりにしない内容だと感じています。また、昨今のプログラマーとしてはよく考えてらっしゃる著者の著書だと感じているようです。
他の設計書籍と違って、初心者にもわかりやすく、Bad/Best Practiceを見せながら、どうしていくべきか?ということを書いていて、読みながら頷きたくなるw本です。...もっと読む
サンプルコードをもとにして、何が問題でどのように設計すると良くなるかという視点で書かれており、分かりやすい。 デザインパターンなどを座学としてやったはいいが実際のコードにどのように適用するのかピンとこない人にとっては特に有用になると思う。...もっと読む
...や「ドメイン駆動設計」など関連する著書はありますが、実際のコードを用いて説明していたところが特にわかりやすかったです。 もう少し紙面に余裕があれば、DBなどの設計も知りたかったです。...もっと読む
とりあえずわかりづらい。ページの構成だか、RPGに無理やり例えたせいなんか、仕事で使うわけがない例文が原因なのか、タイトル詐欺なのか、わからんけどひたすらわかりにくい。わかりにくいし、そもそも腑にも落ちなくて納得できないから、わかろうと思えない。...もっと読む
17人のお客様が説明に言及し、6人が肯定的、11人が否定的です
お客様はこの本について、設計の入門書として高く評価しています。どうやったら良いコードになっていくのかが丁寧に解説されており、初心者が陥ってしまうアンチパターンが多く挙げられています。また、章立てが細かく、学習の目標を立てやすく、ミスリーディングな記述があるという指摘もあります。一方で、一部のお客様は、この本の内容については意見が分かれているようです。コーディング指南については一部賛同しがたい部分もあり、設計というよりはコーディングのtips集のような記述が続くと指摘しています。
タイトルに書いたようにとても良いです、参考になります。 ただあくまでパターン毎の説明になっているので、実際webサービスを作る一連の流れ(データ受け取り→加工→アウトプット)の中でどのように適用すれば良いかのイメージが付かず、使えそうな所を掻い摘むことになってしまっているのがもどかしい...もっと読む
...また、それらの変更コストが高く望ましくないコードを どんな意図で、どのように変更するか丁寧に説明されています。 筆者自身も述べているように、「設計は小難しそうで学ぶのが億劫」という怠惰な自分には...もっと読む
単純な計算しかしてないのに、変数名に極端に長く、どの変数とどの変数が同じか、が分からない。 どんな処理をしてるかは短いコメントをつけておけば十分。 最初の数ページでまったく同意できなかった。 変数名、関数名の間違い探しが必要なだけ、バグの発生率が高いと思うもっと読む
...冒頭から、設計というよりはコーディングのtips集のような記述が続く。例えば、第4章で不変の活用ということでfinalの利用が推奨され、第5章ではstaticの使い方が解説されたり。第6章では、条件分岐について、ifやswitchではなく、interfaceの利用が提唱されたり。...もっと読む
12人のお客様が読みやすさに言及し、8人が肯定的、4人が否定的です
お客様はこの本の読みやすさについて意見が分かれています。初心者でも読める文量で、卑近な話として分かりやすく、すべてのプログラマーさんに読んで欲しいとの意見があります。また、興味深く読める内容であり、頭に入りやすいと評価されています。一方で、一部のお客様は、思考がひっかかり読みづらいという指摘もあります。腑にも落ちないと納得できないため困惑する声もあります。
...単一責務の原則と悪い設計とリファクタリングにちゃんとフォーカスした内容で頭に入りやすい。 有名ないくつかの本をベースにバックエンドのプラクティスが集まっており、ある意味それ見たことあるよという項目もあると思う。...もっと読む
...わかりにくいし、そもそも腑にも落ちなくて納得できないから、わかろうと思えない。 まーじで、この本呼んで仮引数にfinalとか付けたら、やべえよ finalを知ってる人が、仮引数に付けるのなんて見たことないよ 3500円は高い。...もっと読む
...また、本書のサンプルコードはJavaですが、わかりやすいサンプルコードなので、仕事でRubyを使っている自分でも問題なく読めました。 一部、インターフェースの話が出てきた辺りは難しかったですが… 買ってよかったです。...もっと読む
...基本的には著者の一貫したスタンス(一つ一つの概念を丁寧にクラス化し、データとロジックを凝集させてゆく)が反映されていて、興味深く読める内容ではあった。 ただ、逆に言えば著者の思想が強く出ている(それが本書の魅力でもあるのだが)本であるからこそ、...もっと読む
せっかく届いたが、捲れ上がっている、、
星5つ中1つ
せっかく届いたが、捲れ上がっている、、
楽しみに買ったが、傷物が届いた どこのタイミングか特定も難しいのと、こんなくらいじゃ問題ないが新品で購入でこれは悲しい😩
フィードバックをお寄せいただきありがとうございます
申し訳ありませんが、エラーが発生しました
申し訳ありませんが、レビューを読み込めませんでした

日本からのトップレビュー

  • 星5つ中5つ
    とても良い。
    2024年10月22日に日本でレビュー済み
    Brief content visible, double tap to read full content.
    Full content visible, double tap to read brief content.

    タイトルに書いたようにとても良いです、参考になります。

    ただあくまでパターン毎の説明になっているので、実際webサービスを作る一連の流れ(データ受け取り→加工→アウトプット)の中でどのように適用すれば良いかのイメージが付かず、使えそうな所を掻い摘むことになってしまっているのがもどかしいです。せっかくなので徹頭徹尾クラスベースの設計をしてみたいのですが、、、なので応用編を出してもらえると助かります。

    3人のユーザーが役に立ったと感じています
    フィードバックを送信中...
    フィードバックをお寄せいただきありがとうございます。
    フィードバックを送信中...
    ありがとうございます。数日中に調査いたします。
  • 星5つ中5つ
    初心者にはありがたい本でした
    2022年5月9日に日本でレビュー済み
    Brief content visible, double tap to read full content.
    Full content visible, double tap to read brief content.

    【基本的な感想】

    初心者でも読める文量で、

    どう実装すべきか・すべきでないかを分かりやすく教えてくださる本でとてもありがたかったです。

    章立てが細かいところも、学習の目標が立てやすくて非常に助かりました。

    この先、もっと沢山学習して、知識を増やしていく必要があるだろうとは思いますが、

    自分に後輩が出来たら一歩目として勧めたいです。

    【強いて書くならばのレビュー】

    もし著者の方にとっての設計知識のロードマップがあって、

    そのロードマップを前提に取捨選択して章立てしているとしたら、

    ロードマップも合わせて書いて頂いて、どんなつながりがあるのか・何を補足で学ぶべきかも

    理解出来たらより最高なのかもしれないと思いました。

    10人のユーザーが役に立ったと感じています
    フィードバックを送信中...
    フィードバックをお寄せいただきありがとうございます。
    フィードバックを送信中...
    ありがとうございます。数日中に調査いたします。
  • 星5つ中4つ
    この本自体のリファクタリングが必要
    2022年5月3日に日本でレビュー済み
    Brief content visible, double tap to read full content.
    Full content visible, double tap to read brief content.

    本書の最後半部分にあたる第15章に、「本書はなんの設計について書いたものなのか」という節がある。その中に、「本書で取り扱っているのは、保守性に関する設計です。」(本書321ページ)という一文があり、これを読んで、ここまでの記述が何となく理解出来たような気がした。

    冒頭から、設計というよりはコーディングのtips集のような記述が続く。例えば、第4章で不変の活用ということでfinalの利用が推奨され、第5章ではstaticの使い方が解説されたり。第6章では、条件分岐について、ifやswitchではなく、interfaceの利用が提唱されたり。このあたり、何が良くて何が悪いのかもう少し明確にしてくれないと、著者が良いと思うから使ってみてと勧めているだけのように見えてしまう。

    設計の話に入るのは、第10章「名前設計」のあたりから。と思いきや、第11章はコメントについてのあれこれ。ここも結局のところtips集の趣きが抜けない。そこから進んで、第13章のモデリングや第14章のリファクタリングについての解説は、ここまでの説明で著者が用いてきたRPGへのこだわりからも無縁で、好内容だと思う。設計の意義と向き合い方を書いた第15章や設計と開発プロセスの関係を書いた第16章もよく整理されていると思うが、最後の第17章はこれまた著者の妙な思い入れが混じっていて、最後に来て思ったのと違うことを読まされている印象を持った。

    部分部分で有用な内容に満ちた書ではあるが、内容の整理と著者の思い入れの中和化が必要だろう。

    49人のユーザーが役に立ったと感じています
    フィードバックを送信中...
    フィードバックをお寄せいただきありがとうございます。
    フィードバックを送信中...
    ありがとうございます。数日中に調査いたします。
  • 星5つ中5つ
    初心者向きだが良い本
    2023年6月8日に日本でレビュー済み
    Brief content visible, double tap to read full content.
    Full content visible, double tap to read brief content.

    サンプルコードをもとにして、何が問題でどのように設計すると良くなるかという視点で書かれており、分かりやすい。

    デザインパターンなどを座学としてやったはいいが実際のコードにどのように適用するのかピンとこない人にとっては特に有用になると思う。

    設計方針は著者の思想が強く反映されており、好みが分かれる気もするが私としては概ね良い内容だと考える。

    さすがにこの1冊で設計ができるようにはならないが、アンチパターンのいくつかには気付けるようになるのでそれだけでも初心者には価値がある。

    ソフトウェア設計の入門としては非常に良い本だと思う。

    20人のユーザーが役に立ったと感じています
    フィードバックを送信中...
    フィードバックをお寄せいただきありがとうございます。
    フィードバックを送信中...
    ありがとうございます。数日中に調査いたします。
  • 星5つ中5つ
    リファクタリングやコーティング規約に悩んだ人が読むべき!
    2022年5月8日に日本でレビュー済み
    Brief content visible, double tap to read full content.
    Full content visible, double tap to read brief content.

    他の設計書籍と違って、初心者にもわかりやすく、Bad/Best Practiceを見せながら、どうしていくべきか?ということを書いていて、読みながら頷きたくなるw本です。

    Javaの基本的な文法/仕組みは前提として記載しているため、初心者には少し読み解き辛いかもしれませんが、保守開発でいろんなコードを見て「どうやったら、より良いコードになるか?」ということを考え続けてる人にはとても参考になると思います。

    リファクタリング/コーティング規約のガイドの一要素として取り入れることもお勧めしたいですね。

    技術的なことを学ぶより、哲学的な観点で見た方が学びを多く得られると思いました。

    応援してます!

    9人のユーザーが役に立ったと感じています
    フィードバックを送信中...
    フィードバックをお寄せいただきありがとうございます。
    フィードバックを送信中...
    ありがとうございます。数日中に調査いたします。
  • 星5つ中3つ
    大局的な内容は有用。コーディング指南については一部賛同しがたい部分もあり
    2022年5月7日に日本でレビュー済み
    Brief content visible, double tap to read full content.
    Full content visible, double tap to read brief content.

    クラスベースのオブジェクト指向に基づく、設計のノウハウを解説した本。

    自分としては、13章のモデリングの話が一番興味深かった。

    単語としてはよく聞くものの実践が困難な「単一責任の原則」について、著者の考える実践の指針が説明されており参考になった。

    一方で、それ以前のサンプルコードを元に良いコード/悪いコードを解説している部分は、読んでいていくつか違和感を抱く箇所があった。

    ---

    最も気になったのは12.6.3の「エラーは戻り値で返さない、例外でスローすること」と題された節で、ミスリーディングな記述があると感じた。

    本節では、位置を2次元座標を用いて表現するクラス Location の、位置を移動するメソッド shift(int shiftX, int shiftY) を例として扱っており、

    「問題のあるエラー処理」の例として、移動後の位置(座標)が valid でなかった場合にはエラー値として Location(-1, -1) を返す、というものを紹介している。

    そのうえで、これはある値に複数の意味を持たせる「ダブルミーニング」であってロジックの複雑さを招くため望ましくない、として、

    「戻り値でエラーを返すのではなく、例外をスロー」すべきだと主張している。

    しかしながら、「戻り値でエラーを返す」ために「ダブルミーニング」を用いる必要はない。

    本書で用いられている Java であれば、shift を(Location 型を返すメソッドとして定義されているが)Optional<Location> 型を返す定義にして、

    エラー値として Optional.empty() を返すようにすれば良い。

    このようにすれば型レベルでエラー値と正常値の区別ができるので「ダブルミーニング」とは言い難いし、

    これは何も Java 固有の機能ではない(例えば Rust であればこれに似た Option 型や、直和型を用いてより詳しくエラー情報を格納できる Result 型もある)。

    さらに付言すると、Optional 登場以前の Java や、Ruby や Python のような動的型付け言語の場合でも、

    Location(-1, -1) よりは null 値(nil / None)を返却するほうが一般的な手法と考えられる(それが良い手法かは措くとしても)。

    以上のことから、本節の「戻り値でエラーを返す」ことのデメリットの説明は、適切でないと感じた。

    もっとも、著者はこれ以前に5.5.1 節の「プリミティブ型執着」の中で、

    「プログラミング言語が標準で用意している基本データ型」=「プリミティブ型」を濫用せず、1つ1つ丁寧にクラス化すべきである、と主張しているため、

    もしかすると著者の考えとしては、Optional 型も(戻り値としては)使うべきでないのかもしれない。

    (※Optional 型は Java の言語仕様的な意味ではプリミティブではないが、本書の中では String もプリミティブと呼ばれているため、本書の定義としてはプリミティブと呼べるかもしれない)

    しかし、仮にそうだとすれば、なおさら Optional 型を使ったやり方に触れた上で、それよりも著者の推奨するやり方のほうが優れている、と示す論理展開がほしかった。

    ---

    この箇所以外にもいくつか気になった部分はあったものの、

    基本的には著者の一貫したスタンス(一つ一つの概念を丁寧にクラス化し、データとロジックを凝集させてゆく)が反映されていて、興味深く読める内容ではあった。

    ただ、逆に言えば著者の思想が強く出ている(それが本書の魅力でもあるのだが)本であるからこそ、

    前述したようなミスリーディングな議論を避けてほしかった。

    上記のような理由から、本書の主張がどのくらい妥当なのか、は自分の中で判断保留の状態になっている

    (13章以降の大局的な内容については妥当だと思うが、12章以前のコードの書き方指南については多少の疑義がある)。

    それでも、間違いなく有用だと感じる部分もあったので、少しずつ徐々に本書の書き方を普段のコーディングに導入しながら(本書16章でもスモールステップでチームの設計力を高めていくことを推奨している)、

    どの程度本書内のプラクティスが有効に働くのかを確かめてみたいと考えている。

    134人のユーザーが役に立ったと感じています
    フィードバックを送信中...
    フィードバックをお寄せいただきありがとうございます。
    フィードバックを送信中...
    ありがとうございます。数日中に調査いたします。
  • 星5つ中5つ
    オブジェクト指向言語に携わる人は必読!
    2024年7月22日に日本でレビュー済み
    Brief content visible, double tap to read full content.
    Full content visible, double tap to read brief content.

    数々の技術書籍における「入門書」の消化不良感に苦しんできましたが、この本は正しく「設計入門」です。

    良い設計は良いコードを生み、良いコードは良いソフトウェアが継続的に開発できることを意味します。

    上流下流関係なく、オブジェクト指向言語に関わるなら是非読んで頂きたいです。

    本書にも書かれていますが、課題は理想と現実のギャップによって発見されます。理想を知らなくてはスタート地点に立てないのです。

    5人のユーザーが役に立ったと感じています
    フィードバックを送信中...
    フィードバックをお寄せいただきありがとうございます。
    フィードバックを送信中...
    ありがとうございます。数日中に調査いたします。
  • 星5つ中4つ
    オブジェクト指向設計の本
    2023年5月11日に日本でレビュー済み
    Brief content visible, double tap to read full content.
    Full content visible, double tap to read brief content.

    キンドル本で購入したのを忘れていて、紙の本も購入しました。

    重要な部分を蛍光ペンで線を引きながら読みました。

    紙の本は必要な所を直ぐに見返せるという利点があるので、何度でも見返す必要のある本は、紙で購入した方が良いと思います。なので両方購入したことに後悔はしていません。

    オブジェクト指向でコードを設計する為の書籍で、参考になる部分が多くあります。

    当方メインフレームやオフコンの時代からの人間で、AI等の先端IT関連まで幅広くやっていますが、少し設計の型が古いのは自認していました。ただ、一応高度IT人材で設計は重要視しており、最新の設計を学ぶのに非常に参考になりました。

    オブジェクト指向設計の考え方も時と共に変遷していて、一昔前の考え方からどんどん変化・拡張しているので、定期的に学び直す必要があります。この書籍はそう言った意味でも有用です。コードを書かない管理職等の人も、この位のことは知っておいて欲しいと思います。

    24人のユーザーが役に立ったと感じています
    フィードバックを送信中...
    フィードバックをお寄せいただきありがとうございます。
    フィードバックを送信中...
    ありがとうございます。数日中に調査いたします。