随笔|闲扯前端工程化⑦---团队是否要用云开发?

50 阅读6分钟

前面我们说过,使用脚手架、或者自定义代码片段可以提高开发效率。

那么如果从团队的角度来讲,通常的做法是事先定制代码规范,定制开发工具的配置文件,然后将这些规则和配置文件上传文档,团队内进行传阅,按规则进行配置和编码。

但是对于一台新设备,如果是一个刚入职的新手来配置开发环境,总会遇到各种各样的想不到的问题,非常麻烦。

有没有一种方法能够省去这些繁琐的配置工作呢?

有,这就是云开发

普通开发流程一般需要有这么几个事情要做:下载开发工具,下载环境(node),配置开发工具文件,安装开发工具各种插件(格式化等),然后从仓库下载代码,然后安装依赖,启动项目,而在开发过程中,项目的流畅度很大部分要依赖个人电脑的配置。

云开发是将开发环境托管由远程开发服务器变更为云服务,然后让个人电脑通过IDE或者云服务提供的浏览器界面来访问云端工作区,来进行开发。

云开发的之所以能提升开发效率,原因有以下几点:

  • 通过容器技术将开发环境所需基础设施,比如像应用程序、配置文件、IDE插件、IDE设备选项等提升到基础镜像中,从而大大提升了开发环境准备的效率,同时同样的基础环境也避免了不同项目、不同开发环境所导致的环境差异的问题。
  • 通过服务化的云开发平台,能简化使用流程,解决个人使用远程开发时可能遇到的技术困难,使得刚入职的新人也能够快速上手。
  • 对于团队而言,它能够提升团队协作效率,你开发模式有利于流程规范统一,有利于团队成员共享开发工具,以同时支持多人访问,相同开发环境有利于绝对编程等协作流程。
  • 对于公司来说,使用弹性化的云端容器环境,有利于资源利用率的提升和硬件资产成本的降低。

云开发的技术要点主要有三点:

  • 一是webIDE。

比如vscode,2020年推出的web IDE功能体验上已经基本上达到和桌面端相同的水平。web IED还有一些其他的有点,比如团队开发时可以定时通用扩展,无需变更团队成员个人的桌面。

另外,虽然基本使用仍然是打开一个包含源代码,通过空间容器进行开发,但是通过和代码仓库以及CRC的工具的对接,可以在很多流程节点上做到更平滑的体验,例如测试环境下修复bug,可以通过工具来查找对应提交版本后。点击进入到ID界面就可快速进行修复测试和提交。而相比原先我们就需要线下操作流程相比,这个效率上会提升一个台阶。

  • 二是容器化技术。

容器这个技术通常在项目部署时有很大的用途,在云开发过程中,它可以为每个用户的每个项目创建一个独立的公共空间,基于容器化分结构,以方便将基础环境、项目和用户等维度做镜像继承。

团队成员维护相同项目时,可以提升环境创建的效率。

  • 接入其他服务。

通常云厂商的云开发产品中,除了容器化工作空间和外部ID之外,也包含了与其上下游服务的对接。

比如:阿里云的 Cloud IDE产品中就包含了一键部署的功能。在自研体系内,也可以通过类似的方式将各个环节的工作流程进行串联,从而形成整体的工作流程的效率提升。

而当我们以团队的方式来实现云开发的时候,也可以找到一些效率提升的切入点。

比如:

  • 在创建新项目方面。

我们可以将包含依赖安装项目模板存储镜像,在开发时选择镜像并创建容器后就可以直接预览效果或进入开发,免去了传统脚手架的模板下载、安装依赖的时间。

  • 项目依赖版本统一方面。

NPM依赖包在不同环境下安装时版本不同。

升级的问题经常对开发和测试造成影响,一般也会通过一些其命令来锁定版本。

而在云开放模式下,我们可以解决这个问题。可以将node_module依赖目录,或者是说是依赖的偏僻的话,也可以将偏僻目录依赖版本进行关联,把这个依赖跟处于独立的这个镜像供开发、测试和雇主使用,在相应流程中就可以直接免去安装依赖流程,从而达到各环境下依赖版本的统一管理。

  • 开发工具上。

可以将开发所需的不同技术环境以及各种应用程序,制作成开发环境镜像,供开发者自由的选择。

新人无需花费大量时间去学习安装调试项目,开发环境就可以直接达到开箱即用的效果。

同时,自定义辅助工具的快速共享和共建潜能工具的共享,就可以不再局限于各自安装片包的方式。

我们通用的配置、公共依赖以及针对项目特定类型的代码、片段、缩写等等些能想到的辅助工具都可以在云平台的模式下快速落地,集成到各开发者的工作空间中。

  • 流程上。

连接代码仓库和开发环境,通过项目和开发环境的配置关联,我们可以从代码仓库的任意直连创建云端工作空间,或者进入已有工作空间。

在构建部署时遇到构建问题或者其他测试流程有问题的情况下,我们可以通过对应的提交信息,直连创建临时修复用的这个项目工作空间。

我们可以快速进行调试、跟踪、部署,免去了线下去操作的这个繁杂性。

云开发的有点和使用场景,暂时就了解到这里。

需要注意的的,代码安全问题仍是需要考虑的首要问题

通常在代码仓库中我们会设置具体项目的访问权限。对于公司内部的项目,在使用云开发模式时,应当首选支持内部部署的云服务,或者搭建自维护的云服务,而非将代码上传到外部云空间中。

另外,服务的搭建和维护也是需要考虑的问题

对于大厂来说,人力、物力、财力比较充分,资源更加充足,选择起来灵活多样。

而对于小团队来说,如果想使用云开发,则需要购买支持内部部署的云开发服务。

(完)

没有关注公众号的朋友,觉得文章对您有启发的话,记得点赞、关注、评论、转发一下。