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

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