锁定老帖子 主题:重构,是否适合“当前”开发模式?
该帖已经被评为新手帖
|
|
---|---|
作者 | 正文 |
发表时间:2009-04-22
最后修改:2009-07-02
这里为了减少争议,我说明一些大概的细节。一个系统在SPRING+STRUTS2+HBIERBATE下,在框架的范围内开发。严格的分层,各层之间使用IOC进行解偶,而且,每一个功能,写一个模块。而且,各各模块之间相对独立,没有父类,子类。最多只是引用一些公共包中的方法(比如:取得当前时间,等等)。在这样的情况下,我感觉使用重构的意义不大,如果为了重构而重构,明显会降低编码的速度和效率。因为我在编码时被打断会显的非常不爽,更别说在编码中进行TDD了。 不知道大家怎么看这个问题。请大家在文章范围内讨论,勿夸出范围,谢谢。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-04-22
即使开始时需求考虑多么周全,也无法避免出现需求的改变.即使开始时设计的多么周到,也会有无法适应需求的情况。
当需求出现变化的时候,此时就要更改代码,更改代码的时候,如果出现bad smell,此时就需要重构.重构的目的,并不是为了实现某个需求,而是为了适应某种需求的变化.在敏捷开发中,都是遵循用"最简单的方法完成工作".所以,重构成了敏捷开发中必不可少的一部分. 至于TDD,我的愚见就是应该Test first 测试先行.在编码前就先写好测试代码,部分人会认为功能都没出来,怎么写测试?打个比方,砌墙时,你看师傅是先把墙砌好,在用线量量看平不平,还是先用条线拉直,然后砌墙是就以这条线为标准来砌呢?答案显然。而且先写测试,你会先用到该功能,可以说是一种体会,会对你之后写的功能有了更好的灵感。还有,重构后的代码,还可以用TDD测试,其实TDD,也是为日后的维护减少工作量。 |
|
返回顶楼 | |
发表时间:2009-04-22
zorwi 写道 即使开始时需求考虑多么周全,也无法避免出现需求的改变.即使开始时设计的多么周到,也会有无法适应需求的情况。
当需求出现变化的时候,此时就要更改代码,更改代码的时候,如果出现bad smell,此时就需要重构.重构的目的,并不是为了实现某个需求,而是为了适应某种需求的变化.在敏捷开发中,都是遵循用"最简单的方法完成工作".所以,重构成了敏捷开发中必不可少的一部分. 至于TDD,我的愚见就是应该Test first 测试先行.在编码前就先写好测试代码,部分人会认为功能都没出来,怎么写测试?打个比方,砌墙时,你看师傅是先把墙砌好,在用线量量看平不平,还是先用条线拉直,然后砌墙是就以这条线为标准来砌呢?答案显然。而且先写测试,你会先用到该功能,可以说是一种体会,会对你之后写的功能有了更好的灵感。还有,重构后的代码,还可以用TDD测试,其实TDD,也是为日后的维护减少工作量。 感觉您没有完全理解我的意思。 不过还是非常感谢您的回帖。 关于《重构》,我指说这本书是否适合我们现在的这种开发模式(什么开发模式,请看我的帖子顶楼)。 其实我到认为,重构更适合从什么都没有到什么都有。就像您说的,不断变化中,寻找机遇。不过问题就是,我们现在都在框架的范围之内,借助框架的一些思想去实现代码,感觉重构里的许多东西并不十分适合当前的模式。 |
|
返回顶楼 | |
发表时间:2009-04-22
被编码是时打断,重构也算是一种编码!!!
重构是是一种技能! 并不是因为重构而重构,重构的目的是为了让软件变的可扩展、可维护! |
|
返回顶楼 | |
发表时间:2009-04-22
1、没有银弹
2、重构同上 |
|
返回顶楼 | |
发表时间:2009-04-22
框架定死在了SPRING+STRUTS2+HBIERBATE范围下,并严格按这个模式进行开发,还谈什么重构,剩下的仅仅是按业务修改的问题了,如果你满足于这样的现状,那么重构对于你来说确实是不合适
|
|
返回顶楼 | |
发表时间:2009-04-22
chgle 写道 框架定死在了SPRING+STRUTS2+HBIERBATE范围下,并严格按这个模式进行开发,还谈什么重构,剩下的仅仅是按业务修改的问题了,如果你满足于这样的现状,那么重构对于你来说确实是不合适
业务很简单么 业务不变化么 业务就不是代码组成的么 重构能重构的 把不能重构放在一边 |
|
返回顶楼 | |
发表时间:2009-04-22
抛出异常的爱 写道 chgle 写道 框架定死在了SPRING+STRUTS2+HBIERBATE范围下,并严格按这个模式进行开发,还谈什么重构,剩下的仅仅是按业务修改的问题了,如果你满足于这样的现状,那么重构对于你来说确实是不合适
业务很简单么 业务不变化么 业务就不是代码组成的么 重构能重构的 把不能重构放在一边 重构=修改代码?说了是严格按SPRING+STRUTS2+HBIERBATE这个模式进行开发,但是往往复杂的系统会有自己额外的一些辅助框架和组件,或者是在SSH框架下进行扩展,这时在具体业务改变的时候重构的意义就体现出来了 |
|
返回顶楼 | |
发表时间:2009-04-22
treblesoftware 写道 因为我在编码时被打断会显的非常不爽,更别说在编码中进行TDD了。 看来楼主根本没有理解TDD的思想啊 |
|
返回顶楼 | |
发表时间:2009-04-22
没干过活的人死也不相信需求会变
|
|
返回顶楼 | |