1. 不要將環(huán)境配置放在源碼中
環(huán)境配置包含應(yīng)用的配置文件與日志輸出格式的配置文件

如上,這是一個系統(tǒng)源碼中的配置文件,對應(yīng)多套環(huán)境的配置文件和日志的配置文件,都放在了源碼中。這樣導(dǎo)致的問題有以下幾個方面:
編譯:在應(yīng)用程序源代碼中硬編碼配置,每次修改完配置之后也需要對應(yīng)用進(jìn)行重新編譯打包,并且生產(chǎn)和測試各需打包一份,管理復(fù)雜。
安全:對于編譯后的包,比如jar包,任何人拿到都可以查看到里面的敏感信息,比如數(shù)據(jù)庫的密碼,證書和私鑰等。
出錯率高: 我們在IDE下進(jìn)行開發(fā)測試時,對于本地的測試環(huán)境,其配置和uat、生產(chǎn)又是不同的,所以在對源碼進(jìn)行拉取和推送時不得不保持這些配置文件的差異性,一個偶然的疏忽就容易將本地的配置文件推送到源碼中去,從而對uat或生產(chǎn)產(chǎn)生影響。
靈活度不高:比如想臨時的改一下日志的輸出級別到DEBUG,這樣我們又得將源碼編譯一遍!
DevOps: 在DevOps上測試和生產(chǎn)都需要單獨(dú)重復(fù)構(gòu)建,一個應(yīng)用的鏡像不具有普遍性(這個問題很大),上線速度被拉慢并且構(gòu)建的過程中增加了出錯的概率(下面會細(xì)講) ,如果這個時候有人提交了新的版本