<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    冒號和他的學(xué)生們(連載5)——軟件技術(shù)

    冒號和他的學(xué)生們

    ——程序員提高班紀事

    1. 軟件技術(shù)

    借我借我一雙慧眼吧,讓我把這紛擾看得清清楚楚明明白白真真切切                                  

    ——《霧里看花》


    “現(xiàn)在我們具體介紹一下編程范式。”冒號忽然頓住,隱覺一抹失望從眾人臉上掠過,問號更是欲言又止,便鼓勵他開口。

    問號略顯遲疑:“您說編程范式是一種心法,那框架、設(shè)計模式還有架構(gòu)呢?”

    “原來如此!”冒號心下了然,“讓我說說你們最想聽些什么吧。”

    眾現(xiàn)不信之色。

    冒號說道:“一種是具體而實用的,最好能立馬解決學(xué)習(xí)和工作中的問題;一種是時髦而花哨的,管他有用沒用,不學(xué)點心里就是不踏實。”

    眾人雖覺此話有些尖刻,細想起來也有幾分道理,但老冒明知而不為,不走群眾路線,偏去扯什么勞什子的范式——當(dāng)然,直接談OOP倒是不錯的。

    自以為懂的未必真的懂,自以為不懂的未必真的不懂。” 冒號玩起了玄學(xué),“有些概念和技術(shù)即使背得爛熟,甚至用得爛熟,那也不代表真正掌握;有些概念和技術(shù)看起來很新奇,卻不過是新瓶裝舊酒。”

    引號頗不服氣:“用得爛熟都不算掌握,難不成只有發(fā)明概念和技術(shù)才算掌握?”

    “哈哈,那倒不必。”冒號笑道,“用得爛熟不等于用得恰到好處,能解決問題不等于沒有后顧之憂。”

    逗號問道:“那掌握的標準是什么?”

    “許多應(yīng)聘者喜歡在簡歷中言必稱精通某某語言、某某技術(shù)云云,大多不必面試即知其大言炎炎——倘若真的精通,他當(dāng)應(yīng)聘更高的職位。”冒號有感而發(fā)卻又似不著邊際,“任何概念和技術(shù)都不是孤立的,如果不能在縱向的時間和橫向的聯(lián)系中找準坐標,便似那群摸象的盲人,各執(zhí)一端卻又自以為是。”

    眾人心想,老冒雖言辭旦旦卻有鑿空之嫌,一節(jié)課下來,天馬行空的扯了不少,真刀真槍的一個也無,該不是只會紙上談兵吧?

    句號緊扣主題:“您為何選擇談編程范式,而不是框架、設(shè)計模式還有架構(gòu)呢?難道它們真如您所說只是時髦而花哨的東西嗎?”

    “我可沒這么說。”冒號矢口否認,“但在弄清一樣?xùn)|西存在的意義之前就隨眾跟風(fēng),早晚會跟丟的。我先問問你們:什么是框架framework)?它與一般的library)和工具包toolkit)有何不同?”

    引號應(yīng)答:“框架就是一組協(xié)同工作的類,它們?yōu)樘囟愋偷能浖?gòu)筑了一個可重用的設(shè)計。與庫和工具包不同之處在于前者側(cè)重設(shè)計重用而后兩者側(cè)重代碼重用。”

    “嗯,有點標準答案的味道。”冒號夸道,“如果吹毛求疵的話,框架并不限于OOP,可以是協(xié)同工作的,也可以是協(xié)同工作的函數(shù)。一個足夠復(fù)雜的應(yīng)用軟件開發(fā),為確??焖儆行Вǔ2扇〉姆绞绞牵涸?em>宏觀管理上選取一些框架以控制整體的結(jié)構(gòu)和流程;在微觀實現(xiàn)上利用庫和工具包來解決具體的細節(jié)問題??蚣艿囊饬x在于使設(shè)計者在特定領(lǐng)域的整體設(shè)計上不必重新發(fā)明輪子;庫和工具包的意義在于使開發(fā)者擺脫底層編碼,專注具體問題。”

    問號提出問題:“框架與庫和工具包看起來很相似——都是一些代碼集合,都提供一些API(應(yīng)用編程接口),是什么使得它們不同呢?”

    “問得好!”冒號贊言,“框架與工具包最大的差別在截然相反的設(shè)計理念上:庫和工具包是為程序員帶來自由的,框架是為程序員帶來約束的。具體地說,庫和工具包是為程序員提供武器裝備的,框架則利用控制反轉(zhuǎn)IoC)機制實現(xiàn)對各模塊的統(tǒng)一調(diào)度從而剝奪了程序員對全局的掌控權(quán),使他們成為手執(zhí)編程武器、隨時聽候調(diào)遣的士兵。”

    嘆號苦著臉:“程序員原來就是一小卒子?。?#8221;

    “哪個將軍不是從小卒做起的?”冒號反問道,“不錯,框架是在語言的語法規(guī)則之外施加于程序員的又一層枷鎖,但沒有規(guī)矩不成方圓。正如行軍打仗,講究排兵布陣,程序員就是那兵,框架就是那陣。”

    句號說:“可不可以這么理解,框架就是一些人——也就是框架設(shè)計者,把一個軟件開發(fā)中最甜的部分啃掉了,剩下部分留給下面的人?”

    “從某種意義上說,是這樣。”冒號點點頭。

    逗號很不甘心:“我就想啃最甜的部分。”

    “當(dāng)心別把牙給崩掉。”冒號笑道,“不是打擊你,首先你還沒那本事;其次即使你有本事也未必有機會;最后即使有本事也有機會,重新設(shè)計框架也未必是好的選擇。就說大名鼎鼎的Struts吧,哪怕你設(shè)計出比它更高明的框架也不會被采用,因為前者早已成為Java平臺上網(wǎng)絡(luò)開發(fā)的事實(De Facto)標準,公司很容易從市場上招到懂Stuts的程序員,不必培訓(xùn)即可上手,成本低見效快。過去許多公司都有自己的網(wǎng)絡(luò)框架,但最后大多都放棄了,并不是因為Struts更優(yōu)秀,而是因為它更普及。畢竟大多數(shù)軟件開發(fā)是以金錢而不是技術(shù)為中心的。”

    問號提議:“您能談?wù)勗O(shè)計模式和架構(gòu)嗎?”

    冒號侃侃而談:“與框架與庫和工具包不同,設(shè)計模式Design Pattern)和架構(gòu)Architecture)不是軟件產(chǎn)品,而是軟件思想。設(shè)計模式是軟件的戰(zhàn)術(shù)思想,架構(gòu)是軟件的戰(zhàn)略決策。設(shè)計模式是針對某些經(jīng)常出現(xiàn)的問題而提出的行之有效的設(shè)計解決方案,它側(cè)重思想重用,因此比框架更抽象,更普適,但多限于局部解決方案,沒有框架的整體性。至于架構(gòu),一般指一個軟件系統(tǒng)的最高層次的整體結(jié)構(gòu)和規(guī)劃,一個架構(gòu)可能包含多個框架,而一個框架可能包含多個設(shè)計模式。”

    引號愈發(fā)疑惑:“這些不是都很重要嗎?”

    “當(dāng)然都很重要。不過——”冒號話鋒一轉(zhuǎn),“在沒有打好基礎(chǔ)前,架構(gòu)只是空中樓閣,因此不可能現(xiàn)在談它。至于框架,不同的應(yīng)用領(lǐng)域有不同的框架,如表現(xiàn)層的Struts,業(yè)務(wù)層的Spring,持久層的Hibernate等等,即使相同領(lǐng)域的框架也有多個選擇,從何談起?再說框架其實一點也不高深,完全可以無師自通,關(guān)鍵是領(lǐng)會思想,多學(xué)習(xí)多實踐。談到設(shè)計模式,一共就那么幾十個,一本‘四人幫’(GoF)的書足矣,又何須多談?簡言之,一個談之過早,一個無從談起,一個不必多談。”

    下面開始交頭接耳竊竊私語起來。

    “知識的學(xué)習(xí)有幾種方式:一種靠記憶,一種靠練習(xí),一種靠培養(yǎng)。就拿英語學(xué)習(xí)來說吧,學(xué)單詞,單靠記憶即可;學(xué)句型、語法,光記憶是不夠的,需要勤加練習(xí)方可熟能生巧;而要講出地道的英語,光記憶和練習(xí)是遠遠不夠的。從小學(xué)到大學(xué),甚至博士畢業(yè),除了英語類專業(yè)的學(xué)生外,大多數(shù)人英語練了一二十年,水平如何?不客氣但很客觀地說:一個字,爛;兩個字,很爛;三個字,相當(dāng)爛!口語甚至連一個英語國家的三歲小孩都不如。”冒號越說越激動,“原因只有一個,那就是國內(nèi)的英語教學(xué)方式嚴重失策。教學(xué)總是圍繞單詞、詞組、句型、語法轉(zhuǎn),缺乏對語感的重視和培養(yǎng),導(dǎo)致學(xué)生只會‘中式英語’。同樣道理,一個慣用C語言編程的人也許很快就能寫一些C++程序,但如果他只注重C++的語法而不注重培養(yǎng)OOP的語感,那么寫出的程序一定是‘CC++’,與其如此,倒不如直接用C呢。”

    句號悟道:“您是想告訴我們,編程范式就是編程語言的語感?”

    “一針見血!”冒號慶幸總算沒有白費口舌,“現(xiàn)在如果我開始介紹范式,你們還有意見嗎?”

    眾人個個把頭搖得跟撥浪鼓似的。

    冒號語重心長地說:“既然范式是一種語感,就需要慢慢的培養(yǎng)和滲透,不可能一蹴而就,因此有些地方不太明白也沒關(guān)系?,F(xiàn)在只是撒下一些種子,慢慢的會生根發(fā)芽,直至長成大樹。大家準備好了嗎?”

    “準備好了!”眾人齊聲道,求知的目光再度點燃。

    “準備好了就下課吧。”冒號狡笑著,“下節(jié)課我們再談。”

    posted on 2008-05-05 16:41 鄭暉 閱讀(2774) 評論(11)  編輯  收藏 所屬分類: 冒號和他的學(xué)生們

    評論

    # re: 冒號和他的學(xué)生們(連載5)——軟件技術(shù) 2008-05-05 17:28 隔葉黃鶯

    真棒,太有意思了,很有深度。  回復(fù)  更多評論   

    # re: 冒號和他的學(xué)生們(連載5)——軟件技術(shù) 2008-05-05 17:41 birdqin

    期待您的再次更行  回復(fù)  更多評論   

    # re: 冒號和他的學(xué)生們(連載5)——軟件技術(shù) 2008-05-05 22:45 viMory

    引號搬小板櫈來上課。^_^  回復(fù)  更多評論   

    # re: 冒號和他的學(xué)生們(連載5)——軟件技術(shù) 2008-05-19 15:52 Actually

    pretty good!  回復(fù)  更多評論   

    # re: 冒號和他的學(xué)生們(連載5)——軟件技術(shù) 2008-05-20 01:38 gopee

    "在宏觀管理上選取一些框架以控制整體的結(jié)構(gòu)和流程;在微觀實現(xiàn)上利用庫和工具包來解決具體的細節(jié)問題??蚣艿囊饬x在于使設(shè)計者在特定領(lǐng)域的整體設(shè)計上不必重新發(fā)明輪子;庫和工具包的意義在于使開發(fā)者擺脫底層編碼,專注具體問題。"
    說的太好了?。?!醍醐灌頂阿
    頂了??!  回復(fù)  更多評論   

    # re: 冒號和他的學(xué)生們(連載5)——軟件技術(shù) 2008-05-29 10:39 deathnote

    真的不錯,繼續(xù)往下看。。。  回復(fù)  更多評論   

    # re: 冒號和他的學(xué)生們(連載5)——軟件技術(shù) 2008-06-18 23:24 leweslove

    很同意 編程的語感。而且編程的靈感也很重要!  回復(fù)  更多評論   

    # re: 冒號和他的學(xué)生們(連載5)——軟件技術(shù) 2008-06-24 14:35 gyf

    最后幾句太搞了,呵呵  回復(fù)  更多評論   

    # re: 冒號和他的學(xué)生們(連載5)——軟件技術(shù) 2008-06-25 13:41 zwd

    大多是大家普遍存在的問題,頂你?。?!  回復(fù)  更多評論   

    # re: 冒號和他的學(xué)生們(連載5)——軟件技術(shù) 2008-12-01 17:16 Nuy

    聽君一席話,勝讀十本書  回復(fù)  更多評論   

    # re: 冒號和他的學(xué)生們(連載5)——軟件技術(shù) 2009-01-09 15:08 小李飛刀

    寫得非常好!詼諧風(fēng)趣,見解也很有深度!  回復(fù)  更多評論   

    導(dǎo)航

    統(tǒng)計

    公告

    博客搬家:http://blog.zhenghui.org
    《冒號課堂》一書于2009年10月上市,詳情請見
    冒號課堂

    留言簿(17)

    隨筆分類(61)

    隨筆檔案(61)

    文章分類(1)

    文章檔案(1)

    最新隨筆

    積分與排名

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 精品国产福利尤物免费| 四虎影视永久免费视频观看| 黄色三级三级三级免费看| 久久久久亚洲AV无码麻豆| 亚洲午夜精品久久久久久浪潮| 思思re热免费精品视频66| 国产午夜不卡AV免费| 全部在线播放免费毛片| 亚洲人成未满十八禁网站| 亚洲精品国产电影午夜| 亚洲人成网7777777国产| 亚洲日本中文字幕天堂网| 国产在线播放免费| 青青久在线视频免费观看| 99ee6热久久免费精品6| 久久久精品国产亚洲成人满18免费网站| 亚洲乱妇熟女爽到高潮的片| 亚洲国产美女精品久久| 久久亚洲精精品中文字幕| 国产v亚洲v天堂无码网站| 国产亚洲AV夜间福利香蕉149| 国产91久久久久久久免费| 成人毛片18女人毛片免费| 在线看片无码永久免费视频| 999国内精品永久免费观看| 亚洲美女免费视频| 91精品国产免费网站| 暖暖免费日本在线中文| 国产做国产爱免费视频| 久久成人永久免费播放| 国产A∨免费精品视频| 一个人看的免费观看日本视频www| 爱情岛亚洲论坛在线观看| 亚洲AV无码专区在线厂| 亚洲a∨无码一区二区| 激情小说亚洲图片| 日本一区二区三区在线视频观看免费| 免费一区二区无码视频在线播放 | GOGOGO高清免费看韩国| 一级毛片无遮挡免费全部| 久久久受www免费人成|