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

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

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

    Evan's Blog

    Java, software development and others.

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      28 隨筆 :: 0 文章 :: 73 評論 :: 0 Trackbacks

    Author:Benji Smith
    Translator:Evan Wang
    Original Link:Why I Hate Frameworks
    ?
    我正處于建造一個基于Java的Web應(yīng)用的規(guī)劃階段(是的,必須基于Java,不過我現(xiàn)在還不想討論其中的原因)。在這個過程中,我評估了一系列CMS應(yīng)用容器框架,它們大多擁有J2EE門戶、采用與JSR相兼容的MVC架構(gòu)、基于角色等。

    然而在花了幾十個小時閱讀功能列表和文檔后,我?guī)缀跸氪料刮业碾p眼。

    首先假設(shè)我決定做一個調(diào)味品架子。

    我以前做過一些小的木工活,因此我知道自己需要以下東西:一些木頭和基本工具,包括卷尺、鋸子、水平儀和錘子。

    如果我想造一棟房子,而不僅僅是一個調(diào)味品架,我還是需要卷尺、鋸齒、水平儀和錘子(以及其它東西)。

    所以,我跑到一家五金店,問一個銷售員,哪里能找到一把錘子。

    “錘子?”他說:“現(xiàn)在幾乎沒人要買錘子了。這個已經(jīng)過時了。”

    我很驚訝這樣一種發(fā)展,于是問他為什么。

    “嗯,問題在于有太多種類的錘子。大錘啦,拔釘錘啦,球頭錘等等。你買了其中一種,后來發(fā)現(xiàn)你還需要另外一種怎么辦呢?你下次還得單獨買一把。因此,大多數(shù)人實際上需要一把能夠處理他們一生中可能碰到的所有敲敲打打的活的錘子。”

    “嗯,這個聽起來挺不錯。那么我在哪里能夠找到這樣一把通用錘子呢?”

    “不,我們不再銷售了。他們已經(jīng)廢棄了。”

    “真的嗎?我想你剛才不是說通用錘子是將來的趨勢嘛。”

    “事實上,如果生產(chǎn)出一種能夠處理所有事情的錘子,反倒不能很有效率地處理其中的任何一件。用一把大錘去拔個釘子很費勁吧。并且,你要殺死你前任女友的話,沒有什么會比一把球頭錘更適合的了。”

    “這倒是真的。如果沒有人會買這種通用錘子,而你們又不再銷售老式的各種錘子,那么你們賣什么樣的錘子呢?”

    “事實上,我們不賣錘子。”

    “那么…”

    “根據(jù)我們的研究,人們需要的根本不是通用錘子。最好還是用不同的錘子做不同的工作。所以,我們現(xiàn)在銷售錘子工廠,它能夠生成任何你需要的錘子。你所需要的只是為錘子工廠招聘員工,開動機器,購買原材料,付公用事業(yè)費,諸如此類的…這樣你就可以隨時得到你需要的錘子。”

    “但我真的不想買一個錘子工廠…”

    “對頭。我們其實也不再銷售錘子工廠了。”

    “但你剛剛還說…”

    “我們發(fā)現(xiàn)大多數(shù)人實際上不需要一整個錘子工廠。比如說,一些人,就不可能用到球頭錘。(也許他們就沒有前女友。或者他們用冰錐來解決她們。)所以對一些人來說一個能生產(chǎn)各種錘子的工廠是沒有什么意義的。”

    “耶,這個實際得多。”

    “所以,我們開始銷售錘子工廠的示意圖,以便我們的客戶能夠建造他們自己的錘子工廠,自行設(shè)計只生成他們實際需要的那些錘子。”

    “讓我猜猜看。你們現(xiàn)在也不再銷售這些了。”

    “對,真的是這樣。實際上,人們不會為了幾把錘子去建一個工廠。就像我經(jīng)常說的,讓建造工廠的專家去建造工廠吧。”

    “這一點我贊成。”

    “對的。所以我們停止銷售這些示意圖,轉(zhuǎn)而銷售建造錘子工廠的工廠。每個建造錘子工廠的工廠都由這方面的頂尖專家建造,所以,你根本不需要操心建造工廠的任何細節(jié)。你依然擁有自定義錘子工廠的好處,根據(jù)你自己特定的錘子設(shè)計做出你自己的錘子。”

    “嗯,這個實際上并不…”

    “我知道你想說什么!…我們也不再銷售這些東西了。因為某些原因,也沒有多少人買建造錘子工廠的工廠,所以我們又有了新的解決方法。”

    “哇哈。”

    “當(dāng)我們回過頭來審查這個統(tǒng)一工具的基礎(chǔ)時,發(fā)現(xiàn)人們被必須管理和運作一個制造錘子的工廠以及它所生成的錘子工廠給困住了。當(dāng)你需要處理類似的建造卷尺工廠的工廠,水平儀工廠的工廠,鋸子工廠的工廠的時候,這很快就會變得相當(dāng)棘手。更別提木材生產(chǎn)集團公司了。當(dāng)我們審查這種狀況的時候,我們意識到這對于僅僅想做個調(diào)味品架子的人來說過于復(fù)雜了。”

    “是啊,這可不是開玩笑。”

    “所以,這個星期,我們正在推廣一種通用的建造工廠,用來建造生產(chǎn)工具工廠的工廠,這樣你所有的用來建造不同種類工具的工廠的工廠就可以由一個單一的、統(tǒng)一的工廠來建造了。這種工廠將僅僅生產(chǎn)你所需要的工具工廠的建造工廠,而這些建造工廠將生成一個僅生產(chǎn)你自定義的工具的工廠來。你將得到你要的那種錘子,你要的卷尺,所有這一切僅僅需要按一下按鈕(當(dāng)然,也許你要發(fā)布一些配置文件以便它能根據(jù)你的期望來工作)。”

    “所以,你們根本就沒有什么錘子?不是嗎?”

    “是的。如果你需要一個高質(zhì)量的,工業(yè)標(biāo)準(zhǔn)的調(diào)味料架子,你絕對需要這些高級玩意,而不是從那些破破爛爛的五金店里就買得到的錘子。”

    “現(xiàn)在所有的人都在這么做嗎?當(dāng)他們需要一把錘子的時候,所有的人都在使用一個通用的能夠生產(chǎn)工具工廠的建造工廠的工廠嗎?”

    “是的。”

    “那…好吧。我想這就是我必須要做的。如果這是處理事情的既定方法,我想我最好還是學(xué)學(xué)怎么來用吧。”

    “祝你好運!”

    “這些都有文檔的,對吧?”

    現(xiàn)在我已經(jīng)自豪地擁有了自己的通用的工具工廠的建造工廠的建造工廠,我很高興地知道它與GPTBFF 0.97 RC2標(biāo)準(zhǔn)草案兼容,這是“通用的工具工廠的建造工廠的建造工廠”的標(biāo)準(zhǔn)。

    很幸運地,面向工具的元工廠聯(lián)盟里的工人都通過了這個版本的標(biāo)準(zhǔn)的驗證。

    然而標(biāo)準(zhǔn)之爭即將開始:一種名為UXCTBFFF(Universal Trans-Continental Tool Building FFF)很有競爭力的原工廠技術(shù)承諾將統(tǒng)一建造工廠的工廠的建造行業(yè),以使之符合那些同時使用公制和當(dāng)?shù)囟攘繂挝坏膰业臉?biāo)準(zhǔn)。

    我的理解是只需要創(chuàng)建一個貫穿用戶界面的抽象層的補丁包,就可以使GPTBFF 0.97 RC2與UXCTBFF標(biāo)準(zhǔn)達到95%左右的兼容。

    真是太好了!

    想必這種新的發(fā)展能夠提升我的調(diào)料架的質(zhì)量(一旦我搭建好我的工具工廠的建造工廠的建造工廠并使之運行,培訓(xùn)好工人,從柬埔寨進口來原木,在最近的某天,我就要開始做那個調(diào)料架了)。


    譯后記:
    首先,洋人這種以調(diào)侃方式寫的技術(shù)文章在國內(nèi)很少見,國內(nèi)的“技術(shù)專家”都過于嚴(yán)肅了,抑或其實并不了解這些技術(shù)的本質(zhì)而沒辦法聯(lián)想,只好照本宣科了。其次,當(dāng)Java開發(fā)領(lǐng)域充斥了這么多的框架之后,你還能把持得住自己嗎?在實際的軟件企業(yè)中,怎樣搭建自己的開發(fā)環(huán)境和平臺并不斷改進之,而不是盲目地引進最新框架和技術(shù),是所有的技術(shù)領(lǐng)導(dǎo)人所要正視的頭等大事。不過,在國內(nèi),往往重技術(shù)而輕管理,當(dāng)然,這不是這篇文章所要討論的問題。


    Benji Smith 的回應(yīng):Why China Hates Frameworks

    同時測試一下用Windows Live Writer更新Blog,不過樣式的下載好象還是有點不盡如人意。(--updated 2006-12-14)
    posted on 2006-03-11 17:04 Evan 閱讀(5785) 評論(23)  編輯  收藏

    評論

    # re: [翻譯]我為什么討厭框架 2006-03-11 22:13 lzcarl
    不錯,很深入淺出
    通用性和易用性真是很難兼顧  回復(fù)  更多評論
      

    # re: [翻譯]我為什么討厭框架 2006-03-11 22:54 Evan
    @lzcarl
    這個與通用性和易用性無關(guān)啊,主要是要避免過度設(shè)計。現(xiàn)在的框架,做著做著就開始發(fā)胖。連Spring也不能免俗啊!  回復(fù)  更多評論
      

    # re: [翻譯]我為什么討厭框架 2006-03-12 22:32 Jeff_Liu
    很有道理
    現(xiàn)在我負責(zé)的項目都反樸歸真了,基本用最簡單的方法
    譬如mvc框架,自己寫了一個簡單的,很容易控制。
    用jdbc代替hibernate,雖然開發(fā)效率低了點,運行效率還是比hibernate好的哈哈  回復(fù)  更多評論
      

    # re: [翻譯]我為什么討厭框架 2006-03-12 22:57 Evan
    @Jeff_Liu
    你也真有膽這么說啊:)。不過,也用不著走極端啦。很多框架也還是有很多值得借鑒的東西。不過,我倒真不反對自己公司弄個小而精致一點的開發(fā)平臺,作為每個項目的基礎(chǔ);否則,現(xiàn)在框架的更新速度如此快,你怎么跟啊。另外,如果你真直接用jdbc的話,一定要看看Spring它自己的JdbcTemplate的實現(xiàn),是我迄今所知道的最好的一種不用O/R mapping的解決方法。  回復(fù)  更多評論
      

    # re: [翻譯]我為什么討厭框架 2006-03-12 23:11 太陽底下
    @Jeff_Liu
    應(yīng)該說不同的應(yīng)用應(yīng)該有不同的做法,避免過度的設(shè)計,復(fù)雜應(yīng)用就要復(fù)雜設(shè)計  回復(fù)  更多評論
      

    # re: [翻譯]我為什么討厭框架 2006-03-16 15:42 CROKY
    框架 把所有的錯誤歸納為一個錯誤,讓你感覺錯誤少了,其實是錯誤增加了。
    框架 把一大群有用沒用的東西加在一起讓你選擇著用,事實上不管有用沒有用,它都在運行。
    框架 好象為你提供了一個更簡單的解決問題的思路,其實等你把他綜合起來想,發(fā)現(xiàn),除了少寫了一些代碼外也額外多了一些代碼,好處是讓你懶惰了一點,確讓你的計算機更加累了。(繞的彎子太多)而且最噴血的是,你會發(fā)現(xiàn)它其實更難了。
    框架 就是來忽悠你我他的。
    框架 就是毒品,等你用習(xí)慣了就不得不承認它的好,哪怕它爛的不行你也要為它爭點面子。
      回復(fù)  更多評論
      

    # re: [翻譯]我為什么討厭框架 2006-03-21 10:14 云霄
    現(xiàn)在的設(shè)計通病是不先討論做什么,而先討論怎么做。然后對別人說“我們已經(jīng)可以應(yīng)付你的一些要求了,好,現(xiàn)在說說你想要什么?”典型的本末倒置,自我主義。  回復(fù)  更多評論
      

    # re: [翻譯]我為什么討厭框架 2006-03-21 11:56 無名
    確實比較實在. 前一階段, 我們項目組做了有關(guān)java的評估和學(xué)習(xí). 基本上, 已經(jīng)把我們看暈了.  回復(fù)  更多評論
      

    # re: [翻譯]我為什么討厭框架 2006-03-21 15:02 henkoo
    太贊了

    過度重構(gòu),過度設(shè)計

    關(guān)鍵是夠用,變化發(fā)展是沒有一勞永逸的解決辦法的  回復(fù)  更多評論
      

    # re: [翻譯]我為什么討厭框架 2006-03-22 11:10
    哈哈,與我心有戚戚焉  回復(fù)  更多評論
      

    # re: [翻譯]我為什么討厭框架 2006-09-12 19:42 yes
    受教了,謝謝樓主!  回復(fù)  更多評論
      

    # re: [翻譯]我為什么討厭框架 2006-10-22 20:54 efanstudio
    我開發(fā)J2EE從來不用框架,實際上我個人認為現(xiàn)在的J2EE框架絕大多數(shù)都已經(jīng)過了-使用它們并沒有降低開發(fā)的復(fù)雜性,反而增加了開發(fā)的難度!  回復(fù)  更多評論
      

    # re: [翻譯]我為什么討厭框架 2006-10-22 20:58 efanstudio
    spring的JdbcTemplate的確寫得非常好,我覺得可以直接調(diào)用它來屏蔽掉JDBC中的一些比較繁瑣的細節(jié)處理,但我非常反感編寫又臭又長的配置文件,很多時候,我們的應(yīng)用并沒有真正復(fù)雜到要考慮到幾乎所有的細節(jié)!而國內(nèi)的開發(fā)習(xí)慣是,很少有人能在同一個項目中做好幾個版本,而對于別人開發(fā)的前面的版本,是采用完全拋棄的態(tài)度,所以你預(yù)先設(shè)計的再好都沒有多大的實用價值!  回復(fù)  更多評論
      

    # re: [翻譯]我為什么討厭框架 2006-11-28 12:53 pldmusic
    其實作者的觀點就是這樣:要用錘子的時候用錘子,要用錘子工廠的時候用工廠  回復(fù)  更多評論
      

    # re: [翻譯]我為什么討厭框架 2006-11-30 09:31 nxliu
    看到你這個文章,還以為是抄襲的 :) 原來是原創(chuàng)的,我也譯過該文:
    http://nxliu.spaces.live.com/?_c11_BlogPart_blogpart=blogview&_c=BlogPart&partqs=cat%3d%25e7%25bf%25bb%25e8%25af%2591

    <a href="http://nxliu.spaces.live.com/?_c11_BlogPart_blogpart=blogview&_c=BlogPart&partqs=cat%3d%25e7%25bf%25bb%25e8%25af%2591">我為什么討厭框架</a>  回復(fù)  更多評論
      

    # re: [翻譯]我為什么討厭框架 2007-10-06 21:06 photon
    框架這種東西,要辯證地看。它是對過去開發(fā)經(jīng)驗地總結(jié),故可以用于學(xué)習(xí)借鑒,如果方便也可以采用拿來主義直接使用。但我們還要記著,盡信書不如無書,過猶不及。  回復(fù)  更多評論
      

    # re: [翻譯]我為什么討厭框架 2012-04-19 18:13 CSDN_Softworm
    真不錯!

    以前早已明白的道理,過了幾年又忘了,又得再回來看。  回復(fù)  更多評論
      

    # payday loan Canada 2012-08-14 22:18 payday loan Canada
    odwegfm http://paydayloansstg.info/ payday loan Canada  回復(fù)  更多評論
      

    # payday loans 2012-09-26 08:39 payday loans
    gvqmfm http://uspaydayloansff.com/ payday loans  回復(fù)  更多評論
      


    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: jjizz全部免费看片| 国产精品亚洲综合网站| 国产精品免费网站| 亚洲AV无码专区国产乱码不卡| 免费黄色福利视频| 精品亚洲视频在线| 亚洲AV无码一区东京热| 日本免费一区二区三区最新vr| 亚洲免费综合色在线视频| 中文字幕亚洲专区| 国产又大又粗又长免费视频| 亚洲成aⅴ人片在线观| 亚欧免费视频一区二区三区| 免费无遮挡无遮羞在线看| 亚洲视频一区二区| 国产92成人精品视频免费| 全部在线播放免费毛片| 亚洲香蕉久久一区二区| 成年女人免费视频播放体验区 | 亚洲国产一区二区三区| 24小时免费看片| 一个人看的www免费在线视频| 亚洲中文字幕无码专区| 你懂的在线免费观看| 亚洲精品av无码喷奶水糖心| 免费少妇a级毛片人成网| 免费又黄又爽又猛大片午夜 | 日韩精品无码区免费专区| 国产精品九九久久免费视频 | av无码东京热亚洲男人的天堂| 国产99久久久国产精免费| 亚洲精品无码专区在线播放| 久久亚洲AV无码精品色午夜| 中文字幕亚洲无线码| 最好看最新的中文字幕免费 | 免费无码一区二区三区蜜桃| 亚洲国产精品一区二区成人片国内| 99在线热视频只有精品免费| 亚洲黄色激情视频| 久久精品国产亚洲AV大全| 国产福利在线免费|