当前位置: 主页 > 浏览 >

软件过渡开发

收藏 时间:2009-12-27 来源:查看 收藏:ubb 阅读:334 标签:方法  技术  一个  程序员  开发  使用  
软件过渡开发: 就是程序员使用了不必要的方法, 对所开发的软件在可用范围外, 采取了不必要的扩展. 分为技术和业务上的过渡. 技术上, 程序员一般为了学习的目的, 将新学习到的东西用到了日常的工作上. 业务上, 程序员希望将一些组件进行无限的扩展, 以满足可能而未形成需求的设计. 任何一个项目经理或开发经理对此都头痛不已, 不仅不能按时完成任务, 还造成软件性能低下, 难以维护等问题.

 

软件过渡开发: 就是程序员使用了不必要的方法, 对所开发的软件在可用范围外, 采取了不必要的扩展. 分为技术和业务上的过渡. 技术上, 程序员一般为了学习的目的, 将新学习到的东西用到了日常的工作上. 业务上, 程序员希望将一些组件进行无限的扩展, 以满足可能而未形成需求的设计.

 

任何一个项目经理或开发经理对此都头痛不已, 不仅不能按时完成任务, 还造成软件性能低下, 难以维护等问题.

 

新技术

新技术是过渡开发的头号罪人. 有时候, 对于一个很简单的需求, 无论是客户/经理/销售/技术主管往往推荐使用最新的技术(当然是各有目的的), 最先进的设计. 结果呢?不言而喻了. 我曾经接手过一个系统, 有两期. 第一期使用jsp/servlet, 第二期使用的是struts, ejb. 留给我的只有痛苦了, 第一期的程序较整洁, 写的东西易懂, 直接, 维护也很简单. 而第二期的程序要边改边骂, 客户不满意速度, 也不满意效果.

 

新方法.

来看看这个程序.

:

class A{

  private int id;

  public void getId(){

    return id;

}

public void setId(int id){

  this.id=id;

}

}

方法A

A getA(){

A a = new A();

  a.setId(getValueA ());

  return a;

}

方法B

interface Updater(){

  public int getValueId();

}

class A1 extends A{

  public A1(Updater upd){

    setId(upd.getValueId ());

  }

}

A getA(){

  A1 a1 = new A1(new Updater(new Updater(){

    public int getValueId(){

      return getValueA();

    }

}));

  return a1;

}

可以对比一下, 方法A和方法B. 从几个方面看, 代码长度/执行效率/可维护性, 谁优谁略? 真难以想象, 可以写的出方法B的程序员能花那么多心事去写这么些有难度挑战性的代码来.

 

未来需求

这是一个有想法的设计师或程序员经常会犯的错误. 我也曾经犯过这个错误, 当时需要操作一个XML文件, DOM提供的方法不太够, 就花了好几天写了一大个XML文件操作的通用类. 结果时间花了不少, 能用到的方法也就那么一点. 现在想想, 以前也确实傻得可爱.

 

要知道什么是需要得, 什么是对事情没有帮助得, 我慢慢长大.


顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论 所有评论
你还没登录,请先登录后再来评论!
推荐内容
新知先觉