中文字幕日韩一区二区_国产一区二区av_国产毛片av_久久久久国产一区_色婷婷电影_国产一区二区精品

觀點(diǎn):如何正確的對(duì)待設(shè)計(jì)模式

  自從接觸設(shè)計(jì)模式以來(lái),一般看到的評(píng)論是以推崇為多。不過(guò)比較欣慰的是,最近在看《編程人生》中,有兩個(gè)人對(duì)設(shè)計(jì)模式比較不屑。

  之所以欣慰,并不是因?yàn)闇悅€(gè)熱鬧看他們互相攻擊,互相批評(píng)——而是因?yàn)槌霈F(xiàn)了不同的觀點(diǎn),特別是兩位非常有分量的人物的觀點(diǎn)。在技術(shù)領(lǐng)域,眾口一詞是一件非常恐怖的事情;百花齊放百家爭(zhēng)鳴才是我們樂(lè)于看到的。因?yàn)椴煌^點(diǎn)的出現(xiàn),特別是大師級(jí)的不同觀點(diǎn),能夠促進(jìn)更多的人去獨(dú)立的思考與探索

  好了,回歸主題。編程人生中,《編程人生》中至少有兩個(gè)人談到了設(shè)計(jì)模式。

  Jamie Zawinski —— 著名的LISP黑客,NETscape瀏覽器和Mozilla瀏覽器的核心開(kāi)發(fā)者。在談到程序員要讀的書(shū)時(shí)說(shuō):

  “還有一本書(shū)叫《設(shè)計(jì)模式》,人人追捧,奉為圭臬。不過(guò),在我看來(lái),這本書(shū)一派胡言,給人的感覺(jué)好像是編程只需要剪貼粘貼就能搞定。你不用全盤(pán)考慮要做的任務(wù),只要看看這本配方書(shū),找個(gè)有幾分相近的模式,直接套用就行了。那根本不是編程,那是在涂色書(shū)。不過(guò),似乎很多人都對(duì)這本書(shū)著了魔。”

  Brendan Eich —— JavaScript之父,Mozilla公司CTO,在提到為編程想做而沒(méi)有做的事情時(shí)說(shuō):

  “我并不是一個(gè)熱衷于面向?qū)ο蠛驮O(shè)計(jì)模式的人。從來(lái)沒(méi)有買(mǎi)過(guò)Gamma的書(shū)(《設(shè)計(jì)模式》)。網(wǎng)景公司有些人買(mǎi),Jamie zawinski的人或者網(wǎng)景收購(gòu)的公司來(lái)的那些冤家對(duì)頭會(huì)買(mǎi),他們把這本書(shū)當(dāng)圣經(jīng)一樣顯擺,真有點(diǎn)讓人受不了,他們根本就不是最好的程序員。”

  至于什么是設(shè)計(jì)模式,他有什么好處等等,不是我今天要說(shuō)。我想舉個(gè)例子,做個(gè)對(duì)比。我們都知道,設(shè)計(jì)模式源于建筑領(lǐng)域,建筑領(lǐng)域可能離我們太遠(yuǎn),我今天想拿籃球運(yùn)動(dòng)做個(gè)對(duì)比。

  籃球運(yùn)動(dòng)員為了提高籃球水平,除了進(jìn)行身體訓(xùn)練和投籃訓(xùn)練外,還會(huì)進(jìn)行一些連貫動(dòng)作的訓(xùn)練和一些戰(zhàn)術(shù)配合訓(xùn)練。比如,像交叉步,急停跳投,轉(zhuǎn)身過(guò)人,擋拆等等。這些訓(xùn)練是從何而來(lái)?籃球運(yùn)動(dòng)剛剛誕生的時(shí)候肯定沒(méi)有。而是運(yùn)動(dòng)員在籃球運(yùn)動(dòng)過(guò)程中,發(fā)現(xiàn)在某一種情況下(也就是防守隊(duì)員和團(tuán)隊(duì)成員的位置),使用某一種類(lèi)似的連貫動(dòng)作往往能夠取到非常好的效果。所以就有悟性非常高的人把這種約束條件和要采取的動(dòng)作都總結(jié)出來(lái),讓運(yùn)動(dòng)員在訓(xùn)練中反復(fù)的訓(xùn)練,以形成一種條件反射,在出現(xiàn)合適的機(jī)會(huì)的時(shí)候,快速而有效的使用這些連貫動(dòng)作。

  我想這也是模式的起源。有一點(diǎn)不同的是,我們學(xué)習(xí)設(shè)計(jì)模式的過(guò)程,是一種思維訓(xùn)練的過(guò)程

  不難想象,如果沒(méi)有這些東西,運(yùn)動(dòng)員要提高籃球水平有多困難。但運(yùn)動(dòng)員如果在比賽中濫用,花哨的動(dòng)作也許會(huì)增強(qiáng)比賽的觀賞性,但是它卻偏離了籃球運(yùn)動(dòng)的本質(zhì):將籃球投進(jìn)并贏得比賽。

  其實(shí),上面的這些分析對(duì)于武術(shù)也同樣適用。武俠迷可能會(huì)記得金庸筆下紛繁復(fù)雜招式名稱(chēng)(其實(shí)也是模式)。不過(guò),金庸倒也提到過(guò)更高的境界:“無(wú)招勝有招”。印象當(dāng)中張無(wú)忌學(xué)習(xí)太極拳和令狐沖學(xué)習(xí)獨(dú)孤九劍有描述。他們?cè)趯W(xué)成之后確實(shí)很厲害。難怪Jamie Zawinski和Brendan Eich會(huì)有些反對(duì)模式,也許他們已經(jīng)學(xué)到了無(wú)招勝有招的真諦,也許他們是黑客,不喜歡思維受到限制。

  難道我們要拋棄所有的模式?不過(guò)我認(rèn)為它可能并不適合所有的人,它依賴(lài)于人的造詣,以及天賦,悟性。我們很多人要獲得提高,進(jìn)行一些模式訓(xùn)練,也許還是一條非常有效的途徑。

  亂七八糟說(shuō)了這么多,最后總結(jié)一下:

  1. 首先要認(rèn)識(shí)到它的本質(zhì),模式是前人知識(shí)經(jīng)驗(yàn)的總結(jié),不是現(xiàn)成的解決方案,所以不要硬套。
  2. 對(duì)于初學(xué)者來(lái)說(shuō),模式是個(gè)好東西,學(xué)習(xí)一些模式是一條有效的提高途徑。
  3. 不要過(guò)度使用設(shè)計(jì)模式,他會(huì)給你帶來(lái)額外的復(fù)雜度。在我的眼中,簡(jiǎn)單性才是一個(gè)技術(shù)方案的首要因素。你知不知道李小龍截拳道的核心是什么?拋開(kāi)招式,直截了當(dāng)?shù)倪M(jìn)行最有效的攻擊和防守。
  4. 不要把它當(dāng)成銀彈或者圣杯。
  5. 當(dāng)你有一定的積累后,你也可以嘗試“無(wú)招勝有招”的境界。

  PS:我看過(guò)的一個(gè)比較奇特的觀點(diǎn),值得思考:

  《黑客與畫(huà)家》的作者在書(shū)中提到過(guò),說(shuō)有人做過(guò)研究,LISP語(yǔ)言自帶可以支持GOF(四人幫)總結(jié)的16中模式。所以,如果你在編程時(shí)需要用到模式,那可能是你的語(yǔ)言不夠強(qiáng)大,模式應(yīng)該是語(yǔ)言支持的東西。(這段話是我根據(jù)印象寫(xiě)的,沒(méi)有找到原話,所以可能有些出入。)

