Gitlab:管理项目的生命周期
gitlab 是一个集项目管理,代码审查,持续集成于一身的系统,同时该系统也是开源的。
最开始的需求调研之后,我们会在 gitlab 上面录入我们要实现的需求,并为需求分配具体的负责人员。
开发人员看到需求之后,再进行具体的细分,将细分后的条目录入系统,并且打上不同的标签方便管理,同时还可以设置预计的完成时间。
开发人员针对某个需求开发完成后,将代码上传到系统,并发起合并请求。此时代码审查人员得知后进行审查,通过后合并到主仓库,并且该请求能够与现有的需求关联,方便我们查看每个需求对应的具体修改,甚至可以深入到代码的具体行数。
此时,配合系统自带的CI(持续集成)功能,我们设定了全自动的代码规范检查,基本不需要审查人员干预,只需要观察最后的结果,点击合并按钮即可。
CI不仅可以自动化代码审查,还可以实现自动编译,这样运维人员就可以直接从系统下载编译好的更新包,直接拿到生产环境部署。如果生产服务器处于联网状态,我们还可以设置CI自动部署到生产环境,运维人员的压力大大减小了。
需求 - 任务细分 - 开发 - 自动审核 - 自动部署,这就是我们软件开发的一个完整的生命周期。
当然,gitlab本身的功能并不仅于此,可扩展性很高。不过,根据团队自身规模自订流程才是正确的做法。
Node.js + Vue.js + Webpack
为什么我们选择这套技术栈?
- 只需要Javascript这一门语言,就可以完成所有开发。
- 我们的产品,需求变化频繁,Javascript的动态特性能够很好的支持需求变更
- Javascript 是开源社区最流行的语言,拥有数量最多的开源库支持
- 学习曲线平缓,一个之前完全没接触过Node.js和Vue.js 的同事,3个月后,现在写代码比我还快了。
- 更快的开发响应,你对代码的修改,能够以极快的速度马上看到,完全不需要手动重启或者其他任何操作
- Node.js 采取异步非阻塞模型,对请求的响应速度更快
- vuejs 极大减少对DOM的操作,减轻了网页开发的负担
- webpack把众多分散的js文件打包起来,并且彻底解决<script>标签依赖不明的问题
- 可扩展性强,必要时可以使用Java或者其他语言编写计算密集型任务,然后使用Node.js 调用,异步非阻塞模型非常适合做这种工作