周末小聚,几杯酒下肚,一个小伙伴开始吐槽,说他们公司新来了几个小伙伴,组成了一个新的团队,今天第一次上线,直接崩溃,项目大哥的头都开始发光了(油光瓦亮),借此做一个总结,来警醒自己。
问题
上线之初,大家意气风发,一一举手,保证自己的代码没有问题,但是,老大一声令下,打tag,上线,然后哀嚎遍地,功能不生效,代码覆盖,问题一堆,最突出的问题如下:
配置文件覆盖
配置文件的问题引发了这次的80%的问题,主要情况是:
(1)大家编写代码没有沟通,五个后端,六个配置文件,还在各自的目录当中,上线的时候,互相不知道,代码来回覆盖。
(2)对配置文件没有进行合理的版本规划,开发环境配置覆盖线上,导致文件推送,数据库读取,日志分析都出现了错位。
项目功能对接差
(1)项目功能开发的时候,大家不熟,各自开发,发一个接口dome,好多人对上下游接口可能传的非法值严重低估,导致大部分接口崩溃。
(2)没有进行联调,功能上线前盲目乐观,导致好多功能不完善。
当然还有很多,但是老话说的好,管人难,人难管,就技术方面,我们来总结一下:
配置文件
(1)一个项目的所有配置应该集中存放,不同类型的配置文件也要放到一个目录当中,三折放增大版本管理的难度。
(2)配置文件如果分为不同的环境,建议放到git目录之外,以软链的形式放到项目当中,这样保证配置文件的维护,
ln -s config project/config
这条命令可以解决很多烦脑。
(3)禁止在配置文件以外直接使用ip地址等配置信息,不利于代码维护(忘记修改)。
项目沟通
(1)预先指定好严谨的接口规范,大家安装规范开发(这个通过这次感觉相当有必要)
(2)严格执行测试通过,合并上线政策,在git版本控制当中,分出开发,测试,上线三个分支,测试分支拥有完整的环境,力求和线上环境一致。
(3)定期进行聚会,增加大家的默契(嘿嘿嘿,自己想的,这点...)
思考
个人感觉,这次的问题主要是团队成员的开发经验不足,沟通不够导致的,记下来,希望之后自己的团队不要出这样的问题,引以为戒。