锁定老帖子 主题:为什么在添加一个新功能前先整理代码?
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-09-12
在添加一个新功能前,要先整理现有的代码,使其能非常容易的添加新功能。 一直对这句话理解很肤浅,只是从字面意思理解而已。今天写代码突然有种感觉,好像自己理解了,所以拿出来和大家分享一下,也自己记录下来。 我做一个库存管理的模块,在出入库时都会有更新库存台帐、更新库存账目和更新库存容量的动作,今天添加了一个盘点的功能,在盘点时也更新库存台帐、库存账目和库存容量。由于在盘点时,盘点物料明细中没有物料主键和库存主键,只有其名称,所以直接去更新库存账目和库存容量不能实现,只能从库存台帐中取物料主键和库存主键才行,然后才能完成功能,这样就有点走弯路。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2008-09-12
常见的整理代码的时机有两个,实现一个功能之前,以及之后。
每一小块功能做完了以后应该始终给自己一点时间,消除显而易见的“坏味道”:长方法,重复,不清晰的条件逻辑,等等。这个时候的清理通常不会产生新的对象,因为这时候你通常不知道什么位置需要扩展。你只是让代码变得干净。 做新功能之前应该始终给自己一点时间,找出要做的事情和现有代码之间的关系:是修改,还是扩展。一个修改应该只影响一处代码,找到你应该修改的那一处。如果修改点/扩展点不清晰,重构让它变得清晰。然后再做你需要的修改。 |
|
返回顶楼 | |
发表时间:2008-09-13
现有的代码经常会被后来的代码使用到,就像大楼的基础,如果现有的代码不做整理,就好象地基不深、不牢,对整座大楼的质量会产生问题。
|
|
返回顶楼 | |
发表时间:2008-12-03
photon 写道 现有的代码经常会被后来的代码使用到,就像大楼的基础,如果现有的代码不做整理,就好象地基不深、不牢,对整座大楼的质量会产生问题。 如果现有的代码会被以后经常用到,您是怎么编程的呀?难道凭着感觉,我要加功能了,所以改代码,而没有需求文档或者别的规范??我认为,软件设计时就应该考虑到软件的现有需求,还应该考虑到未来可能的需求..代码应该在功能之后整理就好了 |
|
返回顶楼 | |
发表时间:2008-12-03
sshquery 写道 photon 写道 现有的代码经常会被后来的代码使用到,就像大楼的基础,如果现有的代码不做整理,就好象地基不深、不牢,对整座大楼的质量会产生问题。
如果现有的代码会被以后经常用到,您是怎么编程的呀?难道凭着感觉,我要加功能了,所以改代码,而没有需求文档或者别的规范??我认为,软件设计时就应该考虑到软件的现有需求,还应该考虑到未来可能的需求..代码应该在功能之后整理就好了 2002年穿越过来的? |
|
返回顶楼 | |
发表时间:2008-12-03
"坏味道",好词,想不起在何年马月的一本书看过这个词了
|
|
返回顶楼 | |
发表时间:2009-02-27
我的推荐添加完功能后整理;有时间的话我会在功能添加前整理,完成需要添加饿功能后,再看看能否再整理。就是麻烦了点 !!!
"坏味道"没记错的话应该是来自 《重构 改善既有代码的设计》 |
|
返回顶楼 | |
发表时间:2009-02-27
futily 写道 我的推荐添加完功能后整理;有时间的话我会在功能添加前整理,完成需要添加饿功能后,再看看能否再整理。就是麻烦了点 !!!
"坏味道"没记错的话应该是来自 《重构 改善既有代码的设计》 我记得是gigix翻译的.... |
|
返回顶楼 | |
发表时间:2009-03-09
最后修改:2009-03-09
mock1234 写道 mock1234 写道 根据行业经验来判断哪些需求不是简单的眼前的需求这么简单,而可能是一个比较多类似需求的代表,这就够了!
不得不说,这确实是XP所没有提及的。因为大师们都天生有这个素质,习惯于自己看到了未来然后给路人指出眼前脚下的道路。 人们不喜欢增加功能代码的主要原因是恐惧. ------------------------------------------ 装修有什么难的 为什么大家没事不装修? 1.家具放在哪里 2.就是拆墙,是否承重墙 3.刨地板,是否有管线 4.不能一间一间的装只能全装一遍,时间体力耗费大 5.不能确定自己的设计自己会满意 6.由于现在的装修还能凑合. 7.对装修公司的不信任. ----------------------------------------- 这与软件有太多相似之处了. 再来看看公司的装修 ----------------------------------------- 1.吊顶.可以把以后所要加的可能性留出空间 2.全开间,可以用隔断来分割房间 3.地毯,不用刨地 4.工位都一个样子,想移就移了. |
|
返回顶楼 | |
发表时间:2009-06-01
抛出异常的爱 写道 mock1234 写道 mock1234 写道 根据行业经验来判断哪些需求不是简单的眼前的需求这么简单,而可能是一个比较多类似需求的代表,这就够了!
不得不说,这确实是XP所没有提及的。因为大师们都天生有这个素质,习惯于自己看到了未来然后给路人指出眼前脚下的道路。 人们不喜欢增加功能代码的主要原因是恐惧. ------------------------------------------ 装修有什么难的 为什么大家没事不装修? 1.家具放在哪里 2.就是拆墙,是否承重墙 3.刨地板,是否有管线 4.不能一间一间的装只能全装一遍,时间体力耗费大 5.不能确定自己的设计自己会满意 6.由于现在的装修还能凑合. 7.对装修公司的不信任. ----------------------------------------- 这与软件有太多相似之处了. 再来看看公司的装修 ----------------------------------------- 1.吊顶.可以把以后所要加的可能性留出空间 2.全开间,可以用隔断来分割房间 3.地毯,不用刨地 4.工位都一个样子,想移就移了. off topic 一个,为什么大家不按照公司装修的方法来装修呢? |
|
返回顶楼 | |