14

我正在寻求成为一名优秀的 OO 开发人员。OO 让我很感兴趣,因为我了解模式,知道为什么组合比继承给你更多的灵活性,以及​​更多这样的智慧。但是,我得出的结论是,我知道如何实现单例工厂,但我不知道如何提出健壮的 OO 设计

我有一堆书

  1. GoF 的设计模式
  2. 反模式布朗等人。
  3. Fowler 重构
  4. 代码完成 2

它们可能是非常好的书,但它们不会教您构建应用程序。我经常被一些非常基本的决定(例子)弄得瘫痪。我正在寻找一本书,教什么时候和为什么。有很多关于锤子和钉子的书,但我还没有找到一本能告诉你它们实际关系的书。

哪本书最能帮助你成为自信的 OO 架构师/设计师?

4

10 回答 10

8
  1. Bertrand Meyer 《面向对象的软件构建》

关于面向对象的最基础的工作已经出版。这绝对是每个“面向对象”程序员必备的书。

2. Grady Booch 等人的“带有应用程序的面向对象分析和设计”

不像 Meyer 的书那么正式,但这本书可以让你了解面向对象世界和软件开发中的许多问题

3. Erich Gamma 等人的“设计模式:可重用的面向对象软件的元素”。

这是关于设计模式的著名“四人帮”书

4. Martin Fowler 等人的“重构:改进现有代码的设计”。

这是另一本经典著作。第一部分完美地描述了现代软件开发人员在工作中可能面临的许多问题:代码异味、可读性与性能、过早的优化缺陷和许多其他主题。

5. Bruce Eckel的“Java 思维”

这本书不仅可以帮助许多Java语言初学者,还可以帮助他们了解面向对象的思维方式。

6. Bertrand Meyer的“课堂接触:学习使用对象和合同进行良好编程”

著名作家的优秀教材。

于 2010-01-29T14:33:49.643 回答
7

我读过的关于 OO 的最好的书是 Bertrand Meyer Object Oriented Software Construction

它很大,但对我来说非常有用。它涵盖了面向对象设计 IMVHO 的各个方面。

于 2010-01-29T13:43:49.117 回答
3

我完全理解你的情况。还拥有其中三本书;)我建议使用 Head First 版本。面向对象的分析和设计。这将使您走上正确的轨道。GoF 书很棒,但在您完全掌握基础知识之前毫无用处,而 Head First 书会解决这个问题。干杯:)

于 2010-01-29T13:43:54.890 回答
2

实际上,做编程比阅读有关编程的帮助更大。

“因一些非常基本的决定而瘫痪”是一个更深层次问题的症状——过度设计。直到你构建了很多东西,你才真正知道哪些决定重要,哪些不重要。

获得必要经验的最好方法是构建很多东西。

Code Kata 非常非常重要。 http://slott-softwarearchitect.blogspot.com/search/label/code-kata

此外,我收集了一堆我在一个大型项目中使用过的代码 kata。 http://homepage.mac.com/s_lott/books/oodesign.html

于 2010-01-29T13:42:38.497 回答
2

Robert C. Martin “敏捷软件开发:原则、模式和实践”向您解释了 OO 的原则

Eric Evans:“领域驱动设计”涉及如何做出与您的业务问题相对应的良好设计

Martin Fowler:关于企业架构基本原则的“企业应用架构模式”

于 2010-01-29T13:59:52.710 回答
1

找出设计是否健壮的唯一方法是实现它。没有一本书可以教你如何产生可实施的设计,它归结为经验和才能。但是,我对 Bertrand Meyer 的书投了第二票——请注意,它不会让你成为 OO 设计之神。

于 2010-01-29T14:00:47.937 回答
1

Craig Larman 的Applying UML and Patterns总结了很多关于我从经验中学到的东西。我喜欢它的地方在于它解决了软件设计的所有方面——包括迭代设计和开发之类的东西。不要太盯着 UML 的使用:设计描述是达到目的的一种手段,我发现 Larman 的方法相当实用。您不能只编码:您必须传达您的意图(并了解需要什么)。UML 和设计简洁、注释良好的代码是实现这一目标的一些手段。

当然,正如其他人所提到的:没有一本书能让你成为一名优秀的开发人员或设计师。但这可能有助于加快这一进程。

于 2010-01-29T14:06:48.077 回答
1

首先,我建议 Head First Object Oriented Analysis and Design。它指导您以简单直观的分步方法构建 OO 应用程序。

于 2010-02-18T10:24:34.807 回答
0

尽管我倾向于 Rational UP,但我发现这两个提供了很多关于 OO 设计的见解。

  • 应用 UML 和模式 - Craig Larman
  • UML 2 和统一过程:实用的面向对象分析和设计 - Jim Arllow 和 Ila Neustadt
于 2010-01-29T13:57:55.713 回答