書籍概要
ちょうぜつソフトウェア設計入門
――PHPで理解するオブジェクト指向の活用
- 著者
- 田中ひさてる 著
- 発売日
- 更新日
概要
SoftwareDesign誌での連載と技術アドベントカレンダー24回ぶんに収まらなかった関連知識を徹底解説。いわゆる「オブジェクト指向」と呼ばれる考え方から発展した分野は,
こんな方におすすめ
- ソフトウェア開発にかかわるすべてのエンジニア,
PHPプログラマ, Webプログラマ, アーキテクトなど
サンプル
- サンプルPDFファイル1(1,392KB)
サポート
正誤表
本書の以下の部分に誤りがありました。ここに訂正するとともに,
(2024年3月25日最終更新)
P.13
| 誤 | 管理する方法をを |
|---|---|
| 正 | 管理する方法を |
P.18
| 誤 | おさえさえる |
|---|---|
| 正 | おさえさせる |
P.22
| 誤 | “Reuse-Release Equivalent Principle(REP)” |
|---|---|
| 正 | “Reuse-Release Equivalence Principle(REP)” |
P.25
| 誤 | それ意外 |
|---|---|
| 正 | それ以外 |
P.28
| 誤 | 閉鎖性共通の原則(CCP)加えて |
|---|---|
| 正 | 閉鎖性共通の原則(CCP)に加えて |
P.44
| 誤 | を持ちもます |
|---|---|
| 正 | を持ちます |
P.53
| 誤 | そうした面をだけを |
|---|---|
| 正 | そうした面だけを |
P.58
| 誤 | 連想でない |
|---|---|
| 正 | 連想できない |
P.66
| 誤 | 図4-1 WheelS |
|---|---|
| 正 | Wheels |
P.70
| 誤 | していると |
|---|---|
| 正 | していること |
P.73
| 誤 | 図4-7 articlePreseneter:ArticlePreseneter |
|---|---|
| 正 | articlePresenter:ArticlePresenter |
P.74 図4-9
| 誤 | fe^tch |
|---|---|
| 正 | fetch |
P.74 図4-9
| 誤 | visualised |
|---|---|
| 正 | visualized |
P.80 図5-1
| 誤 | writer |
|---|---|
| 正 | Writer |
P.80 図5-1
| 誤 | subscrbe() |
|---|---|
| 正 | subscribe() |
※UML図の矢印の頭を取る
P.81
| 誤 | Subscrbe() |
|---|---|
| 正 | subscribe() |
※UML図の矢印の頭を取る
P.83 図5-4
| 誤 | DatebasedriverInterface |
|---|---|
| 正 | DatebaseDriverInterface |
P.84
| 誤 | “Open Close Principle(OCP)” |
|---|---|
| 正 | “Open Closed Principle(OCP)” |
P.93
| 誤 | remains件 |
|---|---|
| 正 | done件 |
P.93 リスト5-12
| 誤 | |
|---|---|
| 正 | |
P.93 リスト5-13
| 誤 | |
|---|---|
| 正 | |
P.94 リスト5-14
| 誤 | |
|---|---|
| 正 | |
P.94 リスト5-14
| 誤 | |
|---|---|
| 正 | |
P.97
| 誤 | “Intereface Seperation Principle()” |
|---|---|
| 正 | “Intereface Segregation Principle()” |
P.98 リスト5-17
| 誤 | |
|---|---|
| 正 | |
P.98 リスト5-17
| 誤 | |
|---|---|
| 正 | |
P.98 リスト5-17
| 誤 | |
|---|---|
| 正 | |
P.98 リスト5-17
| 誤 | |
|---|---|
| 正 | |
P.98 リスト5-18
| 誤 | |
|---|---|
| 正 | |
P.98 リスト5-18
| 誤 | |
|---|---|
| 正 | |
P.99 リスト5-19
| 誤 | |
|---|---|
| 正 | |
P.99 リスト5-19
| 誤 | |
|---|---|
| 正 | |
P.99 リスト5-19
| 誤 | |
|---|---|
| 正 | |
P.99 リスト5-19
| 誤 | |
|---|---|
| 正 | |
P.119
| 誤 | 単位のテスト |
|---|---|
| 正 | 単体のテスト |
P.125
| 誤 | TeatCaseクラス |
|---|---|
| 正 | TestCaseクラス |
P.134
| 誤 | willretuen() |
|---|---|
| 正 | willreturn() |
P.142
| 誤 | テストと実装はこうなります |
|---|---|
| 正 | テストとコードを書く手順は割愛しますが、この進め方でいくと実装はこうなります |
P.155 リスト6-38
| 誤 | |
|---|---|
| 正 | |
P.155 リスト6-39
| 誤 | |
|---|---|
| 正 | |
P.160
| 誤 | 実装コード見るまで |
|---|---|
| 正 | 実装コードを見るまで |
P.171
| 誤 | 役立つ |
|---|---|
| 正 | 役に立つ |
P.172
| 誤 | ピンと来きませんね。 |
|---|---|
| 正 | ピンと来ませんね。 |
P.176
| 誤 | 保証しいる |
|---|---|
| 正 | 保証している |
P.106
| 誤 | なせならそれは |
|---|---|
| 正 | なぜならそれは |
P.199
| 誤 | リスト8-3 getIterationの省略 |
|---|---|
| 正 | リスト8-3 getIterator()の省略 |
P.200
| 誤 | $itrerator |
|---|---|
| 正 | $iterator |
P.202 リスト8-7
| 誤 | |
|---|---|
| 正 | |
P.203
| 誤 | RequestHandlerInterafce |
|---|---|
| 正 | RequestHandlerInterface< |
P.203 リスト8-9
| 誤 | |
|---|---|
| 正 | |
P.204 リスト8-9
| 誤 | |
|---|---|
| 正 | |
P.204 リスト8-9
| 誤 | |
|---|---|
| 正 | |
P.207
| 誤 | PrizeItemInterafceとしましょう |
|---|---|
| 正 | PrizeItemInterfaceとしましょう |
P.207 リスト8-10
| 誤 | |
|---|---|
| 正 | |
P.207 リスト8-11
| 誤 | |
|---|---|
| 正 | |
P.208 リスト8-11
| 誤 | |
|---|---|
| 正 | |
P.209 リスト8-12
| 誤 | |
|---|---|
| 正 | |
P.210 リスト8-13
| 誤 | |
|---|---|
| 正 | |
P.212
| 誤 | PrizeItemInterafce |
|---|---|
| 正 | PrizeItemInterface |
P.220
| 誤 | createAnimal()メソッド |
|---|---|
| 正 | createPet()メソッド |
P.231 リスト8-32
| 誤 | |
|---|---|
| 正 | |
P.232 リスト8-32
| 誤 | |
|---|---|
| 正 | |
P.232 リスト8-33
| 誤 | |
|---|---|
| 正 | |
P.233 リスト8-33
| 誤 | |
|---|---|
| 正 | |
P.233 リスト8-33
| 誤 | |
|---|---|
| 正 | |
P.234 リスト8-34
| 誤 | |
|---|---|
| 正 | |
P.234 リスト8-34
| 誤 | |
|---|---|
| 正 | |
P.234 リスト8-34
| 誤 | |
|---|---|
| 正 | |
P.235 リスト8-36
| 誤 | |
|---|---|
| 正 | |
P.237 リスト8-37
| 誤 | |
|---|---|
| 正 | |
P.237
| 誤 | MailerInterafce |
|---|---|
| 正 | MailerInterface |
P.237 リスト8-38
| 誤 | |
|---|---|
| 正 | |
P.241 リスト8-41
| 誤 | |
|---|---|
| 正 | |
P.242
| 誤 | よくありあす |
|---|---|
| 正 | よくあります |
P.247 図8-18
| 誤 | node1 |
|---|---|
| 正 | leaf1 |
P.247 図8-18
| 誤 | node2 |
|---|---|
| 正 | leaf2 |
P.247 図8-18
| 誤 | node3 |
|---|---|
| 正 | leaf3 |
P.249 リスト8-46
| 誤 | |
|---|---|
| 正 | |
P.262 リスト8-55
| 誤 | |
|---|---|
| 正 | |
P.263 リスト8-55
| 誤 | |
|---|---|
| 正 | |
P.273
| 誤 | 方法考える |
|---|---|
| 正 | 方法を考える |
P.297
| 誤 | 意味でしなかい |
|---|---|
| 正 | 意味でしかない |
P.307
| 誤 | Clear Craftmanship |
|---|---|
| 正 | Clean Craftsmanship |
(以下2023年1月5日更新)
P.xxiv
| 誤 | パッケージ原則を支えるためのに |
|---|---|
| 正 | パッケージ原則を支えるために |
「の」が不要です。
P.9
| 誤 | 依存の実動作に違いが起きていることもあるれば |
|---|---|
| 正 | 依存の実動作に違いが起きていることもあれば |
「る」が不要です。
P.49 ▼リスト3-7 多態性を活用したロギングのオンオフ コメント文
| 誤 | |
|---|---|
| 正 | |
「o」が不要です。
P.138
| 誤 | ▼リスト6-13 src/core/NumberConverter.php |
|---|---|
| 正 | ▼リスト6-13 src/Core/NumberConverter.php |
| 誤 | ▼リスト6-14 tests/core/NumberConverterTest.php |
|---|---|
| 正 | ▼リスト6-14 tests/Core/NumberConverterTest.php |
P.147
| 誤 | ▼リスト6-27 src/core/ReplaceRuleInterface.php(初案) |
|---|---|
| 正 | ▼リスト6-27 src/Core/ReplaceRuleInterface.php(初案) |
P.161
| 誤 | ▼リスト6-44 src/core/ReplaceRuleInterface.php(第2案) |
|---|---|
| 正 | ▼リスト6-44 src/Core/ReplaceRuleInterface.php(第2案) |
P.190
| 誤 | ▼リスト7-19 config/services/yaml(最適化版) |
|---|---|
| 正 | ▼リスト7-19 config/services.yaml(最適化版) |
P.234 ▼リスト8-36 Mediatorのコードのミスページ
| 誤 | |
|---|---|
| 正 | |
P.253 ▼リスト8-50 Strategy パターンによる実現方法
| 誤 | |
|---|---|
| 正 | |
P.254 ▼図8-20 Strategyパターンによる式 図の中にある文字の修正
| 誤 | CalcurationStrategyInterface |
|---|---|
| 正 | CalculationStrategyInterface |
| 誤 | PlusCalcurationStrategy |
|---|---|
| 正 | PlusCalculationStrategy |
| 誤 | MinusCalcurationStrategy |
|---|---|
| 正 | MinusCalculationStrategy |
P.255 9行目
| 誤 | calcurate() |
|---|---|
| 正 | calculate() |
P.284
| 誤 | モデル駆動設計(MDD:Make Driven Design) |
|---|---|
| 正 | モデル駆動設計(MDD:Model Driven Design) |