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

R-B發表於2021-09-09

我知道你們寫程式碼都喜歡一把梭,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:拜託你,準備一下答疑吧。

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

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


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4560/viewspace-2823371/,如需轉載,請註明出處,否則將追究法律責任。

相關文章