- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
设计已死?
英文原文版权由Martin Fowler拥有 Original text is copyrighted by Martin Fowler
Martin FowlerChief Scientist, ThoughtWorks
原文出处| 繁体版 | 译者:Daimler Huang
Extreme Programming 的人来说,XP 似乎 宣告了软件设计的死刑。不只很多的设计被嘲笑为 Big Up Front Design[译注1],连很多技术像UML、富有弹性的程序架构 (framework),甚至连模式 (pattern) 都不受重视,或是近似忽略了。事实上,XP内含很多设计理念,但是它与现有的软件流程有着不同的运作方式。XP藉由多种实务技巧 (practice) 赋予演进式设计 (evolutionary design) 崭新的风貌,让演进变成一种实用的设计方法。它也让设计者 (designer[译注2]) 面临新的挑战与技巧,学习如何使设计精简,如何使用重构来保持一个设计的清楚易懂,以及如何逐步地套用模式。
?近期重大更新:2001年2月
?(这篇文章是我在 XP2000 研讨会发表的演说,它会公布在研讨会讲义中。)
? Planned and Evolutionary Design (经过规划的设计与演进式的设计)
? The Enabling Practices of XP (XP有效的实作技巧)
? The Value of Simplicity (简单的价值)
? What on Earth is Simplicity Anyway (究竟什么是简单)
? Does Refactoring Violate YAGNI? (重构违反了YAGNI吗?)
? Patterns and XP (模式与XP)
? Growing an Architecture (发展结构)
? UML and XP (UML与XP)
? On Metaphor (关于隐喻)
? Do you wanna be an Architect when you grow up? (你将来想成为一个软件结构师吗?)
? Things that are difficult to refactor in (很难重构的东西)
? So is Design Dead? (所以,设计死了吗?)
? Acknowledgements (致谢)
Revision History (修订的记录)
?Extreme Programming (XP) 挑战很多软件开发常见的假设。其中最受争议的就是极力排斥 up-front design,而支持一种比较属于演进的方式。批评者说这是退回到了 code and fix 的开发方式,顶多只能算是一般急就章的程序设计罢了。支持者也常看到 XP 对于设计方法 (如 UML)、principle(设计准则)、patterns 等的排斥。别担心,仔细注意你的程序代码,你就会看到好的 design 浮现出来。
?我发现自己正陷于这个争论当中。我的工作着重在图形化设计语言 - UML 以及 patterns,事实上我也写过 UML 和 patterns 的书。我如此的拥抱 XP 是否表示我放弃了这些理论,或是将这些反渐进式 (counter-revolutionary) 的概念从脑中清除了?
?嗯... 我不想让你的心悬荡在这两种情境中。简单的说并不是;接下来的文章就让我来详细说明。
?
Planned and Evolutionary Design
?
我将在这篇文章中说明软件开发的两种设计方式是如何完成的。或许最常见的是演进式设计。它的本质是系统的设计随着软件开发的过程增长。设计 (design) 是撰写程序代码过程的一部份,随着程序代码的发展,设计也跟着调整。
?在常见的使用中,演进式设计实在是彻底的失败。设计的结果其实是一堆为了某些特殊条件而巧妙安排的决定所组成,每个条件都会让程序代码更难修改。从很多方面来看,你可能会批评这样根本就没有设计可言,无疑地这样的方式常会导致很差劲的设计。根据Kent的陈述,所谓的设计 (design) 是要能够让你可以长期很简单地修改软件。当设计 (design) 不如预期时,你应该能够做有效的更改。一段时间之后,设计变得越来越糟,你也体会到这个软件混乱的程度。这样的情形不仅使得软件本身难以修改,也容易产生难以追踪和彻底解决的 bug。随着计画的进行,bug 的数量呈指数地成长而必须花更多成本去解决,这就是 code and fi
您可能关注的文档
最近下载
- GB50863-2013 尾矿设施设计规范.docx VIP
- 2025年陕西省二级造价工程师职业资格考试《基础知识》真题及答案.docx VIP
- 人教版PEP三年级英语下册全册同步练习随堂练习一课一练版(有答案).pdf VIP
- 彩钢管理房单元工程施工质量评定表(1).doc VIP
- 江西婺源篁岭民俗文化村发展规划--规划说明.pdf
- IATF16949-2016事态升级控制规范.doc VIP
- 新收入准则对电商企业运营的影响及应对策略.docx VIP
- 东莞市地图含区县可编辑可填充动画演示矢量分层地图PPT模板.pptx VIP
- XX县2022年度自然资源统一确权登记项目技术设计书模版.docx VIP
- 女儿墙维修工程施工方案(3篇).docx VIP
文档评论(0)