原創(chuàng)文章轉(zhuǎn)載請注明出處
Resting Giant by Basil Greber on 500px.com
通常的項(xiàng)目我們都會配置運(yùn)行環(huán)境绒障,在我的項(xiàng)目中我習(xí)慣于配置Dev统扳、Qa和Release三個(gè)環(huán)境贫橙,分別對應(yīng)開發(fā)贪婉、測試和量產(chǎn),根據(jù)實(shí)際情況可能會增加一個(gè)Demo環(huán)境卢肃。
enum和運(yùn)行環(huán)境配置
//開發(fā)環(huán)境
enum ServerEnvMode: Int {
case Dev
case Qa
case Release
}
var serverEnvMode: ServerEnvMode = .Dev
來看看具體的使用場景吧
配置服務(wù)器基地址
enum ServerEnvMode: Int {
case Dev
case Qa
case Release
func getBaseUrl() -> String {
switch self {
case .Dev:
return "dev url"
case .Qa:
return "qa url"
case .Release:
return "release url"
}
}
}
//我們可以這么訪問
serverEnvMode.getBaseUrl()
同樣的疲迂,如果服務(wù)端的圖片服務(wù)器也是隨運(yùn)行環(huán)境的不同進(jìn)行配置,可以在枚舉中繼續(xù)添加方法莫湘。
圖片請求地址
func getImageUrl(url: String) -> String {
switch self {
case .Dev:
return "dev image server url" + url
case .Qa:
return "qa image server url" + url
case .Release:
return "release image server url" + url
}
}
通過枚舉配置運(yùn)行環(huán)境尤蒿,我們將以往散落的全局變量和方法統(tǒng)一到了一起,凡是和運(yùn)行環(huán)境配置有關(guān)的設(shè)置都可以通過枚舉方法來實(shí)現(xiàn)幅垮。
小貼士:編譯前根據(jù)不同的運(yùn)行環(huán)境腰池,通過腳本替換serverEnvMode的值,配合Jenkins這樣的CI工具忙芒,一鍵發(fā)布版本減少人工操作犯錯(cuò)的可能示弓。
我是咕咕雞,一個(gè)還在不停學(xué)習(xí)的全棧工程師呵萨。
熱愛生活奏属,喜歡跑步,家庭是我不斷向前進(jìn)步的動力潮峦。