川山甲

追求内心的非常平静!瞬间清空所有的杂念,达到物我两忘!

  博客园  :: 首页  ::  :: 联系 :: 订阅 订阅  :: 管理
思维导图
 
点击图片查看大图
 

  

介绍
 
我们平时在开发中遇到最多的不是开发新项目,而是对现有的项目进行修改和添加新特性。所以这次着重谈谈软件修改。
 
目录索引
 
#  添加新特性,修正bug;
 
添加新特性,修正bug
 
我们在平时维护现有系统的时候,我们不难发现产品比较喜欢添加行为,而不是改变或移除原本他们所依赖的行为
 
对于我们平时如何区分是修正bug还是添加新特性呢?这个是角度问题,是产品与技术人员的较量问题。
比如:产品想把logo,从左边移到右边,而且还要在右边移动。
   那么从产品的角度是修复bug,而从我们的角度是添加新特性。
     产品从不管我们为此不得不从头开始做一些新的工作的事实。——主观看法的差异而已。
我们在平时一定要做到bug修正和添加新特性必须分开记录和解决,这便于我们日后的维护。——一般我们公司是使用jira做这些记录。
 

 

改善设计
 
 改善设计的目的是改变既有软件的结构和组织,以令其更易于维护。
 
改善设计我们不得不提重构,重构是不改变软件行为的前提下改善其设计的举动。我们要保证结构的改变不会影响既有的行为,这我们通常需要编写测试代码。——每一小步都小心验证其行为不会改变。

 
 
优化
 
优化与重构的区别是目的不同。对于重构来说,是为了易于维护而做的程序结构的调整。而对于优化来说,是为了提高性能(如时间或内存)。
 
有两个词大家需要斟酌一下,“清理”和“整理”。清理有清除整理的意思,而“整理”没有清除的意思。我们在重构或优化的时候,注意这两个词的区别。——为了与其他人沟通更加准确些。
 

 
危险的修改
 
在我们需要作出修改并保持行为时,往往伴随着相当大的风险。
 
思考方式:
  在我们修改代码的时候,你脑子里是否想到以下问题。——这也是希望大家在修改代码的时候,自问一下。
    1、我要进行哪些修改?
    2、如何判断已经正确的完成了修改?
    3、如何得知没有破坏任何既有的行为?
 
 传统方法
 
我们经常使用的方式:当需求下来了,我们的第一反应是在现有的类或方法上添加和修改,而不是重新建个类或方法。
这样使用是因为费力少,更安全。
而产生的后果是既有的类和方法越来越大,越来越难理解。而且我们不得不承认,我们对代码会越来越生疏,以后再修改这个地方,从内心就会产生恐惧感,总惧怕这个地方再进行修改从而导致系统结构日益糟糕。
 
 比较先进方法
 
1、努力的去做修改,做好文档(主要是流程图)、注释。——我个人非常喜欢某个方法重写,我的做法是看是不是能抽出类或者方法来,然后重写方法。这样做的目的(1)我更加了解系统。(2)能增强我的代码编写能力。
2、雇佣更多员工,这样我们就有更多的时间进行系统分析和仔细审查所有代码。
 

 
总结
 
以上是对软件修改整个过程的理解,若有误,欢迎大家拍砖。 

参考文献《修改代码的艺术》 
 
推荐
 
 
posted on 2012-05-29 14:44  川山甲  阅读(2045)  评论(7编辑  收藏  举报