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

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

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

    posts - 80,comments - 749,trackbacks - 2
    這是一篇寫給初學(xué)者看的文章。在前一段時(shí)間的招聘軟件設(shè)計(jì)師的過(guò)程中,我對(duì)每一個(gè)看似初學(xué)者的人都會(huì)問(wèn)這個(gè)問(wèn)題,“您覺(jué)得平臺(tái)相關(guān)性和平臺(tái)無(wú)關(guān)性哪個(gè)更好 一些”,呵呵(偷笑),其實(shí)這是唬人的,多數(shù)回答者都會(huì)順著出題者假裝的思路回答“我個(gè)人認(rèn)為平臺(tái)無(wú)關(guān)性比較好”,可是只要有點(diǎn)軟件設(shè)計(jì)經(jīng)驗(yàn)或是對(duì)這個(gè)問(wèn) 題有所思考的人都知道其實(shí)這個(gè)問(wèn)題不只兩個(gè)標(biāo)準(zhǔn)答案。

    關(guān)于平臺(tái)無(wú)關(guān)性,我不想說(shuō)什么,說(shuō)什么也沒(méi)用。大量軟件設(shè)計(jì)或軟件架構(gòu)以此來(lái)標(biāo)榜自己的優(yōu)秀和出眾,其實(shí)這沒(méi)什么,因?yàn)榇蟛糠制脚_(tái)無(wú)關(guān)性的工作不是由你來(lái) 做的。如果你正在寫一個(gè)Java程序,并依照Sun的100% Pure Java的要求來(lái)做,那么應(yīng)該就是平臺(tái)無(wú)關(guān)的,如果你正在寫一個(gè)Eclipse應(yīng)用或直接用SWT/JFace組合來(lái)寫應(yīng)用程序,那么也是平臺(tái)無(wú)關(guān)的,如 果你喜歡C/C++,并在用wxWidget寫應(yīng)用程序,那么也是平臺(tái)無(wú)關(guān)的,如果你實(shí)在是很牛,在依照OSGi的規(guī)范寫代碼,那么ok,你的程序已經(jīng)可 以從微設(shè)備到大型機(jī)統(tǒng)統(tǒng)可以用。

    平臺(tái)無(wú)關(guān)也是一個(gè)相對(duì)的概念,在多個(gè)操作系統(tǒng)上運(yùn)行可以稱為平臺(tái)無(wú)關(guān)的,以往在多個(gè)不同品種的CPU上運(yùn)行可以稱為平臺(tái)無(wú)關(guān)性,還有一件搞笑的事情,某個(gè) 公司出了一套系統(tǒng),可以在Java和.NET兩個(gè)平臺(tái)上運(yùn)行,但卻只能依賴于Windows系統(tǒng)(因而只能依賴于x86芯片),居然還可以稱平臺(tái)無(wú)關(guān)性, 可見這個(gè)概念有多么混亂。我個(gè)人評(píng)價(jià)是不是平臺(tái)無(wú)關(guān)的僅有一個(gè)標(biāo)準(zhǔn),那就是——你有沒(méi)有為平臺(tái)無(wú)關(guān)做出貢獻(xiàn)!如果你為了能在多個(gè)平臺(tái)上跑出你的代碼而做了 很多工作,那么你就可以稱自己為平臺(tái)無(wú)關(guān)的,而如果你僅僅依賴SWT工作,那就不能稱自己為平臺(tái)無(wú)關(guān)的。不過(guò)話又說(shuō)回來(lái),如果你把SWT包含在自己的軟件 中,并為此出了該軟件的多個(gè)版本(每個(gè)SWT的版本是一個(gè)發(fā)行包),那么你也可以稱此為平臺(tái)無(wú)關(guān)的,雖然這個(gè)貢獻(xiàn)并非出自你手。

    平臺(tái)無(wú)關(guān)也不見得總是個(gè)優(yōu)點(diǎn),很多系統(tǒng)為了堅(jiān)持平臺(tái)無(wú)關(guān)而犧牲了很多特性,或不必要的提高了成本。比如前幾年很多系統(tǒng)原意搞WEB界面,導(dǎo)致了很多易用性 方面的問(wèn)題,Cooper說(shuō)Web使人機(jī)交互技術(shù)倒退了10年,的確如此。我還讀過(guò)一段源碼,大概是一個(gè)單機(jī)版?zhèn)€人軟件的源碼,令人驚奇的是,該軟件很 小,卻把很多筆墨花在了業(yè)務(wù)對(duì)象和JDBC訪問(wèn)層之間的一個(gè)“抽象數(shù)據(jù)存儲(chǔ)層”,理由是便于將來(lái)移至非JDBC平臺(tái),天哪!會(huì)有多少用戶有機(jī)會(huì)使用不支持 JDBC的數(shù)據(jù)庫(kù)??!!這種設(shè)計(jì)和下面一種設(shè)計(jì)是一樣的效用:“為了讓這段代碼支持非OO語(yǔ)境,我決定整個(gè)軟件只用一個(gè)類!”。這種追求可以用四個(gè)字來(lái) 表述就是:“過(guò)渡設(shè)計(jì)”或者“吃飽撐著”!

    相反,這個(gè)世界上有80%的軟件是平臺(tái)相關(guān)的,這沒(méi)什么不能理解的。就像“民主和專制的TCO哪個(gè)高”這個(gè)問(wèn)題的答案一樣,如果我現(xiàn)在要招聘的是部門經(jīng)理 或副總裁,我很可能會(huì)問(wèn)這個(gè)問(wèn)題。事實(shí)上是,在整個(gè)人類的發(fā)展歷程中,總成本最低(即總效率最高)的幾個(gè)“社會(huì)時(shí)期”,幾乎全是專制,但如果你不假思索,你的 答案一定是民主!當(dāng)然,平臺(tái)相關(guān)也是相對(duì)的概念。

    說(shuō)到這里,有興趣的讀者可能會(huì)說(shuō)結(jié)合二者是最好的選擇,我不喜歡這種說(shuō)法,因?yàn)樘孀C了,我喜歡的是首先考慮依賴于哪個(gè)框架,再找尋該框架的平臺(tái)無(wú)關(guān)性, 如果沒(méi)有必要,盡量不要為平臺(tái)無(wú)關(guān)(實(shí)際上是一種優(yōu)先級(jí)非常低的非功能性需求)做任何事情,但如果有必要且成本允許,再做少許考慮,最好還是能夠重用開源 世界的產(chǎn)品。

    仍以O(shè)SGi為例,這個(gè)例子很好,它對(duì)Java語(yǔ)言本身(還不是面向?qū)ο蟮墓舱Z(yǔ)義)非常依賴,直接依賴至VM的spec,當(dāng)然也寫了些代碼以避開 ClassLoader的個(gè)性,即使如此,OSGi事實(shí)上實(shí)現(xiàn)了從微設(shè)備到大型機(jī)全套支持,借助Java的平臺(tái)無(wú)關(guān)性,既沒(méi)有易用性、性能和成本方面的絲 毫損失,也為上層平臺(tái)提供了平臺(tái)無(wú)關(guān)的環(huán)境。同樣,為Mac OSX設(shè)計(jì)的很多非常優(yōu)秀的軟件都沒(méi)有考慮平臺(tái)無(wú)關(guān)的問(wèn)題,而是用在PC上再做一套的方式來(lái)解決,這些都是值得思考和借鑒的解決方案。

    有點(diǎn)忙的泡泡
    (轉(zhuǎn)載本文需注明出處:Brian Sun @ 爬樹的泡泡[http://www.briansun.com])


    posted on 2005-11-17 09:19 Brian Sun 閱讀(6205) 評(píng)論(10)  編輯  收藏 所屬分類: 軟件隨心

    FeedBack:
    # re: 平臺(tái)相關(guān)性與平臺(tái)無(wú)關(guān)性
    2005-11-17 10:23 | weide
    某個(gè)公司出了一套系統(tǒng),可以在Java和.NET兩個(gè)平臺(tái)上運(yùn)行,但卻只能依賴于Windows系統(tǒng)(因而只能依賴于x86芯片),居然還可以稱平臺(tái)無(wú)關(guān)性,可見這個(gè)概念有多么混亂。
    --------------------------
    有些不大理解:能夠運(yùn)行在Java平臺(tái)上,怎么會(huì)只能依賴于Windows系統(tǒng)?


    我個(gè)人評(píng)價(jià)是不是平臺(tái)無(wú)關(guān)的僅有一個(gè)標(biāo)準(zhǔn),那就是——你有沒(méi)有為平臺(tái)無(wú)關(guān)做出貢獻(xiàn)!
    --------------------------
    這個(gè)也不認(rèn)同;不管有沒(méi)有做出貢獻(xiàn),只要“平臺(tái)無(wú)關(guān)”,那就是平臺(tái)無(wú)關(guān)吧?  回復(fù)  更多評(píng)論
      
    # re: 平臺(tái)相關(guān)性與平臺(tái)無(wú)關(guān)性
    2005-11-17 11:03 | 非魚
    某個(gè)公司出了一套系統(tǒng),可以在Java和.NET兩個(gè)平臺(tái)上運(yùn)行,但卻只能依賴于Windows系統(tǒng)(因而只能依賴于x86芯片)

    --------

    如果只能依賴于x86芯片,應(yīng)該用在Linux上也可以吧?  回復(fù)  更多評(píng)論
      
    # re: 平臺(tái)相關(guān)性與平臺(tái)無(wú)關(guān)性
    2005-11-17 14:45 | s5s5
    編程好神奇啊,我有空要學(xué)一學(xué),嘿~  回復(fù)  更多評(píng)論
      
    # re: 平臺(tái)相關(guān)性與平臺(tái)無(wú)關(guān)性
    2005-11-17 15:28 | Brian Sun
    這個(gè)例子有些公司內(nèi)部的技術(shù)細(xì)節(jié)不便于透露,但是只能說(shuō)為了遷就.NET的一些特征,該系統(tǒng)只能在Windows上運(yùn)行。

    至于“平臺(tái)無(wú)關(guān)”,我已經(jīng)說(shuō)過(guò)了它是相對(duì)的概念,你怎么描述你的產(chǎn)品是平臺(tái)無(wú)關(guān)的呢,“芯片無(wú)關(guān)”?“操作系統(tǒng)無(wú)關(guān)”?還是“運(yùn)行平臺(tái)無(wú)關(guān)”?

    可能是我思路常常跳躍的緣故,也可能是很多瀏覽網(wǎng)頁(yè)或訂閱RSS的人只讀文章的一半的緣故,您沒(méi)能理解我的意思。  回復(fù)  更多評(píng)論
      
    # re: 平臺(tái)相關(guān)性與平臺(tái)無(wú)關(guān)性
    2005-11-17 17:25 | 非魚
    有些地方不明白:

    總成本(即總效率)。。。

    能否解釋一下?  回復(fù)  更多評(píng)論
      
    # re: 平臺(tái)相關(guān)性與平臺(tái)無(wú)關(guān)性
    2005-11-17 22:13 | Brian Sun
    對(duì)于一個(gè)社會(huì)而言,總成本和總效率是成反比的。通常作為一個(gè)指標(biāo)出現(xiàn),原文是筆誤了。

      回復(fù)  更多評(píng)論
      
    # re: 平臺(tái)相關(guān)性與平臺(tái)無(wú)關(guān)性
    2005-11-22 02:13 | weide
    仍以O(shè)SGi為例,這個(gè)例子很好,它對(duì)Java語(yǔ)言本身(還不是面向?qū)ο蟮墓舱Z(yǔ)義)非常依賴,直接依賴至VM的spec,當(dāng)然也寫了些代碼以避開 ClassLoader的個(gè)性,即使如此,OSGi事實(shí)上實(shí)現(xiàn)了從微設(shè)備到大型機(jī)全套支持,借助Java的平臺(tái)無(wú)關(guān)性,既沒(méi)有易用性、性能和成本方面的絲毫損失,也為上層平臺(tái)提供了平臺(tái)無(wú)關(guān)的環(huán)境。

    -------
    有這么神奇?
    希望看到對(duì)樓主對(duì)osgi的更多文章  回復(fù)  更多評(píng)論
      
    # re: 平臺(tái)相關(guān)性與平臺(tái)無(wú)關(guān)性
    2005-11-22 13:14 | Brian Sun
    weide,沒(méi)問(wèn)題,呵呵,謝謝捧場(chǎng)!
      回復(fù)  更多評(píng)論
      
    # re: 平臺(tái)相關(guān)性與平臺(tái)無(wú)關(guān)性
    2005-11-28 11:33 | errorfun
    最近在做一些需求分析和系統(tǒng)分析的工作,也在考慮這個(gè)問(wèn)題,看完后覺(jué)得自己也犯了這“過(guò)度設(shè)計(jì)”這個(gè)錯(cuò)。想得太多了,現(xiàn)在一般公司不用WINDOWS的大概沒(méi)有那么多個(gè)。  回復(fù)  更多評(píng)論
      
    # re: 平臺(tái)相關(guān)性與平臺(tái)無(wú)關(guān)性
    2006-06-10 10:28 | sangern
    路過(guò)
    MARK  回復(fù)  更多評(píng)論
      
    主站蜘蛛池模板: 成年人性生活免费视频| 亚洲国产中文在线二区三区免| 欧美最猛性xxxxx免费| 两性色午夜视频免费网| 无码色偷偷亚洲国内自拍| 亚洲人成网男女大片在线播放 | 亚洲一区二区三区成人网站| 亚洲AV无码一区二区二三区软件| 免费一级一片一毛片| 成人人观看的免费毛片| 免费人成在线观看视频播放| 最近2019中文字幕免费直播 | 亚洲成年看片在线观看| 一级特黄色毛片免费看| 亚洲精品无码日韩国产不卡av| 久久久久亚洲精品日久生情| 国产亚洲福利精品一区| 亚洲熟女一区二区三区| 亚洲中文字幕视频国产| mm1313亚洲精品无码又大又粗| 日本媚薬痉挛在线观看免费| 国产真人无码作爱免费视频| 青青草国产免费国产是公开| 精品国产日韩亚洲一区在线| 亚洲AV无码AV吞精久久| 亚洲高清国产拍精品熟女| 亚洲中文字幕AV在天堂| 亚洲精品国产精品国自产网站| 亚洲日产2021三区| 亚洲精品91在线| 亚洲精品在线不卡| 亚洲精品福利网泷泽萝拉| 久久久亚洲欧洲日产国码是AV| 午夜亚洲国产理论秋霞| 久久青青草原亚洲AV无码麻豆 | 中文字幕无码免费久久9一区9| 国产裸体美女永久免费无遮挡| 精品亚洲国产成人| 亚洲另类自拍丝袜第1页| 亚洲一级毛片免费看| 亚洲中文字幕久久精品无码A |