我當(dāng)程序員的那些事-寫代碼的藝術(shù)

? ????? 從大學(xué)到工作幾年污秆,一直在做前端的工作皂股,當(dāng)然前端這個概念也是相當(dāng)?shù)拇笫裕旧嫌袀€UI界面的都可以叫前端,不過今天不說這些,就說說寫代碼躁锁。

? ????? 什么代碼才算“好”纷铣,對于很多人來說很難界定。所以我一直習(xí)慣這么認(rèn)為战转,沒有或者很少壞味的代碼搜立,我就認(rèn)為這是好代碼。然后苦惱的事情來了槐秧,幾十年的行業(yè)積累啄踊,關(guān)于壞味的定義怕是不下于上千種,靠腦子記然后對比嗎刁标?這明顯是不那么時髦的做法颠通。我更推崇這么一種觀念,代碼如文章膀懈,畢竟寫代碼是給人看的顿锰,需要承上啟下,來龍去脈启搂。如果你看到一段代碼硼控,不能如同新聞報道那樣簡潔明了,那么這就必然不是好代碼胳赌。

? ????? 既然要講究簡潔明了牢撼,那就涉及到兩個衡量標(biāo)準(zhǔn),一個是代碼復(fù)雜度疑苫,一個是語義化熏版。

? ? ????代碼復(fù)雜度具體內(nèi)容就請百度谷歌,這里就不作科普介紹捍掺。我只說說個人關(guān)于如何降低代碼復(fù)雜度的觀點撼短。實際工作中有很多我認(rèn)為不那么聰明的做法,比如給你一個需求乡小,最終代碼就是完全開發(fā)者動手時的思路阔加,直來直去,尤其是一些條件判斷多的情況下满钟,嵌套復(fù)雜胜榔,語句臃腫,一個函數(shù)超過一兩百行湃番,一個模塊就是整個系統(tǒng)夭织。

? ? ? ? 不要問,問就是趕著上線吠撮。那么問題來了尊惰,作為程序員,應(yīng)該知道技術(shù)債務(wù)的危險性,一是對項目弄屡,二是對個人题禀。對項目的危害暫且不談,對個人的危害需要有一個充分的認(rèn)識膀捷。通陈踵冢基于現(xiàn)實的壓力(包括來自管理層的顧慮和自身技術(shù)能力),我所遇到的大部分程序員都沒有足夠的還債能力全庸,長期處于一種接需求秀仲,沖績效,上線壶笼,再循環(huán)整個過程神僵,直至代碼實在改不動了,就推翻重來覆劈,美其名曰重構(gòu)保礼。幸運的是,前端這個領(lǐng)域重寫的壓力并不是很大责语,不需對可用性氓英、安全方面要求非常苛刻鹦筹,不像服務(wù)端或者數(shù)據(jù)庫那樣一旦推翻重來代表著災(zāi)難。不幸的是址貌,前端仔通常都會被看輕一級铐拐,一部分原因就是因為要求低,還有一部分原因是因為要求低练对,而順帶著個人的水平也低遍蟋。

? ? ? ? 年輕人還是要多讀書,提高提高姿勢水平螟凭。像《人月神話》虚青、《重構(gòu)》這些軟件設(shè)計領(lǐng)域方面的書就包含了許多前人編程的經(jīng)驗知識,看的越多越覺得自己懂得少螺男。

? ? ? ? 除了讀書棒厘,還需要實際工作中操作一番。怎么一邊工作一邊提高自己的代碼水平下隧,我推崇重構(gòu)奢人。

? ? ? ? 重構(gòu)不是大刀寬斧,它應(yīng)是一種行為上的習(xí)慣淆院,應(yīng)該是精致的何乎,小而美的一個過程。每一個變量名,都需要語義化支救;每一個if else語句抢野,都應(yīng)該保證嵌套的內(nèi)容只有一行代碼,甚至去掉這個嵌套各墨;不使用switch指孤,應(yīng)該用策略模式;異步的回調(diào)欲主,使用promise或者await處理為串行邏輯邓厕;每一個函數(shù),應(yīng)該限制在50行代碼以內(nèi)扁瓢。

? ? ? ? 下面讓我拋磚引玉详恼,用一個例子解釋一下重構(gòu)的過程

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市引几,隨后出現(xiàn)的幾起案子昧互,更是在濱河造成了極大的恐慌,老刑警劉巖伟桅,帶你破解...
    沈念sama閱讀 217,084評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件敞掘,死亡現(xiàn)場離奇詭異,居然都是意外死亡楣铁,警方通過查閱死者的電腦和手機玖雁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來盖腕,“玉大人赫冬,你說我怎么就攤上這事±A校” “怎么了劲厌?”我有些...
    開封第一講書人閱讀 163,450評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長听隐。 經(jīng)常有香客問我补鼻,道長,這世上最難降的妖魔是什么雅任? 我笑而不...
    開封第一講書人閱讀 58,322評論 1 293
  • 正文 為了忘掉前任风范,我火速辦了婚禮,結(jié)果婚禮上沪么,老公的妹妹穿的比我還像新娘乌企。我一直安慰自己,他們只是感情好成玫,可當(dāng)我...
    茶點故事閱讀 67,370評論 6 390
  • 文/花漫 我一把揭開白布加酵。 她就那樣靜靜地躺著拳喻,像睡著了一般。 火紅的嫁衣襯著肌膚如雪猪腕。 梳的紋絲不亂的頭發(fā)上冗澈,一...
    開封第一講書人閱讀 51,274評論 1 300
  • 那天,我揣著相機與錄音陋葡,去河邊找鬼亚亲。 笑死,一個胖子當(dāng)著我的面吹牛腐缤,可吹牛的內(nèi)容都是我干的捌归。 我是一名探鬼主播,決...
    沈念sama閱讀 40,126評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼岭粤,長吁一口氣:“原來是場噩夢啊……” “哼惜索!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起剃浇,我...
    開封第一講書人閱讀 38,980評論 0 275
  • 序言:老撾萬榮一對情侶失蹤巾兆,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后虎囚,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體角塑,經(jīng)...
    沈念sama閱讀 45,414評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,599評論 3 334
  • 正文 我和宋清朗相戀三年淘讥,在試婚紗的時候發(fā)現(xiàn)自己被綠了圃伶。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,773評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡蒲列,死狀恐怖留攒,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情嫉嘀,我是刑警寧澤,帶...
    沈念sama閱讀 35,470評論 5 344
  • 正文 年R本政府宣布魄揉,位于F島的核電站剪侮,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏洛退。R本人自食惡果不足惜瓣俯,卻給世界環(huán)境...
    茶點故事閱讀 41,080評論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望兵怯。 院中可真熱鬧彩匕,春花似錦、人聲如沸媒区。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,713評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至绪爸,卻和暖如春湾碎,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背奠货。 一陣腳步聲響...
    開封第一講書人閱讀 32,852評論 1 269
  • 我被黑心中介騙來泰國打工介褥, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人递惋。 一個月前我還...
    沈念sama閱讀 47,865評論 2 370
  • 正文 我出身青樓柔滔,卻偏偏與公主長得像,于是被迫代替她去往敵國和親萍虽。 傳聞我的和親對象是個殘疾皇子睛廊,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,689評論 2 354