本來想用英文來寫這篇文章锦爵,可想想還是算了辐脖,自己的英文可能說不清楚。僵娃。羡藐。
description
前幾天的有一個關(guān)于feature toggle的session,因?yàn)樽约河⑽牡脑蚵牭暮锖康模约赫伊诵┵Y料學(xué)了下悯许。
Queation
- 什么是feature toggle仆嗦?
feature toggle 是一種強(qiáng)大的技術(shù),它可以允許團(tuán)隊(duì)不用修改代碼而來改變系統(tǒng)的功能行為先壕。 - 為什么使用feature toggle瘩扼?
在團(tuán)隊(duì)中,我們完成了一個功能垃僚,但PO說暫時不需要這個功能集绰。怎么辦?刪除或注釋代碼谆棺?No栽燕!又或者是這樣的一個場景,你每兩個周發(fā)布一次生產(chǎn)版本改淑,但是同時又需要去維護(hù)一個很多個月才能進(jìn)行發(fā)布的特性分支碍岔。那么如何去保障團(tuán)隊(duì)成員們在開發(fā)主線(mainline)上的工作不受到未完全實(shí)現(xiàn)的特性分支的影響呢?feature toggle 可以解決這個問題朵夏。 - 如何實(shí)現(xiàn)feature toggle?
基礎(chǔ)思路:存在一個配置文件蔼啦,配置文件里定義了許多的toggle,這些toggle都是待發(fā)布的特性功能仰猖。這一些toggle定義了哪一些features需要呈現(xiàn)捏肢,哪些并不需要。
例如:在一個網(wǎng)站中饥侵,前端使用jsp,它的代碼是這樣的:
<toggle name="petSurvey">
<p>you are so beautiful!</p>
</toggle>
當(dāng)你將配置toggle的開關(guān)打開之時鸵赫,features的功能將會隨之打開,否則將會我們的app會繼續(xù)忽略features功能代碼躏升。
- 如果不用toggle,我們該如何實(shí)現(xiàn)這樣的功能辩棒?
假如我們的代碼之前是這樣的:
function newFeature(){ //implementation lives }
現(xiàn)在我們的要用一種新的辦法來實(shí)現(xiàn),我們該怎么做煮甥?或許我們可以使用一個用于判斷的標(biāo)志變量:
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
}
}
- toggle在前端中如何使用盗温,在后端中如何使用?
- toggle 如何測試成肘?
- toggle 如何發(fā)布?
- toggle 有何風(fēng)險斧蜕?
(文章太淺双霍,時間有限,還有很多問題沒有涉及到,還需繼續(xù)學(xué)習(xí)洒闸,文章未完待續(xù)染坯。。丘逸。)
action
在項(xiàng)目中使用单鹿,繼續(xù)探究學(xué)習(xí)。深纲。仲锄。