zoukankan      html  css  js  c++  java
  • 关于如何做版本发布

    问题:

    最近的项目经常需要做版本发布,但是版本发布老是出现问题,问题如下:

    比如,新手小接了一个新需求,一个功能开发完了,在本地环境和测试环境都测试通过了,

    把版本更新包提交到运维或者一线开发手上,

    发布到线上,

    通知开发,测试人员进行功能更新的确认;

    如果确认ok,更新结束;

    如果确认不ok,进入下面的循环;

    while(线上测试确认结果不OK)

    //温习下开发的功能的流程

    //在出错的代码行前后加上日志

    //部署到线上

    //测试确认?OK:NO;

    if(OK) break;

    else {

    //查看日志

    //重新进入循环

    }

    总之,相当的繁琐;


    思考: 这是一个版本发布不规范引起的问题,问题的根源在哪呢?

    在下认为,原因有2;

    1. 本地环境,测试环境,生成环境的代码(除了数据库配置文件,缓存配置文件),存在差异;
    2. 相关的错误信息没有放到容易查看的位置,出现问题无法直观明显的看出问题,从问题中的加日志可以看出,这是一种很低效率的方法;

    解决方案:

    针对这种现象和产生这种问题的原因,解决方案非常简单;

    1,首先是代码错误信息的整理,最好是在数据库中弄一张或者若干张日志表,当程序发生错误或者异常,或者功能逻辑错误的时候,把相关的判断结论和异常信息,数据进行存库,如果出现问题,可以快速的找到产生问题的原因,和依据;

    这点非常重要,可以大大减轻开发人员成为救火队长的压力,把相关的权限在后台开发给业务人员,让他们自己去协调解决问题;

    2,版本控制工具的使用,比如svn, 首先,在本地弄一个功能完全覆盖的测试,通过之后把源码分别发布到测试环境,正式环境(数据库配置文件,缓存配置文件除外),打出一个分支来作为一个主分支;

    后续的功能开发,在这个主分支上复制出一个来进行开发,开发完成,测试环境测试完之后,合并到主分支上去,通过文件比较,找出更新的文件列表;

    把这些文件整理,更新到线上,进行版本发布;

    3,更新的一个好习惯;

    首先有一个主目录, 名称是 站点域名或者应用名_时间_开发人员_需求名称

    然后里面是3个目录,作用分别是:

    序号 目录名或者文件名 作用
    1 bak 备份目录,里面分为all(全部备份),sub(部分备份)
    2 program 按照程序的部分备份目录,进行部分文件的替换
    3 sql 需求需要sql脚本
    4 readme.txt 更新的说明,文件列表,验证方法

    这些文件准备好之后,进行两次对比;

    一个是全部备份跟本地源码或者运行包的对比,这可以找出是否有文件遗漏的情况出现;

    第二个是部分备份跟program的更新文件进行对比,查看修改的地方,再次进行确认;

    如果对比都没有问题,直接把program目录整个覆盖到线上的程序目录;

    最后是按照确认步骤,让测试和开发人员进行确认;

    如果没问题,则更新完毕;

    这样做下来,一般都不会出现版本更新的问题;

    若有想法,欢迎交流;卡特 505847426

  • 相关阅读:
    Hrbust-1492 盒子(二分图最大匹配)
    数据结构——二叉树的建立和遍历(递归建树&层序遍历建树)
    HDU 1710 二叉树遍历
    HDU 2891
    HDU 2895 贪心 还是 大水题
    POJ 2896 另解暴力
    POJ 2896 AC自动机 or 暴力
    HDU 1714 math
    POJ 1328 贪心
    POJ 2109 巧妙解法
  • 原文地址:https://www.cnblogs.com/snidget/p/4818124.html
Copyright © 2011-2022 走看看