程序員,請寫健康的代碼

開心一笑

【記得書上說過印机,男人為什么要管妻子叫老婆矢腻。因為這段姻緣從月老開始,一直到孟婆才會結束射赛《喔蹋】

提出問題

如何寫出健康的代碼?楣责?竣灌?

解決問題

前言

程序員一天的生活基本就是:分析與設計,編寫代碼秆麸,開會初嘹,撰寫技術文檔等等。而編寫代碼基本占用程序員大部分時間沮趣。每個人都希望在這美好的一天里屯烦,寫出讓別人刮目相看的代碼。生活已經(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ù)傳遞下去鱼的,歡迎點贊理盆、頂、歡迎留下寶貴的意見凑阶、多謝支持猿规!

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市宙橱,隨后出現(xiàn)的幾起案子姨俩,更是在濱河造成了極大的恐慌,老刑警劉巖师郑,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件环葵,死亡現(xiàn)場離奇詭異,居然都是意外死亡宝冕,警方通過查閱死者的電腦和手機张遭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來地梨,“玉大人菊卷,你說我怎么就攤上這事缔恳。” “怎么了的烁?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵褐耳,是天一觀的道長。 經(jīng)常有香客問我渴庆,道長,這世上最難降的妖魔是什么雅镊? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任襟雷,我火速辦了婚禮,結果婚禮上仁烹,老公的妹妹穿的比我還像新娘耸弄。我一直安慰自己,他們只是感情好卓缰,可當我...
    茶點故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布计呈。 她就那樣靜靜地躺著,像睡著了一般征唬。 火紅的嫁衣襯著肌膚如雪捌显。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天总寒,我揣著相機與錄音扶歪,去河邊找鬼。 笑死摄闸,一個胖子當著我的面吹牛善镰,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播年枕,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼炫欺,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了熏兄?” 一聲冷哼從身側(cè)響起品洛,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎霍弹,沒想到半個月后毫别,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡典格,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年岛宦,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片耍缴。...
    茶點故事閱讀 38,117評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡砾肺,死狀恐怖挽霉,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情变汪,我是刑警寧澤侠坎,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站裙盾,受9級特大地震影響实胸,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜番官,卻給世界環(huán)境...
    茶點故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一庐完、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧徘熔,春花似錦门躯、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至山孔,卻和暖如春懂讯,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背饱须。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工域醇, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人蓉媳。 一個月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓譬挚,卻偏偏與公主長得像,于是被迫代替她去往敵國和親酪呻。 傳聞我的和親對象是個殘疾皇子减宣,可洞房花燭夜當晚...
    茶點故事閱讀 42,877評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 本文把程序員所需掌握的關鍵知識總結為三大類19個關鍵概念,然后給出了掌握每個關鍵概念所需的入門書籍玩荠,必讀書籍漆腌,以及...
    dle_oxio閱讀 11,082評論 6 244
  • 咱們接著“谷歌小哥出品程序員必讀書單1.0(上)”繼續(xù)說。 軟件開發(fā) 1. 編程實踐 Brian Kernigha...
    圖靈教育閱讀 70,821評論 1 124
  • 從小我們接觸影響最多的人就是父母阶冈,父母的一言一行對一個孩子心靈的影響是巨大的闷尿。一句溫暖的話語能讓孩子體會到家...
    開往春天的綠蘿閱讀 539評論 0 0
  • 流多少眼淚才可以把心里的委屈全部發(fā)泄出來,講多少遍過去才可以一一放下愛恨情仇女坑,走多遠的路才可以看清最遠的...
    王子宇閱讀 263評論 0 1
  • 關鍵詞:逆境 不知道該怎么描述這個讓我望而生畏的八月填具,真的挺可怕的,它改變了我的生活。 平...
    精進么閱讀 320評論 2 1