前端团队的代码,怎样才能更好的管理?

目录

背景

寻找合适的工具

建立代码仓库

施行版本控制

自动化集成部署

控制权限

代码合并权限

流水线运行权限

代码评审

复盘总结

项目文档管理

总结


背景

        最近在整理电脑文件时,发现了很久以前自己创建的前端项目及相关的文档,虽然只是一个用vue2写的H5列表页和详情页模板;但回顾过程,以前写完的代码用build打包,xshell连接堡垒机,再基于xftp将dist目录拖动到目标文件夹完成代码更新。也想起了团队协作开发时各种代码不同步和节奏不协调的问题,关于如何才能更好管理前端代码,以现在的视角回顾,我认为是有必要重新梳理和沉淀一下了。

寻找合适的工具

        当时使用的这套流程,如果是一个人开发,可能是比较快速的方式,但随着业务标准化和产品化之后,就远远不适应团队的协作开发了。市面上也迅速出现了一些代码管理系统,旨在简化团队协作和代码管理流程,从而提高开发效能。

        工欲善其事,必先利其器,选择一款适合当下团队的代码管理工具就十分重要。如我们公司现在使用的阿里云云效,这是一个DevOps,将项目管理、代码管理、知识库等元素集成到一起的一个产品,非常适合大型产品开发管理使用。由于我们公司一直使用阿里云的服务器,所以使用云效产品是成本最低的一种选择方式。当然,市面上也有一些类似的产品,如Teambition、PingCode、TADP、禅道、gitee等。

建立代码仓库

       管理的对象是代码,那么创建一个代码仓库以便我们在团队合作时,对代码进行统一管理,也有利于公司的组织过程资产和知识产权建立。

        代码组、代码库属于一对多的关系;代码组可以用来区分项目,比如标准产品或者某个项目的定制开发。代码组里有若干个代码库,有某个项目的所有代码工程。

施行版本控制

        Git是目前企业中最流行的一种版本控制工具,适用于目前的团队协作开发,每个人都可以在自己的分支上独立开发,然后将自己的次要分支合并到主要分支上。开发人员可以做克隆仓库代码、同步分支代码、提交合并请求、解决冲突等操作。

        对于大型项目,比较主流的就是Git Flow工作流,将主要分支分成了master、develop、release、feature等,以便适应更复杂的环境。我们团队引入的版本控制流程算是借鉴了Git Flow的思想,但有所差异,分为了开发分支、测试分支以及生产分支,分别对应开发环境、测试环境、预发布于线上环境。

自动化集成部署

        像云效这类产品也提供了自动化集成和部署的服务,解放我们的双手,可以不再手动打包前端项目了。

持续集成(CI):在构建中可以执行自动化测试、流水检查、构建打包等任务,可以发现一些低级错误,以确保部署的代码具有可靠性。

持续部署(CD):可针对不同的环境进行配置和自动化部署。

控制权限

        当前端团队人数较多时,对于权限的控制就十分重要了。试想如果每个人都有权限无条件合代码、发版,那么过程是不可控的,代码的质量也无法得到保障。

        对于不同环境不同的作用,可以结合开发效率和风险管理,针对性配置权限。

  • 开发环境(develop):便于开发人员自测开发后的效果。
  • 测试环境(release):便于测试人员去测试和回归功能。
  • 预发布环境(master):模拟生产环境供所有人去测试最终的可交付成果。
  • 生产环境(master):客户使用的环境。

代码合并权限

  • 开发分支(develop):需要权限控制,但相对宽松。除了前端负责人、技术经理外,可以指定某迭代或者某版本开发人员负责人拥有权限,需评审代码没问题后方可合并,既能保证开发效率,也可管理一定的代码质量。
  • 测试分支(release):需要较严格的权限控制。可以专门指定负责人负责代码的合并工作,如前端负责人、架构师,以确保合并代码时有较严格的评审工作。
  • 生产分支(master):最为严格,仅前端负责人及其backup拥有,作为代码评审最后一道坎,需要严格管理。

流水线运行权限

  • 开发环境:所有的开发人员都可以拥有,极大程度确保开发人员的工作进度,一些特殊情况可能要发自己分支,但一般情况下需要发develop分支。
  • 测试环境:所有参与测试的人员可以拥有,因其主要是为了测试工作,保证其稳定性十分重要,可以避免一些开发私自修改代码导致环境崩溃的情况。
  • 预发布/生产环境:建议仅有拥有者和开发、测试负责人拥有,不必多言,这个环境极其重要。

代码评审

        代码评审我们也常叫做CodeReview,可以在提高代码质量的同时也提升团队人员能力。叫上负责人、架构师、技术经理等大佬去翻阅自己之前写的代码,有写的不错的地方进行分享,写的不好的地方加以改进,可以渐渐完善代码编写的规范和标准,也可以制定一些红线规则约束。

        使用评审工具减少评审工作耗时,提高评审效率,这毕竟是一个锦上添花的事情,不评审代码也能跑,业务也能执行,但浪费太多时间会对整体的迭代进度不利。

复盘总结

        每个版本发布后,需要召开复盘总结会,可以是就事论事的也可以是轻松愉快的。对该版本从设计阶段、开发阶段再到测试阶段的工作归纳总结,有哪些做得好的地方,有哪些值得改进的地方,可以提问如:前端的基建是否需要推进?前端代码评审流程是否太过冗长?前端还有哪些可以为业务赋能的地方?

        个人认为当成团队建设比较好,可以酌情组织聚餐、下午茶等活动,提升团队凝聚力和归属感。

项目文档管理

        及时对组织过程资产更新,如前端的技术架构文档、前端流水线配置文档、前端组件说明文档、前端流程更新、模块负责人员表等,有必要时通过邮件或者群聊等方式告知相关人员。

总结

        以上的分享,多是以本人亲自参与的项目为例,其目的是为了让前端代码的迭代过程可控,提高开发质量,确保前端代码的健壮性和稳定性;当然在不同的组织、项目的环境下,需要对症下药,可能长期使用记事本、excel等工具也是某些团队的管理方式,同样简单高效。

        大家若有更多元的角度或者更丰富的经验,欢迎大家参与讨论学习。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

划雨悦潭之赋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值