我越發(fā)堅(jiān)信習(xí)慣的力量

習(xí)慣

前兩天跟同事做代碼走查窿侈,看到代碼里面很多這樣的寫(xiě)法。

enum {OK, ERROR};
WORD32 calledFunc();
{
    if(cond)
    {
        return ERROR;
    }
    return OK;
}
void func()
{
    if(!calledFunc())
    {
        //do something
    }
}

看到if(!calledFunc())時(shí)猫牡,我很疑惑墓猎,calledFunc()的返回值類(lèi)型不是bool捆昏,為什么在判斷條件中要用!。他說(shuō)毙沾,他想在函數(shù)calledFunc()返回成功時(shí)做些事情骗卜。他繼續(xù)說(shuō)到,你看左胞,成功時(shí)返回OK寇仓,OK == 0(!OK) == 1罩句。聽(tīng)起來(lái)倒也挺有道理焚刺。但是這其實(shí)是一種典型的巧合編程。

首先门烂,為什么要跟我做這么多解釋?zhuān)拷忉岊?lèi)似于注釋?zhuān)谴a沒(méi)有表達(dá)作者意圖的體現(xiàn)乳愉。而事實(shí)上,這段代碼也是存在隱患的屯远。假如有一天蔓姚,某個(gè)后來(lái)人心血來(lái)潮,想增加一種錯(cuò)誤類(lèi)型慨丐,枚舉的定義變成這樣enum {FATAL_ERROR, OK, ERROR};坡脐,再看看if(!calledFunc()),還是之前的邏輯嗎房揭?但是如果代碼明確地寫(xiě)成if(OK == calledFunc())备闲,無(wú)論枚舉值如何變化,代碼邏輯永遠(yuǎn)不會(huì)出問(wèn)題捅暴,這就是代碼的可擴(kuò)展性恬砂。看似在某種巧合下兩種實(shí)現(xiàn)的結(jié)果相同蓬痒,但是不良的編程習(xí)慣產(chǎn)生的代碼是脆弱的泻骤。我們不能僅僅局限于代碼的語(yǔ)法,眼光應(yīng)該放的更遠(yuǎn)梧奢,應(yīng)該穿透到它背后的價(jià)值觀去認(rèn)識(shí)它狱掂,這樣的得到的知識(shí)才是牢靠的,經(jīng)得起考驗(yàn)的亲轨。

不幸的是趋惨,我并沒(méi)有機(jī)會(huì)在代碼走查現(xiàn)場(chǎng)說(shuō)明我的這些想法。因?yàn)榈胛茫业耐卤憩F(xiàn)出了極大的排斥情緒希柿,他覺(jué)得我是在吹毛求疵诊沪,他認(rèn)為不應(yīng)該在這種不影響當(dāng)前代碼正確性的問(wèn)題上斤斤計(jì)較。在我看來(lái)曾撤,這些細(xì)節(jié)恰恰體現(xiàn)了一個(gè)程序員的習(xí)慣問(wèn)題端姚,這些看似微不足道的習(xí)慣,每一個(gè)背后都有一個(gè)價(jià)值觀支撐挤悉,正是這種日積月累的持續(xù)思考和習(xí)慣養(yǎng)成渐裸,體現(xiàn)出一個(gè)優(yōu)秀程序員和一個(gè)普通程序員的本質(zhì)區(qū)別。不斷刻意練習(xí)去夯實(shí)好的習(xí)慣装悲,讓它變的像水和空氣一樣平常昏鹃,才能生產(chǎn)出行云流水般的軟件作品。連Kent beck 這樣的大師都說(shuō)自己算不上一個(gè)偉大的程序員诀诊,僅僅是一個(gè)擁有良好編程習(xí)慣的程序員洞渤,這讓我越發(fā)堅(jiān)信習(xí)慣的力量,并且將在自己的職業(yè)生涯中孜孜追求属瓣。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末载迄,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子抡蛙,更是在濱河造成了極大的恐慌护昧,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,576評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件粗截,死亡現(xiàn)場(chǎng)離奇詭異惋耙,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)熊昌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,515評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)绽榛,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人婿屹,你說(shuō)我怎么就攤上這事蒜田。” “怎么了选泻?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,017評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)美莫。 經(jīng)常有香客問(wèn)我页眯,道長(zhǎng),這世上最難降的妖魔是什么厢呵? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,626評(píng)論 1 296
  • 正文 為了忘掉前任窝撵,我火速辦了婚禮,結(jié)果婚禮上襟铭,老公的妹妹穿的比我還像新娘碌奉。我一直安慰自己短曾,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,625評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布赐劣。 她就那樣靜靜地躺著嫉拐,像睡著了一般。 火紅的嫁衣襯著肌膚如雪魁兼。 梳的紋絲不亂的頭發(fā)上婉徘,一...
    開(kāi)封第一講書(shū)人閱讀 52,255評(píng)論 1 308
  • 那天,我揣著相機(jī)與錄音咐汞,去河邊找鬼盖呼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛化撕,可吹牛的內(nèi)容都是我干的几晤。 我是一名探鬼主播,決...
    沈念sama閱讀 40,825評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼植阴,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼蟹瘾!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起墙贱,我...
    開(kāi)封第一講書(shū)人閱讀 39,729評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤热芹,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后惨撇,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體伊脓,經(jīng)...
    沈念sama閱讀 46,271評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,363評(píng)論 3 340
  • 正文 我和宋清朗相戀三年魁衙,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了报腔。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,498評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡剖淀,死狀恐怖纯蛾,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情纵隔,我是刑警寧澤翻诉,帶...
    沈念sama閱讀 36,183評(píng)論 5 350
  • 正文 年R本政府宣布,位于F島的核電站捌刮,受9級(jí)特大地震影響碰煌,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜绅作,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,867評(píng)論 3 333
  • 文/蒙蒙 一芦圾、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧俄认,春花似錦个少、人聲如沸洪乍。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,338評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)壳澳。三九已至,卻和暖如春糊探,著一層夾襖步出監(jiān)牢的瞬間钾埂,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,458評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工科平, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留褥紫,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,906評(píng)論 3 376
  • 正文 我出身青樓瞪慧,卻偏偏與公主長(zhǎng)得像髓考,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子弃酌,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,507評(píng)論 2 359

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

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理氨菇,服務(wù)發(fā)現(xiàn),斷路器妓湘,智...
    卡卡羅2017閱讀 134,697評(píng)論 18 139
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法查蓉,類(lèi)相關(guān)的語(yǔ)法,內(nèi)部類(lèi)的語(yǔ)法榜贴,繼承相關(guān)的語(yǔ)法豌研,異常的語(yǔ)法,線程的語(yǔ)...
    子非魚(yú)_t_閱讀 31,662評(píng)論 18 399
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,282評(píng)論 25 707
  • 第一章 那年年少 我不知道遇見(jiàn)你是對(duì)還是錯(cuò)唬党,但我知道遇見(jiàn)你我開(kāi)心過(guò)鹃共。 ”阿俊吶∈还埃” "阿俊吶霜浴。“ ”阿俊吶蓝纲∫趺希” “...
    阿俊xi閱讀 458評(píng)論 0 1
  • using (CargoSysDbContext db = new CargoSysDbContext()){Da...
    LiviaLiu閱讀 225評(píng)論 0 0