新聞中心
設(shè)計(jì)模式,應(yīng)該是很多ED心目中牛B的編程方式。

上回說(shuō)到ED的好書(shū)POEE,實(shí)際上便是一本專(zhuān)門(mén)講企業(yè)開(kāi)發(fā)中使用的設(shè)計(jì)模式中的書(shū)。
設(shè)計(jì)模式,并不多,基本上看完GoF的這邊《Design Pattern》便可以有足夠了解了。
而實(shí)際開(kāi)發(fā)中常用的設(shè)計(jì)模式更是屈指可數(shù),Singleton,F(xiàn)actory,F(xiàn)acade,Active Record、Provider等等。
就那么幾個(gè),花花功夫,仔細(xì)了解一下這幾個(gè),然后在實(shí)際編碼中應(yīng)用一下,便可以算是掌握了。
設(shè)計(jì)模式,并不難。
它是開(kāi)發(fā)中非常必要的知識(shí),實(shí)際上,是非?;A(chǔ)的知識(shí),并不牛B。
開(kāi)發(fā)的時(shí)候,需要時(shí)刻明確自己的目標(biāo):解決問(wèn)題。
解決問(wèn)題才是最重要的。
設(shè)計(jì)模式的存在,是為了更好的維護(hù)、管理代碼,或者是為了擴(kuò)展性;絕對(duì)不可以為了設(shè)計(jì)模式而模式。
在Java程序中,為了模式而模式的現(xiàn)象蠻普遍的。
我猜想這是因?yàn)镴ava是一門(mén)工業(yè)語(yǔ)言,有大量的ED使用的緣故。
ED把設(shè)計(jì)模式的使用,當(dāng)成是一種可以炫耀的編程技巧,或者說(shuō),他們遵從的編碼規(guī)范中,要求他們?nèi)ナ褂媚衬吃O(shè)計(jì)模式。
至于為什么要使用設(shè)計(jì)模式,最常見(jiàn)的理由便是:為了將來(lái)可以XX,或者YY。
程序開(kāi)發(fā)中,有一句名言:“Pre-mature optimization is the root of all evil”。
過(guò)早優(yōu)化,是萬(wàn)惡之源。
非常多的情況下,將來(lái)預(yù)想中的XX或者YY;并不會(huì)發(fā)生。大部分代碼,寫(xiě)了之后就會(huì)被丟棄掉,再也不會(huì)有人去維護(hù)。
當(dāng)XX或者YY發(fā)生的時(shí)候,往往,都是會(huì)推倒重來(lái)。
除非你很牛B,只有牛到一定程度,才有可能對(duì)將來(lái)可能發(fā)生的情況做好合理的預(yù)測(cè),并預(yù)留出改善、調(diào)整的空間。
但非常諷刺的是,為將來(lái)做設(shè)計(jì)的最好方法就是:什么都不做。
只有空白,才能夠留下最大的發(fā)揮空間。
現(xiàn)在為將來(lái)可能發(fā)生的情況,做了編碼,任何一行編碼,都是很可能是在為將來(lái)添加限制、制造麻煩。
現(xiàn)在寫(xiě)下去的代碼,將來(lái),都是要被刪掉的;能夠不寫(xiě),就不寫(xiě)。
在任何時(shí)候,都應(yīng)該保持代碼簡(jiǎn)潔。
函數(shù),盡可能的短;當(dāng)一個(gè)函數(shù)的長(zhǎng)度,超過(guò)一個(gè)屏幕的時(shí)候,便應(yīng)該考慮重構(gòu)、拆分。
牛B的程序,都應(yīng)該是簡(jiǎn)單、易懂的;采用大量的設(shè)計(jì)模式,復(fù)雜得讓人無(wú)法直接看懂,或許有它的意義以及應(yīng)用場(chǎng)景,但這絕對(duì)不是編程功力牛B的表現(xiàn)。
打個(gè)比方,設(shè)計(jì)模式就是武術(shù)招式。
學(xué)徒,必然需要熟悉什么“有風(fēng)來(lái)儀”或者“屁股朝后平沙落雁式”。
但更高的境界是:無(wú)招勝有招。
簡(jiǎn)單、直接的把代碼搞定。
Python大牛沈崴有云:“得道的程序員,既不封裝,也沒(méi)有重復(fù)代碼。”
http://eishn.blog.163.com/blog/static/6523182010102342531684/
作業(yè):
1. 使用一種編譯語(yǔ)言實(shí)現(xiàn) Singleton 模式
2. 使用一種動(dòng)態(tài)語(yǔ)言實(shí)現(xiàn) Singleton 模式
3. 說(shuō)說(shuō)對(duì) Provider 模式的理解。
男主角:Wuvist(新浪微博),真名翁偉,自稱(chēng)胖程序員一個(gè),幸好已婚。學(xué)習(xí).NET出身,現(xiàn)常用Python做服務(wù)器端開(kāi)發(fā),曾任新加坡某創(chuàng)業(yè)公司主程。公司被Techcrunch blog過(guò)后,覺(jué)得新加坡生活太過(guò)安逸,終于在去年辭職只身回家鄉(xiāng)汕頭創(chuàng)業(yè),活躍于珠三角技術(shù)沙龍,熱衷于與其他技術(shù)宅分享。
本文作者:Wuvist
女主角:Katze,Wuvist的老婆,女程序員,在某跨國(guó)投行任Unix系統(tǒng)管理員,常被Wuvist嘲笑技術(shù)太差。
系列:
- 宅男程序員給老婆的計(jì)算機(jī)課程之0:認(rèn)清本質(zhì)
- 宅男程序員給老婆的計(jì)算機(jī)課程之1:認(rèn)清實(shí)際
- 宅男程序員給老婆的計(jì)算機(jī)課程之2:怎么看待牛人
- 宅男程序員給老婆的計(jì)算機(jī)課程之3:架構(gòu)比較
- 宅男程序員給老婆的計(jì)算機(jī)課程之4:SQL vs NoSQL
網(wǎng)站標(biāo)題:宅男程序員給老婆的計(jì)算機(jī)課程之5:設(shè)計(jì)模式
標(biāo)題URL:http://www.dlmjj.cn/article/ccsgjpp.html


咨詢(xún)
建站咨詢(xún)
