工程師們你們寫完代碼後還做些什麼No.115

我知道你們寫代碼都喜歡一把梭,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婚?。

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:拜託你,準備一下答疑吧。

作爲一個工程師有好多時間都在答疑,無論這些問題是來自合作方,業務方還是客戶,總會有很多人因爲不瞭解你所寫的系統邏輯而諮詢你一些細節點,做好答疑文檔、答疑工具 可能會節省你很多很多的時間。

就醬,請敬畏你的代碼,它們很強大,破壞力也很大。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章