我已经阅读了大约4-5本关于设计模式的书籍,但我仍然觉得我在设计模式方面没有接近中级水平?
我该如何去研究设计模式?
有没有关于设计模式的好书?
我知道这只会有经验,但必须有一些方法来掌握这些?
Dar*_*n C 207
在阅读OReilly的Head First Design Patterns之前,我读了三本书并且仍然不太了解模式.这本书睁开眼睛,真的很好解释.
Sys*_*ank 89
对于这样一个老问题我的两分钱
有些人已经提到过,练习和重构.我相信学习模式的正确顺序是这样的:
大多数人忽略1,许多人认为他们可以做2,而且几乎所有人都会直截了当3.
对我来说,提高我的软件技能的关键是学习TDD.这可能是一段长时间的痛苦和缓慢的编码,但首先编写测试肯定会让你对代码有很多想法.如果一个课程需要太多的样板或容易打破,你会开始注意到难闻的气味
TDD的主要好处是您不必担心重构代码并迫使您编写高度独立且具有凝聚力的类.没有一套好的测试,触摸没有破坏的东西真是太痛苦了.使用安全网,您将真正冒险进入代码的重大变化.那是你真正开始从实践中学习的那一刻.
现在,您必须阅读有关模式的书籍,而且我认为,完全浪费时间去努力.在注意到我做了类似的事情后,我才真正理解模式,或者我可以将其应用于现有代码.如果没有安全测试或重构习惯,我会等到新项目.在新项目中使用模式的问题在于,您无法看到它们如何影响或更改工作代码.一旦我将代码重构为其中一个代码,我才理解软件模式,从来没有在我的代码中引入一个新代码.
小智 59
Derek Banas为我喜欢的设计模式制作了youtube教程:
http://www.youtube.com/playlist?list=PLF206E906175C7E07
它们可能有点短,但他的时间和表现使他们非常乐于学习.
Pau*_*ier 35
实践,实践,实践.
你可以阅读有关多年来演奏大提琴的内容,但仍然无法用弓来演奏和制作听起来像音乐的东西.
设计模式最好被认为是一个高级别的问题; 只有在您具备将其识别为有用所必需的经验时才有意义的.你认识到它们是有用的很好,但除非你已经看到它们适用或应用的情况,否则几乎不可能理解它们的真正价值.
它们变得有用的地方在于您在其他人的代码中识别设计模式,或者在设计阶段识别出与模式非常吻合的问题; 然后检查正式模式,检查问题,确定它们之间的差异,以及关于模式和问题的说法.
它与编码真的一样; K&R可能是C语言的"圣经",但是多次阅读它的封面并不能提供一种实践经验; 没有经验的替代品.
utk*_*tas 25
实践练习.我认为4到5本书甚至是一个过度的阅读练习,没有一些练习.我相信,实现这一目标的最佳方法是使用模式重新开始重构当前项目.或者,如果您没有任何正在进行的项目,那么只需按照自己的方式进行,然后尝试重构模式.
如果你没有遇到他们解决的问题,你就无法完全欣赏他们.请记住,它们不是银子弹 - 你不需要记住它们并且很难在飞行中使用它们.我的两分钱..
gtr*_*rak 15
问自己这些问题:
他们在做什么?
它们分离/耦合的是什么?
你应该什么时候使用它们?
什么时候不应该使用它们?
什么遗漏语言功能会让它们消失?
使用它会产生什么技术债务?
是否有更简单的方法来完成工作?
我发现在理解他们解决的问题以及其他(更糟)的问题实施方式之前,理解或理解某些模式的好处有点困难.
除了GOF和POSA书籍之外我还没读过任何书籍,所以我不能给你其他建议.真的,你只需要了解问题领域,我认为许多经验不足的开发人员可能无法理解模式的好处.这对他们来说并不轻微.当人们不得不首先与糟糕的替代方案作斗争时,拥抱,理解和欣赏良好的解决方案要容易得多.
祝好运
已经给出了很多很好的例子.我想补充一个:
误用他们.您不需要故意这样做,当您尝试在初始的Design-Pattern-fit中应用它们时会发生这种情况.在此期间,您将看到的每个问题似乎都恰好符合一种设计模式.由于某种原因,这些问题似乎都符合相同的设计模式(Singelton是其主要候选者).
而你将应用这种模式,它会很好.几个月之后,您将需要更改代码中的某些内容并查看使用该特定模式并不那么聪明,因为您将自己编码为一个角落,并且需要再次重构.
当然,这并不是一个21天的答案,但根据我的经验,它最有可能让你对这件事情有所了解.
你有没有尝试过Gang of Four书?
您是否阅读过Allan Shalloway撰写的"设计模式解释".
本书与其他设计模式书非常不同,因为它不是一个模式目录,而是主要提供一种分解容易映射到模式的问题空间的方法.
问题可以分解为两部分:常见的东西和变化的东西.完成此操作后,我们将常见事物映射到接口,以及与实现不同的内容.从本质上讲,许多模式属于这种"模式".
例如,在战略模式中,常见事物表示为策略的上下文,可变部分表示为具体策略.
我发现这本书非常引人注目,与其他模式书相比,对我来说,与阅读电话簿有着同样程度的兴奋.
对于书籍,我会推荐Design Patterns Explained和Head First Design模式.要真正了解这些模式,您应该查看现有代码.寻找您已经使用的模式.看看代码气味以及可以解决它们的模式.
我领导了一些设计模式讨论组(我们的网站)并阅读了 5 或 6 本书。我建议从 Head First Design Patterns 这本书开始,然后参加或发起一个讨论组。Head First 的书一开始可能看起来有点儿孩之宝,但大多数人在阅读一两章后都会喜欢它。
使用优秀资源 - Joshua Kereivisky 的 A Learning Guide to Design Patterns进行模式排序并帮助您的讨论组。根据经验,我建议对排序进行的一项更改是将 Strategy 放在首位。今天的大多数开发人员都经历过工厂化身的好坏,所以从工厂开始可能会导致很多关于模式的对话和混乱。第一次会议。
归档时间: |
|
查看次数: |
146983 次 |
最近记录: |