`
ww2
  • 浏览: 418075 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

重构的修炼——从重构命令行操作的实践来谈论

阅读更多

文章结构索引:
============================================================
============================================================
 
       举个例子:来到CDC这边快一年了,经历了两个“maintenance version”的开发和目前正在进行的“major version”的研发。之前的两个“maintenance version”只是Fix Bug,而且并没有多少参考资料,基本上只能依靠自己的Debug和Track手段来分析、跟踪、定位Bug,然后修正它。那段时间我们都在嘲弄自己“阅读代码基本靠猜,修改代码基本靠蒙”。可想而知,那时候,在旧有的代码中定位Bug和修改Bug尚且是一个非常困难的事情,根本没有“重构”的可能性。——但是我们还是很成功的修改很多Bug,这也意味着修改了很多代码。对我们来说,唯一的收获就是对旧有的代码结构有所了解了,间接的吸收了国外那些senior architecture的设计思想。
(主函数)           main(String[])
(处理任务函数)     task(String[])
(执行任务)         :.action()
(执行某个任务)     :.deploy(Application, XiNode)
(执行某个任务)········
(退出)             :.exit(String, int, int)
(初始化)           :.init()
(解析参数)         :.parse(String[])
(打印帮助)         :.usage()
(打印某个任务帮助) :.usageDeploy()
(打印某个任务帮助)········
(验证输入参数)     :.validate()
    private String                    mDomain;
    private String                    mUser;
    private String                    mPassword;
    private String                    mFile;
    private String                    mApp;
private String                    mArchive;
//省略
for (;;){
      if (stack.isEmpty()) {
          break;
      }
      if (arg.equalsIgnoreCase("-?") || arg.equalsIgnoreCase("-help")) {
          printHelp = true;
          if (stack.isEmpty())
             exit(null, USAGE, SUCCEEDED);
      }
      else if (processCommand(arg) || processBatch(arg)) {
          if (printHelp)
             exit(null, mAction, SUCCEEDED);
      }
      else if (arg.equalsIgnoreCase("-app")) {
         
      }
      else if (arg.equalsIgnoreCase("-file")) {
      }
      //省略
}
private void validate() {
       if (mAction == UPLOAD) {
        if (mArchive == null) {
            //省略
        }
    }else if (mAction == DEPLOY) {
        if (mApp == null && mConfigUrl == null && mArchiveUrl == null) {
            //省略
        }
    }
    //省略
}
 
声明:本文首发CSND BLog,转载请注明原文地址与作者信息,谢谢。
====================================
作者信息:
胡长城(银狐999)
TIBCO中国研发中心,Infrastructure Team
主页:
http://www.javafox.org
Blog:http://blog.csdn.net/james999
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics