四虎精品视频-四虎精品成人免费网站-四虎黄色网-四虎国产视频-国产免费91-国产蜜臀97一区二区三区

最臭的臭彈(Biggest Stinkers)

  在 SDTConf 2009論壇上,Corey Haines和我共同主持了一個(gè)叫做“最臭的臭彈”的研討會(huì)。會(huì)議上,我們?cè)噲D去尋找下面兩個(gè)(不同的)問題的答案:

  • 作為一個(gè)經(jīng)驗(yàn)豐富的開發(fā)人員,回顧往事,最臭的讓你最受折磨的代碼是什么樣的?也就是說,請(qǐng)指出一種代碼,如果你能根除掉這種很臭的代碼,那么在你的程序中的大部分設(shè)計(jì)問題都會(huì)迎刃而解
  • 我們有如此多的不同的原則和指導(dǎo)來幫助我們?nèi)?shí)現(xiàn)好的設(shè)計(jì)。對(duì)于一個(gè)新手來說,他應(yīng)該從哪里開始?哪種代碼風(fēng)味(code smell)或原則,對(duì)于一個(gè)新手來說,可以最大程度的幫助他們做出好的設(shè)計(jì)(節(jié)省好幾年去總結(jié)經(jīng)驗(yàn))?

  盡管字面上這兩個(gè)問題很相似,但我認(rèn)為這第二個(gè)問題更具有廣泛的意義,跟第一個(gè)有很大的不同。

  不管怎樣,這次研討會(huì)都能稱得上是一個(gè)熱鬧的會(huì)議。我們有不少很厲害的辯手來批判所謂的最臭的代碼的味道(最臭的臭彈):

  • Corey Haines的觀點(diǎn):重復(fù)的代碼
  • 我的觀點(diǎn):Primitive Obsession(總是使用底層的數(shù)據(jù)結(jié)構(gòu)/原始的數(shù)據(jù)類型,而使用經(jīng)過更高層抽象過的數(shù)據(jù)機(jī)構(gòu)或其它可以n倍的減少復(fù)雜性。這并不只針對(duì)面向?qū)ο蟮木幊獭_@指的是缺乏在應(yīng)該進(jìn)行抽象的數(shù)據(jù)層面上進(jìn)行抽象)
  • Matt Van Vleet 的觀點(diǎn):單一功能原則
  • Venkat Subramaniam 的觀點(diǎn):避免寫代碼
  • Jim Weirich (他并沒有出席這次會(huì)議)的觀點(diǎn): 共生性

  我們都認(rèn)為避免寫代碼(只有在沒有其它辦法的時(shí)候才去寫新代碼)是最重要的需要讓每個(gè)開發(fā)人員都認(rèn)識(shí)到的問題。大量的重復(fù)的代碼,劣質(zhì)的代碼(存在于各種項(xiàng)目中)積累到今天已經(jīng)無法統(tǒng)計(jì)了。在很多情況中程序員根本不喜歡去搜尋一下可以利用的程序,他們只知道自己去寫。這就是為什么我們要去以代碼行數(shù)(LoC)來作為評(píng)審代碼效率和性能的原因。一般來講,好的程序員的開發(fā)速度會(huì)比一般的程序員的速度快20倍以上,因?yàn)樗麄儗?duì)重復(fù)利用現(xiàn)有代碼的認(rèn)識(shí)完全不在一個(gè)層次上。

  很多人對(duì);Not Invented Here Syndrome(簡單解釋為開發(fā)團(tuán)隊(duì)不喜歡使用不是自己寫的程序,縮寫為NIHS)“這個(gè)說法感到困惑。我個(gè)人認(rèn)為NIHS對(duì)于我們這個(gè)領(lǐng)域里的進(jìn)步有很重要的意義。NIHS體現(xiàn)在設(shè)計(jì)和解決方案層面。Joel 寫了一篇很有趣的博客,題為 In Defense of Not-Invented-Here Syndrome,大家可以參考看看。

  然而,如果當(dāng)大家都認(rèn)為項(xiàng)目里我們必須自己寫點(diǎn)自己的代碼時(shí)候,那么我們最應(yīng)該提防的一件事情是什么呢?SRP 和 Connascence 真的可以幫你實(shí)現(xiàn)高內(nèi)斂的設(shè)計(jì)。如果程序不是高內(nèi)斂的,我們應(yīng)該很容易可以在里面發(fā)現(xiàn)重復(fù)的代碼(至少是概念上的重復(fù)),你也會(huì)發(fā)現(xiàn)只要在設(shè)計(jì)上選擇正確的方式進(jìn)行抽象提取就能很好的解決這種問題。所以代碼重復(fù)和Primitive Obsession實(shí)際是相互因果的關(guān)系。

  據(jù)我的經(jīng)驗(yàn),我要補(bǔ)充一下,我曾看到過有程序并沒有多少的重復(fù),但卻非常讓人難以理解,這是為什么?所以我要提出,只要是代碼進(jìn)行了較好的抽象,它就會(huì)很容易讓人理解和易于推理出其功能。同樣,如果你試圖去消除重復(fù)的代碼,在某一程度上,這里并沒有字面上的重復(fù),但是這里卻存在一個(gè)概念上的重復(fù),那么只有對(duì)它進(jìn)行更高一級(jí)的抽象就能有效的解決這個(gè)問題。因此我的結(jié)論是:回顧往日經(jīng)歷, Primitive Obsession 才是針對(duì)低質(zhì)量設(shè)計(jì)最大的難題,也就是所說的最臭的臭蛋。

  【英文出處】: Biggest Stinkers

it知識(shí)庫最臭的臭彈(Biggest Stinkers),轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 小矮人的一级毛片| 最近好看电影推荐| 饥渴少妇av| 酒图片| 心太狂| 尤勇智的个人资料简介| 贝子鸟叫声十三口| 欲望之| 历史试卷反思| 大唐诡事录之西行免费观看| 极品白嫩嫩模酒店援交土豪av| 河北卫视节目表| 二年级上古诗26首打印| 出轨幻想| 人流后吃什么| 徐若| 山楂树之恋电影剧情简介| 一声所爱·大地飞歌| 母亲とが话しています免费| 赫伯曼电影免费观看| 张大礼| 财税2010121号原文| 大胆艺术| xiuren秀人网| 大红狗| 我在等你泰剧剧情介绍| 喝醉的图片| 绅士联盟| 五年级语文下册| 丧尸童子军| 小伙捡了一沓钱完整版| 时尚购物| 韩国最火女团的舞蹈| 柳堡的故事演员表| cctv5+体育赛事直播时间| 疯狂 电影| 贝利亚头像,权威| 好戏一出| 林黛玉进贾府人物形象分析 | 男上女下动态视频| 潇湘影院|