使用教程视频
视频中提及的相关链接
点击查看GitHub中代码引用(Code Reference)功能的源代码及文档
视频文字萃取
好,这个视频这个开关的,Code reference 功能的▪啊,一个教学简单的教学视频▪啊。什么是▪code reference 代码引用呢?它的作用是什么呢?▪实际上我们在开发的过程中,尤其是大量的使用figure flash 的过程中▪啊,我们▪往往会有一个开发环境,一个生产环境。
▪▪通常会出现一个什么问题呢?就是我们在开发环境的代码中呢,▪加入了一些feature flag 。▪▪并且呢,我们在开发环境的配置中心呢,把这些非社会的建立▪成功,▪一旦开发完呢,我们会把我们的新的▪这个commit TE ▪部署到▪从▪开发环境部署到生产环境,▪这里边会有几个问题啊,▪举两个▪主要,▪呃,▪经常出现的问题,▪第一个就是说我们的代码中,比如包含了feature flag a 这个feature flag 。
▪▪但是呢,▪▪我们的生产环境中并没有给他▪没有创建这个flag ,▪也就是说▪啊,我们的代码层面呢,从开发环境投资环境▪完美地▪都一直都有flag a ▪这个这个这个开关,▪但呢,▪但是实际上在我们的配置中心呢。▪从开发环境▪变到生产环境过程中并没有这个开关,▪那这个时候呢,在▪这个产品执行的时候,▪就会在正▪呃程序运行的时候找不到这个开关。▪▪啊,从而只能去执行一直▪获得的▪默认的返回值,从而没有办法达到▪呃希望实现的效果,比如功能开关,▪比如恢复这些效果。▪▪那▪这个时候呢,实际上▪我们就需要有一个reference ,▪在他▪编译的▪过程中,▪或者在我们的CSC 的流水线过程中,无论是在开发环境之前呢,还是在生产之前,▪我们这个扣reference 的模块儿,他会去执行▪检查你的代码。▪中的▪feature flag 调用的部分。
▪▪与我们线上的徘徊,呃所对应的环境的配置是否相符,▪如果说我们发现线上的flag ▪a ▪不存在,▪而代码中存在,▪这个时候就会报错▪啊,停止我们继续的部署▪跟编译工作。▪▪或者说假设生产环境的一个开关呢,▪他实际上▪呃以前存在,▪但是现在呢,被比如说被这个软删除了,▪也会同样出现同样的报错。▪▪那我们举一个,▪那他到底是怎么用呢?其实也很简单,▪目前为止呢。▪▪我们开发的▪呃扣reference 是一个基于node JS 的一个模块,▪当然它可以用在▪呃这个note JS 作为一个单独的成语执行呢,它可以用到很多很多的▪技术栈,比如现在的javascript ,▪他在angular ▪react 都可以用,▪或者说你可以把▪同样把它放到Java 或者Python 或者net 语言中▪啊,他们怎么用?
▪今天这个教程呢,不具体去讲解▪啊,因为我们实际上这个模块的实现并没有那么完善▪啊,今天只是告诉我们一个原理的使用原理,▪那其实调动很简单,我们这个案例呢,是使▪使用了我们自己的▪敏捷开发的前端项目去做一个案例▪啊,这是一个angle 的前端项目。▪▪▪那我们实际上只需要按照教程▪去通过▪NPM 4的方式▪啊,▪把它安装到我们的项目中,▪然后呢,通过一些配置方式,▪让他呢在我们项目中可▪呃最便宜的时候可运行。▪▪嗯,比如▪我们在这个,▪嗯。▪▪▪▪▪▪Package 是叫Jason ▪▪的,编译过程中,比如script build their beautiful 中呢,我们会首先去执行,▪呃,▪Ku rap ▪对应的这些。▪▪▪嗯,对应的这些这个。▪▪▪嗯,对对对一些配置的工作,▪那实际上▪我们比如在build 当中,我们可以把一些基本配置▪逻辑▪啊,指定在这个文件中,▪或者是f f config Json 中,如果是生产环境。▪▪▪那有这个能力之后呢,当我们进行的基础配置之后呢,当我们使用比如一个语句▪啊,▪我们说点n PM run build prop 中呢,▪啊,我举个例子,▪呃,比如说我们在。▪▪嗯。
▪▪▪▪▪▪▪▪▪在一个,▪呃,▪比如说我们在一个。▪▪▪▪在一个文件中,▪我们再用电动开关的时候,▪我们调用书写一行,这个一行的▪代码呢,▪是▪这里边的开关呢是不存在,在远程▪全部存在一个开关,▪当我保存之后,▪我去执行n PM run build 这个指令的时候,就▪一个编译指令的时候,▪我们看一下它会发生什么情况,▪他会发现▪它有一个报错。▪▪他会告诉你▪啊在。▪▪▪某些地方▪啊奶和代码中的某哪些行,▪它存在一个▪呃▪开关,▪这个开关在我们的生产环境中并没有被配置。▪▪那这个时候▪我们在本地▪编译或者开发过程中▪就可以知道啊,我们差什么东西,▪我们把它。▪▪呃,再去把它这个开关呢,在我们的生产环境中出现之后,我们再去▪实现,▪或者呢,我们把这个修改,比如说啊,这是一个错,不存在开关,其实我写错了,▪我把这个不必要代码删除之后,▪然后我再去编译的话,可能就过了。▪▪这样子,▪嗯,▪就是这么简单,▪其实在本地编译的就是这样的一个简单的方式,
▪那如果说在我们的我们不可能,可能我们▪通常▪提交代码之后▪不会在本地做build ,▪往往是在CS 的对象做的,因为其实▪我们可能会▪多个同呃同学们同时做多个功能,▪然后对多功能家天下开关,或者一天可能会部署好几次好几次,▪然后每个人的同步是不一样的,▪那这个时候我们会▪需要把这个能力放在CD 中,▪那我给大家演示一下,在CD 中呢。▪▪啊,这就是我们的一个真实的一个场景,▪就是在我们▪get up action 里边呢,我们会发现▪执行到▪▪NPMQ 的SD 不呢,▪他也会▪进行同样的报错。▪▪啊,▪告诉我们说诶。▪▪这个地方出了问题,▪也就是说我们的敏捷开关的线上配中心,▪跟你代码里边儿有不服的一样▪啊,▪停掉▪啊,▪希望解决这个问题之后再去执行,▪这样就大幅度的▪避免了很自动化,避免了这个▪刚才我指的这一个▪呃代码中的feature flags ▪存在,但是线上的环境中不存在这个▪呃不好的现象。▪▪▪这就是一个简单的rap ▪god reference 的一个一个▪案例▪啊,如果大家希望这个,▪呃。
▪▪这个视频教学有用了▪啊,可以▪帮我们点个赞▪啊,▪如果说这个教程有问题啊,可以给我们给我们留言▪啊,或者说▪啊,希望我们去补充一些功能▪一些能力▪啊▪比如说你们发现现在的这个▪代码可能▪只是用Angela 或者▪部分的SDK 。▪那你们希望可以有更多的能力使更多的生更多的我们的,比如▪微信小程序SDK xn ▪react SDK ▪都可以给我们去沟通▪啊,或者在我们的get up 是依旧上去留言▪啊,我们在我们会积极的想▪这些改进▪啊,尝试给大家提供一个最好的方案。▪▪谢谢大家。▪