自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

宅男程序員給老婆的計(jì)算機(jī)課程之5:設(shè)計(jì)模式

原創(chuàng)
開發(fā)
這個(gè)系列來(lái)自一位宅男程序員,這個(gè)系列是他寫給老婆的電腦課程。以下,開始本系列的第6篇——設(shè)計(jì)模式。而實(shí)際開發(fā)中常用的設(shè)計(jì)模式更是屈指可數(shù),Singleton,F(xiàn)actory,F(xiàn)acade,Active Record、Provider等等。

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

上回說(shuō)到ED的好書POEE,實(shí)際上便是一本專門講企業(yè)開發(fā)中使用的設(shè)計(jì)模式中的書。

設(shè)計(jì)模式,并不多,基本上看完GoF的這邊《Design Pattern》便可以有足夠了解了。

而實(shí)際開發(fā)中常用的設(shè)計(jì)模式更是屈指可數(shù),Singleton,F(xiàn)actory,F(xiàn)acade,Active Record、Provider等等。

就那么幾個(gè),花花功夫,仔細(xì)了解一下這幾個(gè),然后在實(shí)際編碼中應(yīng)用一下,便可以算是掌握了。

設(shè)計(jì)模式,并不難。

它是開發(fā)中非常必要的知識(shí),實(shí)際上,是非?;A(chǔ)的知識(shí),并不牛B。

開發(fā)的時(shí)候,需要時(shí)刻明確自己的目標(biāo):解決問(wèn)題。

解決問(wèn)題才是最重要的。

設(shè)計(jì)模式的存在,是為了更好的維護(hù)、管理代碼,或者是為了擴(kuò)展性;絕對(duì)不可以為了設(shè)計(jì)模式而模式。

在Java程序中,為了模式而模式的現(xiàn)象蠻普遍的。

我猜想這是因?yàn)镴ava是一門工業(yè)語(yǔ)言,有大量的ED使用的緣故。

ED把設(shè)計(jì)模式的使用,當(dāng)成是一種可以炫耀的編程技巧,或者說(shuō),他們遵從的編碼規(guī)范中,要求他們?nèi)ナ褂媚衬吃O(shè)計(jì)模式。

至于為什么要使用設(shè)計(jì)模式,最常見的理由便是:為了將來(lái)可以XX,或者YY。

程序開發(fā)中,有一句名言:“Pre-mature optimization is the root of all evil”。

過(guò)早優(yōu)化,是萬(wàn)惡之源。

非常多的情況下,將來(lái)預(yù)想中的XX或者YY;并不會(huì)發(fā)生。大部分代碼,寫了之后就會(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)在寫下去的代碼,將來(lái),都是要被刪掉的;能夠不寫,就不寫。

在任何時(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大牛沈崴有云:“得道的程序員,既不封裝,也沒有重復(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(新浪微博),真名翁偉,自稱胖程序員一個(gè),幸好已婚。學(xué)習(xí).NET出身,現(xiàn)常用Python做服務(wù)器端開發(fā),曾任新加坡某創(chuàng)業(yè)公司主程。公司被Techcrunch blog過(guò)后,覺得新加坡生活太過(guò)安逸,終于在去年辭職只身回家鄉(xiāng)汕頭創(chuàng)業(yè),活躍于珠三角技術(shù)沙龍,熱衷于與其他技術(shù)宅分享。

[[58036]]

本文作者:Wuvist

女主角:Katze,Wuvist的老婆,女程序員,在某跨國(guó)投行任Unix系統(tǒng)管理員,常被Wuvist嘲笑技術(shù)太差。

[[58037]]

51CTO系列:

  1. 宅男程序員給老婆的計(jì)算機(jī)課程之0:認(rèn)清本質(zhì)
  2. 宅男程序員給老婆的計(jì)算機(jī)課程之1:認(rèn)清實(shí)際
  3. 宅男程序員給老婆的計(jì)算機(jī)課程之2:怎么看待牛人
  4. 宅男程序員給老婆的計(jì)算機(jī)課程之3:架構(gòu)比較
  5. 宅男程序員給老婆的計(jì)算機(jī)課程之4:SQL vs NoSQL
責(zé)任編輯:彭凡 來(lái)源: 51CTO
相關(guān)推薦

2012-03-01 09:27:23

宅男程序員

2012-05-14 09:33:21

宅男程序員

2012-05-02 13:30:50

2012-02-14 10:33:12

宅男程序員

2012-02-06 10:52:14

宅男程序員

2012-02-01 10:19:02

宅男程序員計(jì)算機(jī)課程

2012-05-21 09:04:12

宅男程序員

2012-03-20 09:44:40

宅男程序員

2012-02-15 14:40:17

宅男程序員

2012-03-27 09:43:28

宅男程序員

2012-04-26 08:12:01

2012-02-09 10:02:41

宅男程序員

2012-03-05 09:48:03

宅男程序員

2012-02-12 13:31:36

2011-05-11 09:42:27

程序員

2014-12-11 17:55:05

程序員

2012-04-09 09:42:56

2022-04-11 15:59:21

計(jì)算機(jī)

2023-08-07 12:11:26

CPU存儲(chǔ)器SSD

2013-03-27 09:59:33

程序員編程
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)