锁定老帖子 主题:“过度设计”之真实例子
该帖已经被评为新手帖
|
|
---|---|
作者 | 正文 |
发表时间:2010-09-29
最后修改:2011-07-10
我刚到了一家新公司,公司给我的感觉很不错,不过当开始做第一个项目时便有过度设计的嫌疑,项目不大,基本就实现CURD的功能,用struts2+spring+ibatis+extjs。拿我开发的一个简单的功能来讲,就花了大概一周,如果采用简化的技术,实际上可能只需要一两天。
设计太多的分层,以及偶和性太高,添加或修改一个模块太困难了,而且还不知道会不会影响到其它模块。按照项目定义的规范做法,写一个Hello world,创建的代码文件个数必须达到8个!!!!
过度分层已经成为过度设计的一个典型。项目经理说,这是另一个项目的架构直接搬过来用的,我们做一下架构上的优化。
其实本来就没有什么优化,原来本就是简单的东西,为了显示技术,搞得特复杂。现在所谓的优化,实际上回归质朴而已。
记得OSI7层模型就有过度设计嫌疑,可以去看一下现在的教材,都没有用OSI作为例子,尤其没有专门讨论会话层。
如何防止过度设计,最好办法就是使用敏捷编程,他的思路就是刚刚好就行,如果有问题,再重构。另外我自己目前的实践方法就是多编程,少设计,好像也能避免。因为当你的任务主要是写代码的时候,你绝不会去写8个类来完成一个helloworld。
其实,我所说的就是开发原型,也是《敏捷开发方法》里提到过的方法。
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2010-09-29
这算什么我记得我上个项目写个HELLOWORLD要添加11个文件
|
|
返回顶楼 | |
发表时间:2010-09-29
最后修改:2010-09-29
过度设计导致耦合性太高?
那就是设计的有问题了,真正的设计,包括工厂方法,策略,门面模式等等都是为了降低耦合,修改一个模块只要更改很小一部分代码或者配置就好了,你这种情况属于瞎设计 |
|
返回顶楼 | |
发表时间:2010-09-29
最后修改:2010-10-01
kakaluyi 写道 过度设计导致耦合性太高?
那就是设计的有问题了,真正的设计,包括工厂方法,策略,门面模式等等都是为了降低耦合,修改一个模块只要更改很小一部分代码或者配置就好了,你这种情况属于瞎设计 耦合(Coupling)是模块之间依赖程度的度量。 好的设计分层是不会产生耦合,把层跟层设计成相互独立,每个层都是高内聚,层跟层之间低耦合。 但盲目的分层,会使层跟层之间的依赖关系越来越复杂,修改一个层会影响其它层,从而使耦合增高。 理论上说,层越多,层跟层的依赖程度就会提高,也就是耦合提高。 |
|
返回顶楼 | |
发表时间:2010-09-29
这种公司比较容易混日子
|
|
返回顶楼 | |
发表时间:2010-09-29
过度设计 过度封装 这样的代码我见的多了 都是所谓“架构师”太菜和经验欠缺所致。
|
|
返回顶楼 | |
发表时间:2010-09-29
最后修改:2010-10-02
kakaluyi 写道 过度设计导致耦合性太高?
那就是设计的有问题了,真正的设计,包括工厂方法,策略,门面模式等等都是为了降低耦合,修改一个模块只要更改很小一部分代码或者配置就好了,你这种情况属于瞎设计 设计是标准的设计,但可以从简。。。 |
|
返回顶楼 | |
发表时间:2010-09-29
最后修改:2010-09-30
bonny 写道 过度设计 过度封装 这样的代码我见的多了 都是所谓“架构师”太菜和经验欠缺所致。
架构师还好 |
|
返回顶楼 | |
发表时间:2010-09-29
bonny 写道 过度设计 过度封装 这样的代码我见的多了 都是所谓“架构师”太菜和经验欠缺所致。
应该是架构师经验欠缺所导致的,这样往往让架构师在一个小小的功能上举棋不定,让一个项目停滞不前,没有所谓完美的设计。 |
|
返回顶楼 | |
发表时间:2010-09-29
这事儿遇到过,一个大博士做的设计,繁冗的厉害。
这个架构师的表达能力还很强,理论很深,所以,基本上把最简单的问题用当今最先进高深的技术实现了。不复杂不足以表达他的雄心壮志。 |
|
返回顶楼 | |