实践干货 | CodeWave如何支持多人协作开发应用

在传统软件开发领域里,要完成具备一定复杂程度的软件,通常都会由一个研发团队协作开发。软件复杂度越大,研发团队的规模也就越大。

为了让研发团队能够高效的进行协同开发,业界引入了优秀的代码版本管理工具,比如传统软件开发主流使用的代码版本管理工具是Git和SVN。

于此同时,新兴的零代码、低代码开发方式也正在快速崛起。

无论是国内阿里的宜搭和腾讯的微搭,还是软件巨头微软power app和曾估值近百亿美元的outsystem,都已经在软件开发领域里占据了越来越重要的位置。

在国内市场里,相比于定位在服务钉钉、微信生态的宜搭和微搭。网易数帆CodeWave智能开发平台则是直接定位在支撑企业自身数字化转型的软件生产全链路创新,一方面能够支持复杂的个性化软件应用高效搭建,另一方面还能够支持SaaS、本地部署和源码导出,贴合各类客户的部署需求。

针对大型软件开发,CodeWave提供了一整套完善的多人协作能力。对于用过Git/SVN的用户,能力和经验可直接复用过来;对于没有传统开发多人协作开发经验的新用户,基于低代码本身低门槛的特点,也可以快速直接上手进行协作。



产品生命周期不同阶段的多人协作模式

产品从0-1开发阶段

一个软件刚开始开发时, 并不需要考虑线上稳定版本的代码运行问题。我们往往只需要考虑一个代码主分支,多位开发者在一个主分支上进行代码推拉合并,进行协作开发。



产品已上线的阶段

当软件的1.0版本开发完成后,通常我们会在代码主分支上打一个版本标记(tag),然后将1.0版本的代码发布上线。

后续有了新的项目需求,我们就需要针对这个项目拉取一个专门的开发分支,开发者在这个开发分支上继续进行协作开发,和在主分支上的协作模式类似。

那么为什么需要拉取开发分支呢?主要有几点考虑:

1.确保主分支的代码质量。新项目开发的过程代码肯定是无法持续保证质量了,必须要在开发分支上完成开发和测试验证,才可以合并回主分支。

2.确保线上产品的运维和新功能开发可以并行。由于软件1.0已经在线上运行,难免不会出现bug需要紧急修复。这样我们可以你直接在主分支上快速的修复bug,而不收到开发分支代码的影响。

3.如果有多个项目需要并行开发,还可以再从主分支上拉取不同的项目开发分支,以确保多项目的并行开发,且代码相互隔离,互不影响。

这也是目前大型互联网公司主流的协作开发模式。



产品多版本并行阶段

在传统IT行业,以本地部署交付为主的软件行业里,随着以及市场发展到一定阶段,产品需要面向不同大客户需要交付不能兼容的功能。这些情况在前期不可预知,架构设计上难以覆盖。最终产品会被分化成多个不同的客户定制分支版本。

这种情况就比较复杂,也往往会存在很长时间。笔者曾经在诺基亚早期支撑2G/3G的软件平台上维护过类似产品。

在这种情况下,产品往往要专门引入一类角色-SCM(软件配置管理工程师),来专门对代码版本进行维护,基于每个定制版本的生命周期建立一套复杂的代码合并规则。

比如,在A分支里发现的bug,需要在B和C分支单独再修复一遍,D分支已经宣布停止维护,就不需要再修复了。等等。





CodeWave多人协作的特色能力

为更好地支撑以上三种情况下的软件协作开发,网易数帆在CodeWave智能开发平台实践中,在代码管理和代码合并两个方面分别采用了如下特色设计。

代码管理

副本隔离

和传统开发不同,CodeWave是基于BS结构的web端 IDE,软件代码并为存放自己电脑上的一个个文件里,而是以NASL(NetEase Application Specific Language)格式保存在服务器。

每位开发者可以在同一个应用下创建属于自己的副本,就相当于给自己创建了一个云端的工作空间。

副本将每位开发者的开发环境隔离开来,确保了自己的代码的安全性。

副本可以拉取分支代码库上的代码,进行代码合并,并且将合并后的代码推送到代码库里,这样就完成了多人协作。

多分支合并

除了主分支外,CodeWave支持创建自定义的开发分支。

副本可以切换到开发分支上进行代码合并和推送,以完成多代码分支下的协同开发。





