工程師們你們寫完程式碼後還做些什麼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:拜託你,準備一下答疑吧。
作為一個工程師有好多時間都在答疑,無論這些問題是來自合作方,業務方還是客戶,總會有很多人因為不瞭解你所寫的系統邏輯而諮詢你一些細節點,做好答疑文件、答疑工具 可能會節省你很多很多的時間。
就醬,請敬畏你的程式碼,它們很強大,破壞力也很大。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4560/viewspace-2823371/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 幽默:編寫Python程式碼你們使用什麼偵錯程式?Python
- Vue 3.0 來了,我們該做些什麼?Vue
- 為什麼我們程式設計師寫不出好程式碼?程式設計師
- 斯巴達的勇士們,你們的程式語言是什麼?
- 開發者們,你們想要什麼Google的獎品?Go
- 為什麼遊戲還沒賣出去,你們偏偏要作死?遊戲
- 現如今的技術浪潮中,我們到底該做些什麼?
- 應對網路安全威脅我們又該做些什麼?
- Bistro:人們究竟用手機做些什麼?–資料資訊圖
- 吃青春飯”的程式設計師們:再過 5 年,你還在寫程式碼嗎?程式設計師
- 程式碼管理流程你們是怎麼做的
- DevOps工程師到底做些什麼?dev工程師
- 前端開發工程師做些什麼?前端工程師
- 請轉發給你們老闆--為什麼人們恨工作?
- 為什麼他們還在用 iPod 聽歌?
- 你的WiFi安全麼 駭客連上WiFi後能做些什麼?WiFi
- 讓程式碼寫程式碼,自主程式設計的 AI 離我們還有多遠?程式設計AI
- 1024:寫給還活著的研發工程師們工程師
- 我們一直談論“寫程式碼”,但你會“讀程式碼”嗎?
- 寫給想成為前端工程師的同學們——前端工程師是做什麼的?前端工程師
- 我們為什麼要技術寫作
- 你們寫程式碼兩年的時候工資多少阿
- 除了Firefox 我們為什麼還需要Mozilla?Firefox
- 搞定 CompletableFuture,併發非同步程式設計和編寫序列程式還有什麼區別?你們要的多圖長文非同步程式設計
- 程式設計師們你們辛苦啦程式設計師
- 當我們談 Java 併發的時候,你們在談什麼?Java
- 你們現在編寫程式碼是從先寫測試開始嗎?
- 想要學習UI怎麼入門?我們學完UI後實際工作中做什麼?UI
- Typescript 中的泛型是什麼 - 為什麼使用它們,它們如何與程式碼示例一起使用TypeScript泛型
- 你們公司做程式碼審查嗎?
- [譯]我們為什麼要寫 super(props)?
- 我們還想玩到什麼樣的恐怖遊戲遊戲
- 程式設計我們學到了什麼?程式設計
- 除了敲程式碼,你還有什麼副業嗎?
- 做了這麼多年前端,為什麼你還是不會寫業務程式碼?前端
- 問問大家啊,除了java語言外,你們還會什麼其他語言呢?Java
- 兄弟們還在繼續寫php嗎?PHP
- 國外機器學習工程師正面臨失業,為什麼他們還在堅持學習ML?機器學習工程師