团队作业(二)
基础技能
一、git协作方式
1. git的工作流
目前项目使用的是git来进行项目管理(需要熟悉git的工作流)、git的团队协作流程
1.1 分支管理
目前项目参考的是这个模型
团队协作
- master:受保护,负责分支的版本控制,3.0.0、3.0.1、3.1.0、3.2.0、...
- release:目前还没有,主要用于线上环境,分出一个release的分支(介于dev与master中间),作为临时处理
- dev:开发分支,也是团队协作中主要会用到的分支,代码提交到dev分支,负责代码提交、拉取、审查、合并...
- feature:成员分支,每个开发者会建立一个feature,类似feature/xxx,作为个人开发的分支,用于个人本地代码的提交、拉取仓库代码、合并本地代码,所以新加成员时,需要创建一个个人的feature分支
项目分支
1.2 代码提交
个人git的代码提交
- 首先,需要先将dev的代码merge dev到feature
- 再通过feature进行commit
- 并push本地代码到仓库
- 在gitlab的管理页面进行代码合并的申请
- 等待团队成员review代码,进行合并
提交合并请求
1.3 代码审查
审查方式有两种:
- 如果团队控制在6人以内,可以由2个能力比较强的、业务熟悉的来统一作为代码reviewer;
- 如果团队人员比较多,可以任务级别的两两互相reviewer
1.4 代码合并
具有主要开发者权限,可以进行最后的合并操作,feature的分支合并到dev分支,dev分支合并到release或master分支;
建议:需要添加标签、里程碑!方便后面的成员管理。
2. gitlab-issue与wiki
进行团队协作(可用jira代替)
2.1 执行计划
issue使用
issue的作用表现在方方面面,它可以是用于记录一些公告、制定OKR、项目讨论的内容、发布任务(日常开发、探究性、文档、部署)、重要的技术积累、一些想法。
目前团队中主要用于:
- OKR-制定周目标
- 发布任务(由团队成员认领)
- 发布公告-记录一些关键的技术点
2.2. 里程碑
这也是OKR的一部分,用于标记目前代码提交、任务发布过程中所属阶段,确定目前处于什么阶段
2.3. 标签/标记
这个功能很牛,如果运用得好,就是神器。
目前团队中主要用于:
- 标记
优先级
(优先级1、2、3) - 标记
参与的成员
(可以作为每个月查看成员认领了什么任务,完成了什么) - 标记
任务状态
(正在做、待认领、已完成,方便认领任务) - 标记
任务类型
(文档、部署、公告)
采访学长
项目开始前要做什么?
好好做需求分析,不能流于表面,要去深层理解用户的真实需求。
提前做好项目时间规划,可以先定下一些简单的小目标,不一定要做出完整的框架,可以根据实现过程慢慢完善。
查找资料,在心中对项目有一个大致想法。
项目实现过程中需要注意什么?
组长要起到监督和督促作用,定期布置任务,督促完成任务,任务要定时定量完成。组员也不能完全依赖组长,自觉很重要。
团队要多讨论,多交流,集思广益,不是说个人的任务就一定要个人完成。
每一阶段任务所有组员都要齐心协力,组内统一意见,如果有不同的想法就得票选出最优解。
需求分析
参考蓝墨云班课中资源,撰写本项目的《需求规格说明书》,并提交至码云。
在随笔中附《需求规格说明书》的Git链接(markdown文件及pdf文件,tip:pdf可由markdown转pdf工具得到)。
https://gitee.com/cfqlovem-521/eDocTrans/blob/master/需求规格说明书.pdf