開心一笑
【記得書上說過印机,男人為什么要管妻子叫老婆矢腻。因為這段姻緣從月老開始,一直到孟婆才會結束射赛《喔蹋】
提出問題
如何寫出健康的代碼?楣责?竣灌?
解決問題
前言
程序員一天的生活基本就是:分析與設計,編寫代碼秆麸,開會初嘹,撰寫技術文檔等等。而編寫代碼基本占用程序員大部分時間沮趣。每個人都希望在這美好的一天里屯烦,寫出讓別人刮目相看的代碼。生活已經(jīng)夠累房铭,沒必要寫出病態(tài)的代碼驻龟,背后遭人指責,受人唾棄缸匪。魯迅先生曾經(jīng)說過:生命是以時間為單位的翁狐,浪費別人的時間等于謀財害命;浪費自己的時間凌蔬,等于慢性自殺露懒。而病態(tài)的代碼不僅慢性自殺,而且謀財害命砂心。
病態(tài)代碼種類
病態(tài)代碼總類很多懈词,無法在這里一一列舉。但大致可以分為以下幾類:
- Bug
- 代碼不整潔
- 業(yè)務邏輯混亂
- 代碼性能差
你很難想象计贰,一個小小的功能钦睡,居然能產(chǎn)生一堆的bug,排除你想追漂亮的測試妹子不說躁倒,這樣的代碼讓人難于接受;你很難想象洒琢,一段代碼糟糕的格式秧秉,天女散花似的邏輯;你很難想象衰抑,一段代碼性能差到象迎,用戶都喝了好幾杯拿鐵咖啡,頁面仍舊無法顯示的錐心之痛。
例如:
//程序清單 1.1
public boolean test(){
List<String> userIds = new ArrayList<>();
for(int i = 0,len = userIds.size();i < len;i++){
//在for循環(huán)實現(xiàn)數(shù)據(jù)庫查詢數(shù)據(jù)砾淌,和異常捕獲啦撮。
User user = this.findByUserId(userIds.get(i));
try{
.....
}catch(){
}
}
return Boolean.TRUE;
}
病態(tài)代碼的危害
代碼生病,就像人得了流感一樣汪厨。勢必頭暈腦脹赃春,精神萎靡。同時還會傳染劫乱。
對于自己
- 自身技術得不到提升
- 給周圍的人留下不好印象
- 投入更多修復問題時間
程序員不是代碼寫的越多织中,技術就越強。寫代碼和寫文字是差不多的衷戈。有一句話狭吼,一個字覺得不妥當就得改,改到無可再改才罷手殖妇。這個習慣是必須養(yǎng)成的刁笙。代碼細節(jié)處理很重要。細節(jié)決定成敗谦趣,同時疲吸,細節(jié)也決定成長。注重細節(jié)處理的程序員和不注重的程序員蔚润,成長速度是不一樣的磅氨。
例如:
//程序清單 2-1
public boolean test(){
//正確寫法
return Boolean.TRUE;
}
public boolean test(){
//錯誤寫法
return true;
}
對于他人
- 團隊集體為病態(tài)代碼加班
- 領導的壞印象
自己留下的坑,不是自己買單嫡纠,就是讓別人買單烦租。自作自受就算了,拉著別人受苦受難就不好了除盏。
對于項目
- 延長項目工期
- 加大項目成本
- 降低客戶體驗
對于這種情況叉橱,問題就已經(jīng)升級到一定的層次了。就好像發(fā)燒感冒造成的肺炎一樣者蠕。有可能造成生命危險窃祝。客戶要的是結果踱侣,才不管你發(fā)燒感冒粪小。
總而言之,和破窗效應一樣抡句,生病的代碼影響惡劣探膊,是病得治。該吃藥就得吃藥待榔,忍太久不好哦逞壁。
病態(tài)代碼的原因
感冒病因很多流济,有內(nèi)在因素,也有外在因素腌闯。內(nèi)在因素比如:熬夜加班绳瘟,生活不規(guī)律,要風度不要溫度等姿骏。外在因素比如:氣候突變糖声,寒暖失調(diào),風熱之邪乘機侵入等工腋。
內(nèi)在原因
- 程序員經(jīng)驗不足
- 程序員素質(zhì):對于在職或者即將離職程序員
- 前期設計缺陷
程序員的經(jīng)驗不足姨丈,沒辦法一開始就寫出完美健康的代碼,無可厚非擅腰,這需要一個過程蟋恬。但是卻不能作為一個借口。雖然不是每個人都能成為某一方面的頂尖高手趁冈,但是每個人都有能力保持身體健康歼争。你不可能一開始寫出完美的代碼,但是卻可以寫出能運行渗勘,可交互沐绒,無bug的健康的代碼。程序員的素質(zhì)也很重要旺坠。我曾經(jīng)碰到過一個即將離職的程序員乔遮,提交一堆未經(jīng)測試的代碼到服務器,叫測試妹子如何愛你取刃。
外在原因
- 項目工期緊張
外在因素無法避免蹋肮,只是希望在項目結束之后,能留下時間璧疗,重構代碼坯辩,吃吃藥。畢竟欠下的崩侠,遲早都要還的漆魔。不是自己還就是別人替你還。
防止病態(tài)代碼建議
- 開發(fā)功能時間評估却音,在允許的范圍內(nèi)改抡,盡量多估些時間,保證代碼健康
- 加強自測系瓢,別讓測試妹子頻繁找你麻煩雀摘。
- 溝通討論實現(xiàn)方案:和同事,技術負責人八拱,主管多溝通,多交流。
- 多閱讀技術書籍
- 合理重構肌稻,重構清蚀,重構
- 代碼審查:對于Master,需要審查團隊提交的代碼爹谭,或者公司成立代碼審查小組
- 想清楚再動手:把功能想清楚枷邪,選好實現(xiàn)技術再動手寫代碼也不遲
這里給個藥方,推薦幾本書籍诺凡。雖不能藥到病除东揣,但起碼可以強身健體:
《Clean code》《重構:改善既有代碼設計》《Effective Java》《Thinking in Java》《編寫高質(zhì)量代碼:改善java程序的151個建議》《阿里巴巴Java開發(fā)手冊公開版》等等。
結束語
忠心祝愿每個人都能寫出健康的代碼腹泌,切勿留下生病的代碼在那里茍延殘喘嘶卧,自生自滅,傷人害己凉袱。
讀書感悟
來自《摔跤吧芥吟,爸爸》
- 如果你獲得了銀牌,你總會被遺忘 如果贏了金牌 你會成為典范专甩。
- 不要忘記钟鸵,你是怎么一步步走到今天的。
- 這個世界充滿假象涤躲,唯有痛楚從不說謊棺耍。
- 這個時候所有的鄙視都變成了掌聲。
- 記住种樱,爸爸不能時刻保護你蒙袍,爸爸只教你如何戰(zhàn)斗,你要戰(zhàn)勝自己的恐懼缸托。
經(jīng)典故事
【在清代乾隆年間左敌,有兩個書法家。一個極認真地模仿古人俐镐,講究每一畫都要酷似某某矫限,如某一橫要像蘇東坡的,某一捺要像米芾的佩抹。自然叼风,一旦練到了這一步,他便頗為得意棍苹。另一個則正好相反无宿,不僅苦苦地練,還要求每一筆每一畫都不同于古人枢里,講究自然孽鸡,直到練到了這一步蹂午,才覺得心里踏實。有一天彬碱,第一個書法家嘲諷第二個書法家豆胸,說:“請問仁兄,您的字哪一筆是古人的呢巷疼?”后一個并不生氣晚胡,而是笑瞇瞇地反問了一句:“也請問仁兄,您的字究竟哪一筆是您自己的呢嚼沿?”
第一個聽了估盘,頓時張口結舌。大道理:人要從沒路的地方走出一條路來骡尽,不要泯滅了自己的個性遣妥,一味地模仿別人,那樣只會迷失自我爆阶,連自己的命運都把握不了了燥透。】
生活常識
【如何保持口氣清新】
- 使用口氣清新劑辨图。
- 喝檸檬水班套。
- 口嚼茶葉。
- 多吃蔬菜水果故河。
- 正確的刷牙及清潔舌苔吱韭。
大神文章
無
其他
如果有帶給你一絲絲小快樂,就讓快樂繼續(xù)傳遞下去鱼的,歡迎點贊理盆、頂、歡迎留下寶貴的意見凑阶、多謝支持猿规!