应用模版支持代码复用

CodeWave还支持了给将开发好的应用导出成模版,并且给予模版创建新的应用。通过模版,一个应用就可以复制成多个隔离的应用,这样就可以满足不同客户定制版本的软件长期升级与维护。





代码合并

有协作经验的开发者都清楚,代码合并是一个非常重要,同时又很耗费精力的工作。

CodeWave结合低代码本来的开发特性,提供了业界领先的代码合并能力支撑。

组件粒度的代码合并

在开发公共页面时,有时候不可避免的会存在多个开发者协作修改同一个页面的情况。

CodeWave提供页面组件级的细粒度的合并能力,多位开发者可以精细化的进行代码合并拉取,最大化满足各类灵活的协作开发场景。





所见即所得的冲突解决

低门槛一直低代码开发相对于传统代码开发的一大优势,而所见即所得尤其是低门槛的一大利器。

在Codewave上代码合并过程中如果遇到了代码冲突,通过本地和远端代码的点选,可直接在页面上实时看到选择的效果,通过直观的对比,更加能够高效完成冲突解决。



在功能之外

汝果欲学诗,功夫在诗外。

多人协作开发一直都不仅仅是个软件功能问题,更多的是一个软件开发项目管理能力。

相关的项目管理方法,从最初的瀑布式开发进化到当今主流的敏捷开发。

而即便是敏捷开发框架也已经从满足10人团队的Scrum演化到支撑更大规模研发团队的LeSS (Large Scale Scrum)和SAFe (Scaled Agile Framework)。

本文不去介绍项目管理方法,而是就多人协作开发里最关键的事项做一些提炼:

先做好架构设计

无论是传统软件开发还是低代码软件开发,架构设计都是必不可少的。没有良好的架构设计就进入开发,结果就只是无休止的bug和返工。

通过低代码进行软件开发之前,最主要关注几点:

•做好数据建模。在开发之前一定要先做好数据建模,把底层的数据结构,表结构都确认好。后续所有的技术设计方案都应该建立在良好的数据机结构基础上,一方面在能够做出良好的技术设计,另一方面也避免了开发过程中过于频繁的进行表结构变更,带来更大的影响。

•高内聚和低耦合的功能模块划分。功能模块的功能内聚,边界清晰,不仅仅开发起来效率更高,还能够为上线后的升级带来长久的收益。毕竟我们做的每一个应用,都希望能够有更长的生命力。

•人员分工职责清晰,和功能模块关联。虽然CodeWave提供了所见即所得的代码冲突解决能力,解决代码冲突依然是个有可能会犯错的事情,所以最好的冲突解决方案就是预防冲突。在有了良好的数据建模和功能模块划分后,我们就可以将功能模块清晰的指派到人,降低多人同时开发一个功能/页面的概率,也就是降低冲突的概率。





开发过程中的重要事项

在软件开发过程中,我们需要注意以下几个重要事项:

1.做好代码备份。在开发过程中,定期进行代码备份是非常重要的。这样可以在意外情况下恢复代码,并保证代码的安全性。

2.高频提交代码。频繁地提交代码是保证团队协作顺利进行的关键。通过高频提交代码,可以及时发现问题并解决小冲突,避免大冲突的发生。同时,提交的代码也可以配合自动化测试,及早发现潜在的问题。

3.在副本上进行开发,在主应用上拉取代码和发布。多副本应该在同一个代码分支上协作开发,而主应用只专注于更新代码和发布制品应用。这样可以确保代码的统一性和发布的稳定性。

4.仔细处理冲突。当出现代码冲突时,我们需要仔细查看代码差异,认真处理。如果有疑问,一定要和相对应的开发者沟通确认。避免图省事的代码合并,给后续带来更大隐患。



One More Thing

网易数帆CodeWave智能开发平台定位于企业级智能开发平台,基于网易玉言NL2NASL领域大模型,现已支持自然语言编写代码、自然语言写SQL、代码解读等智能能力,并且更多AI加持的辅助多人协作的能力也已经在路上了。

网易数帆CodeWave智能开发平台将持续把AI能力全面集成到软件开发的全流程里,进一步加强企业数智化的基座。

敬请关注!



作者简介:何少甫,网易数帆CodeWave资深产品经理,多年B端经验,现主要负责CodeWave AI智能编程、NASL语言编程实践相关的产品规划与设计。

  • 27
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值