声明:JavaEye新闻文章的版权属于JavaEye网站所有,严禁任何网站转载本文,否则必将追究法律责任!
Adam Bien说道:
评价你的项目中过度设计的指标:
1。你整天使用类似“潜在的”,“在未来”,“准备扩展”之类的词。
2。你开始花越来越多的时间思考“封装”,“抽象”和“解耦”,而不是实际问题。
3。你开始相信,随着框架,库,支持语言的增加,软件质量会得到提升。
4。你能够替换每一个单一的概念,类和层,但是这并不是客户的需求。
5。只看代码,你不能理解发生了什么,你需要附件的工具,软件和顾问来理解它。
6。你恨整体结构,一切都是配置化的,可替换的,当然在运行期间。如果太复杂,看第5条。
7。你开始运行一个发生器来解决复杂性。
8。你的配置文件越来越大,比你的代码还大。
9。你设计的界面只有该领域的专家才能理解。
设计模式,最佳实践和原则被过度使用了,在项目分析设计时候,过度的抽象,过多分离解耦,太多颗粒单位,过度模块化,太多插件是造成项目失败的重要原因。你的项目有没有过度设计呢?
评价你的项目中过度设计的指标:
1。你整天使用类似“潜在的”,“在未来”,“准备扩展”之类的词。
2。你开始花越来越多的时间思考“封装”,“抽象”和“解耦”,而不是实际问题。
3。你开始相信,随着框架,库,支持语言的增加,软件质量会得到提升。
4。你能够替换每一个单一的概念,类和层,但是这并不是客户的需求。
5。只看代码,你不能理解发生了什么,你需要附件的工具,软件和顾问来理解它。
6。你恨整体结构,一切都是配置化的,可替换的,当然在运行期间。如果太复杂,看第5条。
7。你开始运行一个发生器来解决复杂性。
8。你的配置文件越来越大,比你的代码还大。
9。你设计的界面只有该领域的专家才能理解。
设计模式,最佳实践和原则被过度使用了,在项目分析设计时候,过度的抽象,过多分离解耦,太多颗粒单位,过度模块化,太多插件是造成项目失败的重要原因。你的项目有没有过度设计呢?
来自:adam-bien.com


评论 共 15 条 发表评论
guitarpoet 2008-06-25 11:34 引用
4。你能够替换每一个单一的概念,类和层,但是这并不是客户的需求。
事实上,这正是重构的价值。用户不会要求你重构,他只会要求好的产品,重构是你提供好的产品的一种受到。
7。你开始运行一个发生器来解决复杂性。
这恰是DSL的精华所在。目的是为了简化而不是复杂。
9。你设计的界面只有该领域的专家才能理解。
这要看你的客户,Linux的用户和Windows用户的要求是不一样的。
模拟一下。
Windows用户:你说什么?编译?哦,我的天。
Linux用户:你的该死的安装文件,都对我亲爱的机器做了什么?!
认清你的用户,40岁的高级技术人员和18岁的无知少女,要求是完全不同的。
afacd 2008-06-24 20:51 引用
选择适合的方法去解决掉客户的需求就好了
我看到同事的代码,也看到快吐血
一堆介面、继承、实作
真的造了好大的一把刀
用其中一小块,还要实作他一些我用不到的方法
但让我选择,我还是宁愿要人设计的
修改另外一位同事的code,更是吐血
没有设计跟布局得代价,等於重新开发过,相当浪费时间
起码设计过的,有些布局概念
日後维护的人也好上手
cm4ever 2008-06-24 16:53 引用
ltian 2008-06-24 16:45 引用
hantsy 2008-06-24 14:39 引用
AllenZhang 2008-06-24 12:47 引用
一开始就写出超级解偶的复杂代码的话,说明已经是大师级的人物了。一般都是逐步优化解偶的。所以感觉至少国内的设计,一般很难过度。
tuti 2008-06-24 12:39 引用
caixicai 2008-06-24 11:26 引用
QQbyte 2008-06-24 11:22 引用
EricLiang 2008-06-24 11:17 引用
苏飞 2008-06-24 10:49 引用
我认为:
1. 错误的设计就是“错误”的,但是不是“过度”的。如果因为能力、经验方面的缺乏,导致软件结构不理想,质量无法控制,就归结为“过度设计”的话,那我想这几乎等同于推卸责任。
2. 之所以能够“敏捷”,正是因为它基于了优良的设计和成功过的经验、模式,而绝不是可以放弃设计和前期规划。
3. (我所见过的)大多数认为“随着框架,库,支持语言的增加,软件质量会得到提升”的开发者,其实是由于其能力不足,所以就幻想着使用较新版本的类库(框架?)就可以解决自己软件中的各种问题和缺陷。这种情况我认为应该归类为“过度依赖”,而不是“过度设计”。
同意,大多数软件公司,特别是中国的软件公司及至中小软件公司,普遍的缺乏工程概念。但反过来,所谓的工程概念,无法有高端的人才支持,是无法产生工程与实践主义的平衡的。
xqstation 2008-06-24 10:34 引用
Allen 2008-06-24 09:50 引用
我认为:
1. 错误的设计就是“错误”的,但是不是“过度”的。如果因为能力、经验方面的缺乏,导致软件结构不理想,质量无法控制,就归结为“过度设计”的话,那我想这几乎等同于推卸责任。
2. 之所以能够“敏捷”,正是因为它基于了优良的设计和成功过的经验、模式,而绝不是可以放弃设计和前期规划。
3. (我所见过的)大多数认为“随着框架,库,支持语言的增加,软件质量会得到提升”的开发者,其实是由于其能力不足,所以就幻想着使用较新版本的类库(框架?)就可以解决自己软件中的各种问题和缺陷。这种情况我认为应该归类为“过度依赖”,而不是“过度设计”。
hantsy 2008-06-24 00:31 引用
wangjinpeng 2008-06-23 16:17 引用