Feature Toggle 初识

2017-09-03  本文已影响394人  星期六1111

本来想用英文来写这篇文章,可想想还是算了,自己的英文可能说不清楚。。。

description

前几天的有一个关于feature toggle的session,因为自己英文的原因听的糊里糊涂的,自己找了些资料学了下。

Queation

  1. 什么是feature toggle?
    feature toggle 是一种强大的技术,它可以允许团队不用修改代码而来改变系统的功能行为。
  2. 为什么使用feature toggle?
    在团队中,我们完成了一个功能,但PO说暂时不需要这个功能。怎么办?删除或注释代码?No!又或者是这样的一个场景,你每两个周发布一次生产版本,但是同时又需要去维护一个很多个月才能进行发布的特性分支。那么如何去保障团队成员们在开发主线(mainline)上的工作不受到未完全实现的特性分支的影响呢?feature toggle 可以解决这个问题。
  3. 如何实现feature toggle?
    基础思路:存在一个配置文件,配置文件里定义了许多的toggle,这些toggle都是待发布的特性功能。这一些toggle定义了哪一些features需要呈现,哪些并不需要。
    例如:在一个网站中,前端使用jsp,它的代码是这样的:
<toggle name="petSurvey">
    <p>you are so beautiful!</p>
</toggle>

当你将配置toggle的开关打开之时,features的功能将会随之打开,否则将会我们的app会继续忽略features功能代码。


feature toggle.jpg
  1. 如果不用toggle,我们该如何实现这样的功能?
    假如我们的代码之前是这样的:
function newFeature(){ //implementation lives }

现在我们的要用一种新的办法来实现,我们该怎么做?或许我们可以使用一个用于判断的标志变量:

 function newFeature(){
    var useNewFeature = false;
    // useNewFeature = true; //uncomment if you want to use new ways...
  
    if( useNewFeature ){
    //TODO: new ways to implementation
    }else{
     //TODO: old ways to implementation
    }
  }
  1. toggle在前端中如何使用,在后端中如何使用?
  2. toggle 如何测试?
  3. toggle 如何发布?
  4. toggle 有何风险?
    (文章太浅,时间有限,还有很多问题没有涉及到,还需继续学习,文章未完待续。。。)

action

在项目中使用,继续探究学习。。。

上一篇下一篇

猜你喜欢

热点阅读