開發(fā)人員通常有四個(gè)開發(fā)環(huán)境:
1,本地開發(fā)環(huán)境:用于開發(fā)者在開發(fā)過程中,調(diào)試程序使用。
2,開發(fā)環(huán)境:某個(gè)小功能或者某個(gè)模塊完成,需要提供給調(diào)用方,發(fā)布到開發(fā)環(huán)境,供調(diào)用方測(cè)試程序,發(fā)現(xiàn)問題,修改問題。
3,測(cè)試環(huán)境:開發(fā)過程中,當(dāng)某個(gè)排期或者迭代的功能開發(fā)完成,需要測(cè)試人員測(cè)試整個(gè)排期或者迭代的功能,這個(gè)時(shí)候,需要發(fā)布測(cè)試環(huán)境。
4,online(線上)環(huán)境:該環(huán)境是測(cè)試對(duì)功能充分測(cè)試,沒有問題之后,可以提供給 用戶使用的產(chǎn)品,需要穩(wěn)定存在的環(huán)境。
發(fā)布生產(chǎn)(online)常見問題總結(jié):
1,新上線應(yīng)用或者新的迭代有新的網(wǎng)絡(luò)訪問路徑,在上線前,沒有打通和其他應(yīng)用之間的網(wǎng)絡(luò)訪問權(quán)限。
2,項(xiàng)目中的配置信息沒有切換到生產(chǎn)環(huán)境(日志路徑,配置文件信息或者配置文件中部分信息)。
3,數(shù)據(jù)庫需要執(zhí)行的DDL,或者DML數(shù)據(jù)沒有執(zhí)行(或許只執(zhí)行了部分語句)。
4,依賴應(yīng)用的接口有改動(dòng)(遷移機(jī)房導(dǎo)致域名或者ip變動(dòng),導(dǎo)致數(shù)據(jù)訪問不到),但是并沒有通知到,所以導(dǎo)致網(wǎng)絡(luò)環(huán)境之間不通。
5,迭代開發(fā),導(dǎo)致新的需求,對(duì)老的線上的需求有影響。
6,數(shù)據(jù)庫的sql,部分的查詢語句,有串庫現(xiàn)象,導(dǎo)致部分語句執(zhí)行不成功(常常出現(xiàn)的情況,上生產(chǎn)的時(shí)候,sql語句里面包括測(cè)試環(huán)境的用戶),這種情況可以通過全局搜索測(cè)試環(huán)境數(shù)據(jù)庫的用戶名,如“mysqluat”,可以通過這種方式排出。
7,生產(chǎn)分布式環(huán)境配置和測(cè)試環(huán)境單機(jī)不一致,可能需要對(duì)配置信息作特殊處理。
8,前端調(diào)用接口,返回的數(shù)據(jù)不準(zhǔn)確,
8.1,可能是緩存的問題,先排除緩存的影響。
8.2,接口參數(shù)問題,參數(shù)的名稱,類型,
8.3,網(wǎng)絡(luò)抖動(dòng)引起的問題
以上問題基本都可以通過postman等其他的接口調(diào)用工具,測(cè)試接口是否有問題,如果沒有問題,問題基本定位在前端。
9,項(xiàng)目外部的一些環(huán)境基礎(chǔ)。如需要在項(xiàng)目的同級(jí)目錄創(chuàng)建文件夾用于存儲(chǔ)上傳的文件,但是在生產(chǎn)環(huán)境沒有創(chuàng)建。
10,java代碼中調(diào)用的配置信息被寫死,沒有根據(jù)環(huán)境的不同調(diào)用不同的配置文件。例如把某個(gè)接口的調(diào)用地址,寫死的是測(cè)試環(huán)境的,這種情況可以發(fā)布之前全局搜索有沒有“http”相關(guān)的字符在java文件中。
11,拋給前端的信息,一定是經(jīng)過處理的,用戶可以理解的消息,需要做全局的異常處理(可以根據(jù)不同的異常類作不同的處理)。
在上線之后,我們應(yīng)當(dāng)只驗(yàn)證當(dāng)前開發(fā)的新功能,和可能影響的老功能,在測(cè)試環(huán)境驗(yàn)證通過的情況下,在上線以后,應(yīng)該可以很快的驗(yàn)證功能,但是在實(shí)際情況中,常常有上面所述的情況,導(dǎo)致需要多次發(fā)版本,或者在上線前聯(lián)系相關(guān)人員(例如著網(wǎng)絡(luò)組開通網(wǎng)絡(luò),DB執(zhí)行相關(guān)sql腳本),無形當(dāng)中導(dǎo)致上線的效率極低,相關(guān)的人員可能需要做很多無用功(浪費(fèi)時(shí)間)。所以總結(jié)以上,希望可以提高自己和各位小伙伴的上線效率。
有新的需要注意的地方,會(huì)持續(xù)更新,也希望小伙伴們可以提出自己在開發(fā)過程中遇到的問題,讓我們可以在上線前避免這樣的問題。