it知識(shí)庫(kù)觀點(diǎn):如何正確的對(duì)待設(shè)計(jì)模式,轉(zhuǎn)載需保留來(lái)源!

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

主站蜘蛛池模板: 日韩a| 国产精品一区二 | 国产精品美女久久久 | 中文字幕日韩av | 色婷婷av99xx | 在线观看黄色 | 美女国内精品自产拍在线播放 | h视频在线播放 | 99re在线视频观看 | 日韩在线大片 | 国产精品国产成人国产三级 | 91视频在线观看 | 伊人网99 | 国精品一区 | 狠狠色综合网站久久久久久久 | 国产精品久久久久久久白浊 | 欧美日韩国产在线 | 一级黄色在线 | 国产www在线 | 9191av| 日韩在线视频网址 | 亚洲毛片网站 | 日韩精品视频在线 | 亚洲国产网| 久久国产亚洲 | 天堂资源 | 国产美女自拍视频 | 亚洲国产在 | 蜜月va乱码一区二区三区 | 精品久久久久久久久久久久久久 | 天堂色区 | 亚洲综合天堂 | 国内精品久久久久久 | xx性欧美肥妇精品久久久久久 | 中文字幕av一区 | 欧美午夜视频 | 国产精品久久久久久久岛一牛影视 | 日日夜夜精品视频 | aaaaaa大片免费看最大的 | 97在线超碰 | 一区二区三区不卡视频 |