zoukankan      html  css  js  c++  java
  • 代码艺术 之 修改软件

    思维导图
     
    点击图片查看大图
     

      

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

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

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

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

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

    参考文献《修改代码的艺术》 
     
    推荐
     
     
  • 相关阅读:
    C#注意事项
    组件化开发
    kettle导数删除并插入更新数据_20161130
    MySQL_各城市在线产品天订单数据20161130
    MySQL_杭州11月1-29号在线产品在线天数、销售天数_20161129
    kettle每天自动发送邮件总结_20161128
    MYSQL_与excel结合在excel中用&连接符快速创建表头_20161125
    MySQL_杭州拱墅区、西湖区近9-11月销售过的产品_20161125
    MySQL_产品昨日库存与历史入库历史出库成本_20161124
    MySQL11月16-11月21日活动赠送的优惠券使用率_20161124
  • 原文地址:https://www.cnblogs.com/baochuan/p/2523755.html
Copyright © 2011-2022 走看看