在我刚进入团队的时分,腾讯课堂小程序的工具链还处在比较原始的阶段。除了在编码层面应用了 web 比较成熟的 scss、postcss、lint、typescript 别离 gulp 做一些语法层面的编译以外,在测试、构建 npm、上传、设置体验版、发布等阶段都是
依赖的小程序开发者工具和管理后台,人工手动操作来完成的。
在这个阶段,大部分都是简单天时用一些现有的工具,我们称之为腾讯课堂小程序的石器时期。
这个阶段存在几个明显的问题:
构建和上传依赖人工操作,有可能会由于流程操作失误而招致现网事故;
由于发布流程的不规范,需求并行时经常会呈现发布撞车的情况,招致体验版相互掩盖构成预发布考证本钱。
为了解决人工操作带来的隐患,我们从零开端基于小程序提供的命令行工具打造了小程序 CI。让源码编译、构建 npm、上传、生成开发版 / 体验版二维码、自动化测试等流程在 CI 流水中自动流转。
同时我们也将小程序 CI 与企业微信打通,将小程序的构建进度和小程序二维码实时同步过去,而且也支持经过企业微信主动触发小程序构建,处置了在测试过程中由于开发版二维码过时而中缀测试的问题。
为了解决发布流程不规范的问题,我们将小程序的发布也接入到了业务发布平台。在发布平台上中止 CheckList、CodeReview、发布评审、发布环境管理、发布静态资源等流程的流转,确保需求发布的质量、合规和有序.
处置了开发流程中的问题之后,我们将更多的肉体放到了小程序的研发效能与性能上。开发和构建阶段我们打造跨端的公共模块,经过 kbone 中止同构开发,应用云开发来辅助首屏性能优化,以及替代部分后台的开发,在构建方面将构建工具从 gulp 迁移到 webpack,能对构建常务中止更细致的优化。
在发布之后,经过完善监控诉警,将发布质量做到可视化的表现,并能够对呈现的问题得到及时的接纳和感知,减少用户的反响。
到这里我们可以看到整个技术演进的过程,它涵盖了小程序开发、构建、测试、部署发布以及监控,构成了小程序的 DevOps 开发方式,这其中细致是怎样做的呢?
相关推荐