工程師們你們寫完程式碼後還做些什麼
我知道你們寫程式碼都喜歡一把梭,if else for ,業務流程寫完,然後就開始三部曲。git commit -> git push -> publish
停停停,憋這麼自信好莫,你還有很多事情可以做。
step1: 拜託你,再次檢查一下所寫的程式碼是不是符合業務需求。
有的工程師寫完的一堆通過編譯器檢查的程式碼,壓根就沒符合業務需求,或者說業務真正的需求。
比如:
請幫我去街上買兩個包子,如果看到西瓜,買一個。
然後某程式員的實現就是
if( see watermelon){
buy a watermelon;
return;
}
buy two baozi;
WTF????
你是瓜娃子麼?
step2: 拜託你,再檢查檢查系統邊界吧。
totolNumberOfBaozi = totolNumberOfBaozi - numberOfBaoZi;
好了,突然有人喊了一句,給我來 -1 個包子,總包子數蹭蹭蹭增長,棒棒噠。給你100婚:100:。
setp3: 拜託你,再檢查檢查索引。
select * from baozi where size > 100g and size <10000g;
嗯,baozi1 這個有5g,不符合
嗯,baozi2 這個有5g,不符合
嗯,baozi3 這個有6g,不符合
嗯,baozi4 這個有300g,不符合
...100萬baozi後
嗯,baozi1000000 這個有20g,不符合
嗯,baozi1 這個有45g,不符合
好了,基礎表資料有1000萬,每次都全表掃描,一上線,bingo,系統爆炸了。
setp4: 拜託你,再寫寫註釋吧,比如上邊的買包子程式寫成這樣。
if( catch 1129idj){
buy a 1#ewlj3-0;
return;
}
buy two @#MK@L;
好嘞,不寫註釋明天你自己就忘了兄dei。
setp5: 拜託你,打點有用的日誌吧。
if( see watermelon){
buy a watermelon;
return;
}else if( see beautiful){
if(beautiful > 18){
buy naicha;
}
else{
boommmmm!!!!
}
}
buy two baozi;
好了,系統爆炸了,一點日誌都沒有,只能看到爆炸了。。。
setp6: 拜託你,試著把所有的能想到的監控全加上。
介面成功率啊,響應時間啊,錯誤告警啊,上下游告警啊,主機告警啊,資料庫成功率告警啊,資料庫響應時間告警啊。
setp7: 拜託你,針對告警想一下你的解決方案。
告警出來了,總得處理吧?提前想一想沒什麼壞處。
setp8: 拜託你,想一下怎麼樣讓你的系統不會崩。
異地容災?介面限流?介面防刷?服務降級?很多事情可以做,好好思考一下,好好思考一下。
setp9:拜託你,準備一下答疑吧。
作為一個工程師有好多時間都在答疑,無論這些問題是來自合作方,業務方還是客戶,總會有很多人因為不瞭解你所寫的系統邏輯而諮詢你一些細節點,做好答疑文件、答疑工具 可能會節省你很多很多的時間。
就醬,請敬畏你的程式碼,它們很強大,破壞力也很大。