论坛首页 Java企业应用论坛

“过度设计”之真实例子

浏览 84516 次
该帖已经被评为新手帖
作者 正文
   发表时间:2010-09-29   最后修改:2011-07-10
  我刚到了一家新公司,公司给我的感觉很不错,不过当开始做第一个项目时便有过度设计的嫌疑,项目不大,基本就实现CURD的功能,用struts2+spring+ibatis+extjs。拿我开发的一个简单的功能来讲,就花了大概一周,如果采用简化的技术,实际上可能只需要一两天。

  设计太多的分层,以及偶和性太高,添加或修改一个模块太困难了,而且还不知道会不会影响到其它模块。按照项目定义的规范做法,写一个Hello world,创建的代码文件个数必须达到8个!!!!

  过度分层已经成为过度设计的一个典型。项目经理说,这是另一个项目的架构直接搬过来用的,我们做一下架构上的优化。

  其实本来就没有什么优化,原来本就是简单的东西,为了显示技术,搞得特复杂。现在所谓的优化,实际上回归质朴而已。

  记得OSI7层模型就有过度设计嫌疑,可以去看一下现在的教材,都没有用OSI作为例子,尤其没有专门讨论会话层。

  如何防止过度设计,最好办法就是使用敏捷编程,他的思路就是刚刚好就行,如果有问题,再重构。另外我自己目前的实践方法就是多编程,少设计,好像也能避免。因为当你的任务主要是写代码的时候,你绝不会去写8个类来完成一个helloworld。

  其实,我所说的就是开发原型,也是《敏捷开发方法》里提到过的方法。



   发表时间:2010-09-29  
这算什么我记得我上个项目写个HELLOWORLD要添加11个文件
0 请登录后投票
   发表时间:2010-09-29   最后修改:2010-09-29
过度设计导致耦合性太高?
那就是设计的有问题了,真正的设计,包括工厂方法,策略,门面模式等等都是为了降低耦合,修改一个模块只要更改很小一部分代码或者配置就好了,你这种情况属于瞎设计
0 请登录后投票
   发表时间:2010-09-29   最后修改:2010-10-01
kakaluyi 写道
过度设计导致耦合性太高?
那就是设计的有问题了,真正的设计,包括工厂方法,策略,门面模式等等都是为了降低耦合,修改一个模块只要更改很小一部分代码或者配置就好了,你这种情况属于瞎设计


耦合(Coupling)是模块之间依赖程度的度量。 好的设计分层是不会产生耦合,把层跟层设计成相互独立,每个层都是高内聚,层跟层之间低耦合。
但盲目的分层,会使层跟层之间的依赖关系越来越复杂,修改一个层会影响其它层,从而使耦合增高。 理论上说,层越多,层跟层的依赖程度就会提高,也就是耦合提高。

0 请登录后投票
   发表时间:2010-09-29  
这种公司比较容易混日子
0 请登录后投票
   发表时间:2010-09-29  
过度设计 过度封装  这样的代码我见的多了  都是所谓“架构师”太菜和经验欠缺所致。
0 请登录后投票
   发表时间:2010-09-29   最后修改:2010-10-02
kakaluyi 写道
过度设计导致耦合性太高?
那就是设计的有问题了,真正的设计,包括工厂方法,策略,门面模式等等都是为了降低耦合,修改一个模块只要更改很小一部分代码或者配置就好了,你这种情况属于瞎设计

设计是标准的设计,但可以从简。。。
0 请登录后投票
   发表时间:2010-09-29   最后修改:2010-09-30
bonny 写道
过度设计 过度封装  这样的代码我见的多了  都是所谓“架构师”太菜和经验欠缺所致。

架构师还好

0 请登录后投票
   发表时间:2010-09-29  
bonny 写道
过度设计 过度封装  这样的代码我见的多了  都是所谓“架构师”太菜和经验欠缺所致。


应该是架构师经验欠缺所导致的,这样往往让架构师在一个小小的功能上举棋不定,让一个项目停滞不前,没有所谓完美的设计。
0 请登录后投票
   发表时间:2010-09-29  
这事儿遇到过,一个大博士做的设计,繁冗的厉害。
这个架构师的表达能力还很强,理论很深,所以,基本上把最简单的问题用当今最先进高深的技术实现了。不复杂不足以表达他的雄心壮志。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics