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

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

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

    分層與分模塊開發(fā)

    分層與分模塊開發(fā),是開發(fā)時經(jīng)常選用的兩種方式,應(yīng)該說分模塊開發(fā)是較多被采用的方式,但一直以來都覺得其實(shí)分層方式自己是比較欣賞的方式,對于兩種開發(fā)方式分別的看法是:
    分層開發(fā)
    優(yōu)點(diǎn):
    1、保持系統(tǒng)分層結(jié)構(gòu)
    ??????分層開發(fā)在這點(diǎn)上無疑是可以保證的,同時有利于保證系統(tǒng)層次的職責(zé)的清晰以及分離。
    2、面向接口的編程
    ??????由于采用分層開發(fā),各層次之間采用接口依賴的方式就更容易被執(zhí)行了。
    缺點(diǎn):
    1、容易造成瓶頸現(xiàn)象
    ????? 由于分層開發(fā)各個承擔(dān)人員的任務(wù)難度不一樣,很容易形成瓶頸現(xiàn)象。
    2、對于系統(tǒng)設(shè)計的要求更高
    ????? 這點(diǎn)應(yīng)該說不能算是缺點(diǎn)。
    3、容易出現(xiàn)扯皮現(xiàn)象
    分模塊開發(fā)
    優(yōu)點(diǎn):
    1、系統(tǒng)功能更容易被完成
    ????? 由于采用分模塊開發(fā),開發(fā)人員從頭到尾負(fù)責(zé),一定程度上來講減少了溝通以及協(xié)調(diào)成本,使得系統(tǒng)功能能夠被更容易的完成。
    缺點(diǎn):
    1、容易造成系統(tǒng)的分層結(jié)構(gòu)缺失
    ????? 通常在項目實(shí)際的趕工情況下,很容易形成系統(tǒng)的分層結(jié)構(gòu)缺失的情況,開發(fā)人員為了完成功能完全不顧分層,不顧層次職責(zé)的分離的保證,這點(diǎn)在實(shí)際的項目中往往不是那么好控制。
    2、面向接口編程的貫徹不力
    ????? 這點(diǎn)也通常是由于上面的原因,當(dāng)然,其實(shí)這里面最根本的原因是開發(fā)人員本身的素質(zhì)不夠高....

    在開發(fā)人員水平參差不齊的情況下,我認(rèn)為分層開發(fā)方式更有利于保證系統(tǒng)的質(zhì)量,盡管在具體實(shí)施的時候可能會碰到一些問題,希望能聽聽采用過分層開發(fā)方式的朋友們的看法。
    ?

    posted on 2006-03-19 21:11 BlueDavy 閱讀(7260) 評論(26)  編輯  收藏 所屬分類: Java

    評論

    # re: 分層與分模塊開發(fā) 2006-03-19 22:31 fisher

    很高興又有人對這個問題感興趣了,說說我的看法
    任務(wù)分解不應(yīng)該以系統(tǒng)功能為主視角
    而是考慮以人為本

    任務(wù)分解,是一個面向人而不是面向任務(wù)的過程
    這個問題實(shí)際上是對系統(tǒng)橫向切分和縱向切分的問題
    很多項目管理方面的書要么對這個問題采用了一種偏致的做法
    比如《PMP:Project Management Professional Study Guide》中采用縱向分解方法并羅列了很多好處
    而有些書籍則再這個問題上搗漿糊,如WBS在這個問題上羅列出N種方案卻沒給出任何實(shí)際意見
    且,很多人認(rèn)為任務(wù)分解的終極目標(biāo)為減少對交流的依賴

    在這個問題上,我認(rèn)為應(yīng)該以團(tuán)隊特色設(shè)計任務(wù)分解方式
    而終極目標(biāo),則不是減少依賴,而是讓依賴可管理
    即軟件結(jié)構(gòu)設(shè)計影響任務(wù)分解,而任務(wù)分解影響組員間的依賴關(guān)系
    反之,只有符合目前團(tuán)隊的風(fēng)格的任務(wù)分解才能高效運(yùn)行,而該任務(wù)分解將影響架構(gòu)師的架構(gòu)抉擇。其實(shí),這正是XP中團(tuán)隊設(shè)計的根本原因。
    這也是軟件項目管理上的一個重大特色,就是軟件結(jié)構(gòu)設(shè)計同團(tuán)隊結(jié)構(gòu)設(shè)計的不可分割性。也是軟件開發(fā)難以實(shí)行工廠化的原因。

    如果你在開始就積極的開展設(shè)計,并且把設(shè)計的過程持續(xù)下去,你的任務(wù)的劃分就會成為一個縱橫交錯的動態(tài)的調(diào)整的過程。而應(yīng)該注意的師,模塊并不是任何任務(wù)劃分的一個約束,而只是為不同的人協(xié)同書寫相同的模塊提供的一種約束。

    而如果以任務(wù)為視角,無論橫向分解還是縱向分解,都會在某種情況下陷入困境。
    實(shí)際上,由于國內(nèi)目前的軟件項目普遍不大,所以對于交流的有效性的感覺并不強(qiáng)烈
    這問題在多個公司合作開發(fā)的過程中尤為突出

      回復(fù)  更多評論   

    # re: 分層與分模塊開發(fā) 2006-03-19 23:02 fanta

    我的經(jīng)驗是相反,對于不成熟的團(tuán)隊,分層可能是災(zāi)難吧。  回復(fù)  更多評論   

    # re: 分層與分模塊開發(fā) 2006-03-20 09:35 citysir

    在保證分層的情況下再分模塊,這有什么問題嗎?  回復(fù)  更多評論   

    # re: 分層與分模塊開發(fā) 2006-03-20 09:35 破門

    這個命題我個人認(rèn)為可能永遠(yuǎn)出不了結(jié)果,只能以刀劍之爭來比喻一下:究竟是胡家快刀厲害,還是苗家劍法無雙?
    事實(shí)上,我覺得還是應(yīng)該就是論事,發(fā)揮各自的長處,最終道理都是相通的,就像胡一刀可以和苗人鳳互換兵器,依然要爭個三天三夜還是會旗鼓相當(dāng)一樣。

    說白了點(diǎn),為了達(dá)成目標(biāo),你長于架構(gòu)可以先分層再來支持模塊。如果你長于業(yè)務(wù),自然先分模塊再考慮重構(gòu)系統(tǒng)分層。可嘆的是,我們往往只取其一。做產(chǎn)品的,只管分層,不管應(yīng)用;做應(yīng)用的只看模塊,不看架構(gòu)。最終,都是死路一條!  回復(fù)  更多評論   

    # re: 分層與分模塊開發(fā) 2006-03-20 11:15 小陸

    項目的初期,應(yīng)該用較少的人力,設(shè)計開發(fā)系統(tǒng)的框架,建立底層的開發(fā)平臺。這個時候主要是分層。
    當(dāng)這部分工作完成的差不多了,就可以大批的人上去,開發(fā)具體的功能點(diǎn),直接實(shí)現(xiàn)用戶的需求。這個時候主要就是分模塊了,每個功能點(diǎn)都要有直接的負(fù)責(zé)人。  回復(fù)  更多評論   

    # re: 分層與分模塊開發(fā) 2006-03-21 17:29 guitarpoet

    分層開發(fā)的最重要的特征是層與層之間的松耦合。松耦合所帶來的結(jié)果是,各層之間都可以有自己的基礎(chǔ)模塊,可以實(shí)現(xiàn)本層內(nèi)部的重用,在底層發(fā)生變化的時候(變化協(xié)議、變化技術(shù)、甚至變化介質(zhì)),上面的層是可以花費(fèi)很小的成本進(jìn)行適應(yīng)的(比如操作系統(tǒng)和應(yīng)用程序?qū)樱?

    商業(yè)開發(fā)必須考慮開放成本,而有效的重用是降低成本的方法之一。

    模塊化開發(fā),估計每家做企業(yè)級應(yīng)用的公司都必然會采用這個方式。拿用電系統(tǒng)來說,客戶服務(wù)模塊和電費(fèi)管理模塊業(yè)務(wù)差距非常大,非業(yè)務(wù)專精人員,很難在短時間內(nèi)寫出高效和高質(zhì)量的代碼(光是業(yè)內(nèi)常識就有的學(xué)的,而且各處業(yè)務(wù)還都不大相同)。

    fanta的話是有問題的,對于不成熟的團(tuán)隊,如果沒有成熟的技術(shù)框架進(jìn)行支持和有能力的項目負(fù)責(zé)人進(jìn)行管理的話,生產(chǎn)的軟件產(chǎn)品質(zhì)量和工期就沒有辦法得到有效的保證。  回復(fù)  更多評論   

    # re: 分層與分模塊開發(fā) 2006-03-21 17:46 guitarpoet

    @fisher

    軟件開發(fā)必須以人為本,但是所謂的“團(tuán)隊特色”是一個偽命題,團(tuán)隊中的人總會流失(升遷、跳槽、借調(diào)),總會有新的人加入,這是業(yè)內(nèi)的常識。如果針對團(tuán)隊作出良好設(shè)計的人或是一個對各種技術(shù)十分精通的人被別的公司高薪翹走了,怎么辦?

    合格的軟件公司都要有一定的應(yīng)急機(jī)制,這也是對軟件質(zhì)量保證的手段之一。這樣就不會因為某一個開發(fā)人員跳槽而造成手足無措的情況。

    怎樣才能 達(dá)到這一點(diǎn)?那就是有效的分層,有效的把損失局限在某一個范圍內(nèi),就算是臨時拿新人頂,他也可以迅速的接替流失人員的位置。

    當(dāng)然,Brooks說過:“無論怎樣,項目肯定會延期”。但是要要盡最大可能的把損失降到最小。

    太多的軟件工程書不顧現(xiàn)實(shí)的情況了,完美的人是不存在的,技術(shù)全才一般是不愿意只做技術(shù)的(這個東西真是有趣啊),我們得面對現(xiàn)實(shí)。  回復(fù)  更多評論   

    # re: 分層與分模塊開發(fā) 2006-03-21 20:22 fisher

    @guitarpoet

    首先
    以人為本!=團(tuán)隊特色
    任何團(tuán)隊都會有特色,但不是任何團(tuán)隊的開發(fā)過程都以人為本
    所以,你說的顯然是個偽命題

    另外,如果某一開發(fā)人員的離開對你的團(tuán)隊和公司有如此打擊,只能是項目經(jīng)理失職
    同任務(wù)分解和任務(wù)分配的原理沒有任何關(guān)系

    還有,你提到的例子中,混淆了模塊和模塊劃分的區(qū)別
    我前面說過,模塊并不是任何任務(wù)劃分的一個約束,而只是為不同的人協(xié)同書寫相同的模塊提供的一種約束。
    而模塊劃分,則既不是業(yè)務(wù)問題,也不是技術(shù)問題,它受到實(shí)現(xiàn)技術(shù)、任務(wù)和人員配置的三角關(guān)系的約束。
    所以,在架構(gòu)及開發(fā)任務(wù)分解這方面,沒有萬試萬靈的靈丹妙藥,最重要的是如何管理依賴,所有的依賴。所以,從技術(shù)上來說,其重點(diǎn)在于,架構(gòu)師和項目管理者對有影響力的各個方面的動態(tài)依賴的認(rèn)識及協(xié)調(diào)能力。  回復(fù)  更多評論   

    # re: 分層與分模塊開發(fā) 2006-03-21 21:22 BlueDavy

    ^_^,好多評論..

    軟件過程以及開發(fā)方式都是為了降低人的因素來實(shí)現(xiàn)項目的可控性。
    雖然這點(diǎn)一定程度上來說已經(jīng)在強(qiáng)調(diào)不是以人為本的問題......
    分層和分模塊開發(fā),一個實(shí)際的不同的例子就是當(dāng)運(yùn)用在一個水平相差很大的團(tuán)隊中的時候,分模塊很容易造成模塊的質(zhì)量上難以保證的問題,分層則一方面可以保證這問題,另一方面可以發(fā)揮團(tuán)隊中各人特長,同時對于團(tuán)隊成員的培養(yǎng)也是有很大的好處的。
    當(dāng)然,我的意思不是說分層的開發(fā)方式就一定更好,就像破門所說,這個是劍刀之爭,需要根據(jù)不同的情況做出不同的選擇..
    或者可以去好好的總結(jié)什么樣的情況下適合分層開發(fā)方式,什么樣的情況下更適合采用分模塊開發(fā)的方式  回復(fù)  更多評論   

    # re: 分層與分模塊開發(fā) 2006-03-21 23:05 fisher

    @BlueDavy

    似乎我說的太多了:)
    因為我對這個問題真的感興趣
    也多次與人交流,在實(shí)踐中,我發(fā)現(xiàn)無論哪種方法都會有問題

    你說“軟件過程以及開發(fā)方式都是為了降低人的因素來實(shí)現(xiàn)項目的可控性。”
    我認(rèn)為這是不對的,從管理學(xué)角度來講,管理的目標(biāo)是建立行為規(guī)范
    而行為規(guī)范是用來規(guī)范人,而不是用來規(guī)范過程的

    我發(fā)現(xiàn)技術(shù)人員總是認(rèn)為以人為本是個討巧的話題
    其實(shí)正相反,在團(tuán)隊管理中,用人絕對是一個技術(shù)活
    是要通過分析得出正確結(jié)論的。這需要理論、模型、計算以及權(quán)衡裁決
    其實(shí)跟軟件設(shè)計是一回事,這也是為什么管理學(xué)到最后也是數(shù)學(xué)的原因
    管理不是感覺、而是技術(shù)和數(shù)學(xué)

    anyway,說回分層的話題
    無論分層還是分模塊,你都會依賴你的團(tuán)隊來完成
    而無論分層還是分模塊,都會有不同的依賴模型
    不知道我這么說是不是很掃大家的興^_^
    但我還是那句話:從技術(shù)上來說,其重點(diǎn)在于,架構(gòu)師和項目管理者對有影響力的各個方面的動態(tài)依賴的識別及協(xié)調(diào)能力。

    ps.
    恰巧,本人目前正在運(yùn)行中的兩個項目
    一個是分模塊開發(fā),一個是分層開發(fā)的。
      回復(fù)  更多評論   

    # re: 分層與分模塊開發(fā) 2006-03-22 09:04 guitarpoet

    @fisher

    也許我們的想法相似,只是表達(dá)方式上有所不同。在IT行業(yè),熟練的團(tuán)隊的工作效率是要比非熟練的團(tuán)隊的工作效率高數(shù)十倍甚至上百倍的。

    但是,別忘了,良好的分層架構(gòu)、模塊封裝使得可以充分利用社會分工機(jī)制(開源組織、組件和工具供應(yīng)商)對工作效率的提高也是數(shù)十倍甚至上百倍的(而且更可靠)。

    JavaEE就是這么一個分層的概念。

    管理是一門藝術(shù),涉及到的地方就比較多了。改天我們再對它進(jìn)行探討(郵件的方式最好)。現(xiàn)在要探討的是技術(shù)架構(gòu)上的問題。

    哪個成熟的軟件公司沒有自己的軟件開發(fā)過程?沒有自己的基礎(chǔ)軟件開發(fā)架構(gòu)體系?沒有自己的技術(shù)價值觀?

    沒有這些東西,談什么公司開發(fā)文化都是妄談。  回復(fù)  更多評論   

    # re: 分層與分模塊開發(fā) 2006-03-22 10:46 破門

    @fisher
    “在實(shí)踐中,我發(fā)現(xiàn)無論哪種方法都會有問題”,完全同意!:)
    因為實(shí)踐中沒有哪一個項目是完全相同的,所以我說,分層與分模塊只是技術(shù),不要把它們當(dāng)做“銀彈”。
    實(shí)踐是門更深的藝術(shù)!
    所以,選擇技術(shù)架構(gòu)、路線和管理手段的方法完完全全來自你面臨的實(shí)際情況,你的項目目標(biāo),你能找到的資源,你所在的管理環(huán)境等等.....
    因此,討論任何一門技術(shù)方法的時候,不能只討論技術(shù)本身,千萬不要忘記了它們適用的場景,否則,太容易帶來誤導(dǎo)了。  回復(fù)  更多評論   

    # re: 分層與分模塊開發(fā) 2006-03-22 12:39 BlueDavy

    @fisher

    ^_^,覺得你誤解了我所說的
    "軟件過程以及開發(fā)方式都是為了降低人的因素來實(shí)現(xiàn)項目的可控性。"
    這句話所表達(dá)的觀點(diǎn)和你所說的
    "行為規(guī)范是用來規(guī)范人,而不是用來規(guī)范過程的"
    是一個意思,都是為了降低人的因素造成對項目的影響。

    呵呵,比較想知道你現(xiàn)在分層和分模塊開發(fā)的兩個項目目前進(jìn)展來看,你覺得兩者更為適合的場景是?  回復(fù)  更多評論   

    # re: 分層與分模塊開發(fā) 2006-03-23 13:25 fisher

    忙里偷閑上來看看^_^
    接jerry的話,我也會來說說我的項目的情況

    其實(shí)我覺得分層或分模塊的說法并不準(zhǔn)確
    何謂分層?何謂分模塊呢?

    咱們先繞開這個容易引發(fā)爭論的定義,來說說實(shí)際情況
    在J2EE應(yīng)用中,似乎分層是很自然的想法
    簡單的說,我們要分:表現(xiàn)層、邏輯層、持久層
    然后分模塊,則是一個人負(fù)責(zé)一個功能模塊,貫穿所有層

    現(xiàn)在,我們來跳出J2EE領(lǐng)域,看看軟件開發(fā)其他領(lǐng)域是什么樣的
    比如,一個電信基礎(chǔ)業(yè)務(wù)系統(tǒng)開發(fā)
    我們假設(shè),包括語音平臺、帳務(wù)平臺、后臺主機(jī)系統(tǒng)、前端接入系統(tǒng)、計費(fèi)平臺、業(yè)務(wù)管理平臺等
    在系統(tǒng)設(shè)計中,我們分為語音模塊開發(fā)、帳務(wù)系統(tǒng)模塊開發(fā)、主機(jī)通訊系統(tǒng)開發(fā)、前端接入系統(tǒng)開發(fā)、計費(fèi)及業(yè)務(wù)管理系統(tǒng)開發(fā)
    那么這是分層還是分模塊呢?
    顯然,一個人做一個業(yè)務(wù)的全套處理是不可能的(我很想結(jié)識能做到的xd),所以,這不會是分模塊開發(fā)。
    如果說是分層,那么邏輯層在哪里?持久層在哪里?另外的問題是主機(jī)通訊系統(tǒng)將會貫穿始終,這應(yīng)該算哪一層?并且?guī)?wù)處理會使所有層的數(shù)據(jù)產(chǎn)生強(qiáng)烈耦合。

    同樣的問題,出現(xiàn)在銀行綜合業(yè)務(wù)處理系統(tǒng)
    一個銀行綜合業(yè)務(wù)處理系統(tǒng)中,我們分為主機(jī)系統(tǒng)、主機(jī)客戶帳分錄系統(tǒng)、IBS系統(tǒng)、柜面系統(tǒng)、電話銀行接入模塊、ATM系統(tǒng)及接入模塊、網(wǎng)銀系統(tǒng)及接入端點(diǎn)模塊
    下面我們來分一下層,按照J(rèn)2EE的慣例,我們分為表現(xiàn)層、邏輯層和持久層
    首先表現(xiàn)層為所有接入模塊及柜面系統(tǒng)、邏輯層是什么呢?IBS?客戶帳系統(tǒng)?還是主機(jī)系統(tǒng)?那么持久層呢?按照銀行開發(fā)的情況,一般來說,數(shù)據(jù)分別存儲在Host,客戶帳系統(tǒng)、IBS和網(wǎng)銀上。那么我們顯然不能夠分層開發(fā)
    那么所謂分模塊呢?哦....我還無緣得識這樣的朋友

    所以說,分層還是分模塊,不過是J2EE中的一個idiom
    從軟件開發(fā)出現(xiàn)到現(xiàn)在,軟件開發(fā)的重點(diǎn)仍然是依賴管理,清晰的接口(無論是java中的interface還是c中的.h文件)使得子系統(tǒng)(無論是一個模塊還是一段代碼)的開發(fā)人員可以只依賴與接口編程,這才是團(tuán)隊開發(fā)的重點(diǎn),如果你沒有接口,你就要管理開發(fā)人員之間的依賴,如果你有接口,你就要管理接口兩端的依賴。總要有個合作工作的基礎(chǔ),我們才能繼續(xù)前進(jìn)。

    在這點(diǎn)上,似乎英文使用者就不會產(chǎn)生混淆,因為interface這個單詞代表了所能表示的所有交界處。而中文,我們有人機(jī)界面、接口、交互、分界面、接觸面等N種解釋

    用J2EE的眼光看軟件開發(fā),自然什么都要套到J2EE的模子里去
    簡單的說,手里那個錘子,看什么都像釘子:)

    我在上面所說的分層、分模塊開發(fā)的兩個項目,都是部分分層、部分分模塊的情況,如同我前面所說,是一個縱橫交錯的動態(tài)調(diào)整過程。
    分層,也就是說的那個J2EE項目是在大原則是分層的情況下,實(shí)際開發(fā)中做了許多調(diào)整,項目做到最后,也不能說是分層還是分模塊了:),把一個人硬按在一個位置上,他是不會產(chǎn)生高效的
    而另外一個,則是一個銀行綜合業(yè)務(wù)處理系統(tǒng)。  回復(fù)  更多評論   

    # re: 分層與分模塊開發(fā) 2006-03-23 16:28 guitarpoet

    @fisher

    其實(shí)你混淆了分層的概念,分層開發(fā)就不能分模塊了?

    分層開發(fā)是一種開發(fā)方式,目前而言,這種開發(fā)方式是非常適合企業(yè)級應(yīng)用的。

    但是,它并不與分模塊的開發(fā)方式互相矛盾。你把系統(tǒng)根據(jù)業(yè)務(wù)分成相應(yīng)的模塊以后,還
    可以根據(jù)需要進(jìn)行分層開發(fā)的。這同樣可以體現(xiàn)出分而治之的原則。

    對于公司而言,應(yīng)該有一個開發(fā)人員遵循的統(tǒng)一標(biāo)準(zhǔn),然后這一個標(biāo)準(zhǔn)還要根據(jù)工程和業(yè)務(wù)模塊的需要進(jìn)行相應(yīng)的剪裁,你總不希望各個工程和各個模塊之間開發(fā)沒有相同點(diǎn),開發(fā)方式各有不同吧,如果真是那樣,你怎么實(shí)現(xiàn)項目之間人員的調(diào)換?你不能實(shí)現(xiàn)人員的調(diào)換,怎么保證項目一定可以如期完成?

    分模塊是必須的,但是應(yīng)該建立在良好的分層的基礎(chǔ)上,否則軟件質(zhì)量的管理不可能達(dá)到公司的級別,只能依賴個別優(yōu)秀的軟件開發(fā)管理人員和項目架構(gòu)師,這對一個公司是有風(fēng)險的。

    JavaEE之所以流行就是因為它不是簡單的工程師文化,它代表了商業(yè)開發(fā)的概念和標(biāo)準(zhǔn),相對而言.NET的工程師文化可能更強(qiáng)一些,但是它們是典型的騎墻派(沒有貶義),從C#語言的頻繁變化就可以看出來了。

    工程師更喜歡概念上的東西,但概念不等同于商業(yè)。  回復(fù)  更多評論   

    # re: 分層與分模塊開發(fā) 2006-03-23 23:03 fisher

    @ guitarpoet

    我的意思是說,不要拘泥于分層開發(fā)還是分模塊開發(fā)
    而是要認(rèn)清為什么要分層,為什么要分模塊,有什么好處,有什么弊端
    以前有人問我某個設(shè)計該怎么分層,我說,理解為什么要分層就知道該怎么分層了
    不要為了分層而分層
    況且,分層不足以描述軟件開發(fā)的根本問題,它只是解決根本問題的表現(xiàn)手法之一
    這我在前面已經(jīng)說過了
      回復(fù)  更多評論   

    # re: 分層與分模塊開發(fā) 2006-03-24 08:34 guitarpoet

    @fisher

    其實(shí)我們的想法相似,只是表達(dá)方式上有所不同,呵呵。

    很高興能跟你討論問題,軟件工程作為一門學(xué)科,現(xiàn)在離真正的成熟期還遠(yuǎn),在一定的時間內(nèi),概念的爭論是免不了的。

    我覺得,在這種條件下,要想真正意義上的進(jìn)行企業(yè)級應(yīng)用開發(fā),必須腳踏實(shí)地的采用注重實(shí)效的方法。

    而且軟件開發(fā)還是要以人(客戶、開發(fā)人員)為本的,不管采用什么概念、技術(shù)和實(shí)現(xiàn)方法。

    很多人都喜歡拿企業(yè)級應(yīng)用類比汽車產(chǎn)業(yè),其實(shí)可比性沒有想象中那么高,軟件開發(fā)畢竟是一個概念上的東西,與現(xiàn)實(shí)中的物質(zhì)相比,它跟人的思想和人分析問題解決問題的方法更近一些。

    古希臘的時候,人就開始對自身的概念和思維的邏輯進(jìn)行探討,但是直到現(xiàn)在,還是沒有什么有突破意義的結(jié)果。

    軟件開發(fā)更接近于哲學(xué),這就是為什么編程高手一般都非常喜歡古典哲學(xué)。

    其實(shí),技術(shù)哲學(xué)也是哲學(xué)的一種啊。

    計算機(jī)科學(xué)的發(fā)展,最后應(yīng)該是跟人類的哲學(xué)的發(fā)展相互依存的。

    馬克思說的真他媽有道理。  回復(fù)  更多評論   

    # re: 分層與分模塊開發(fā) 2006-03-24 11:58 pb

    我理解,在目前的中等團(tuán)隊—— 20人左右——情況下,對于一個超過20*60人天的項目,分層+分模塊
    分層:對于這樣一個項目,必然會有其技術(shù)要求,會抽取出來很多通用的、底層的、全面的功能或者服務(wù)出來;那么,對于這些部分,技術(shù)要求比較高,設(shè)計上也許要更多的通用和健康,所以需要幾個高手來把握
    分模塊:在此基礎(chǔ)上,根據(jù)業(yè)務(wù)功能模塊分成若干小組進(jìn)行業(yè)務(wù)層面的開發(fā)。這里,對于技術(shù)的要求比較不苛刻,大部分人可以勝任
    如果在此基礎(chǔ)上,還有富裕的人力 —— 可能是工作量上的富余 —— 可以把界面和業(yè)務(wù)層也分開

    總之,希望是一個金字塔的形狀  回復(fù)  更多評論   

    # re: 分層與分模塊開發(fā) 2006-03-25 18:47 fisher

    @guitarpoet

    ^_^  回復(fù)  更多評論   

    # re: 分層與分模塊開發(fā) 2006-12-07 15:05 eddy

    看到大家談得這么投機(jī),我也上來說兩句!
    我個人是偏向分層開發(fā)的,但并不是說分層開發(fā)一定比分模塊開發(fā)好,就好比OOP,AOP一樣,它們都是各有優(yōu)缺,其實(shí)也不是優(yōu)缺,只是具體使用那種開發(fā)方式要根據(jù)多個方面來決定,第一:項目需求,第二:人員配備;第三:團(tuán)隊.

    首先,從項目需求來說,要是一個小項目,完成就好,基本不要維護(hù),那么建議用分層開發(fā),反之,如果是一個銀行,電信核心系統(tǒng).它在設(shè)計的時候都不知道會被什么人使用.必須提供完善的接口規(guī)范,那么建議使用分層開發(fā),保證面向接口編程,為重構(gòu)提供可能!
    其次,說到人員配置,如果team中每個人都是junior developer,不能提供出成熟的設(shè)計,那么建議使用分模塊開發(fā)!因為分層開發(fā)對系統(tǒng)框架設(shè)計的要求比分模塊開發(fā)要高!如果team中有幾個設(shè)計方面的告訴,能夠保證系統(tǒng)設(shè)計的成熟,穩(wěn)定性,那么分層開發(fā)是必然的選擇,何必放著這些高手不用!讓他們做junior都能做的事呢?
    最后,說一下團(tuán)隊,從團(tuán)隊穩(wěn)定性的角度,我建議使用分層開發(fā),原因有二,第一,分層保證多人(大于2人)了解同一個模塊,即使走一人,其它了解這個模塊的人也可用接上手;第二,人盡其才,從古到今,都是這個理!

    順便引用網(wǎng)絡(luò)的上一段話,我覺得挺在理!
    "大家不妨想一下,微軟自帶的例子,都是分三層,四層的,這意味著什么?好處肯定是有的,否則就不會帶這個DEMO給全世界用.NET的IT人員參考啦,就不會放在MSDN中!"  回復(fù)  更多評論   

    # re: 分層與分模塊開發(fā) 2007-03-23 15:41 ramon

    好久以來我一直都在考慮層與模塊的關(guān)系,但是從來沒有把它們和項目管理掛起來, 我一直覺得它們是屬于系統(tǒng)架構(gòu)設(shè)計中的概念, 所有就老糾纏在到底是層包含模塊, 還是模塊包含層這樣的問題中,困惑了許久,今天看到大家的討論,獲益匪淺, 層應(yīng)該是從架構(gòu)設(shè)計的角度來看 ,是對系統(tǒng)的縱向分解,而模塊應(yīng)該是從功能呢個角度劃分,是對系統(tǒng)的橫向分解。 模塊與層應(yīng)該是一個垂直正交的關(guān)系。
    那么在實(shí)際中,我覺得分層加分模塊比較合適, 比如在一個較大的項目中,定義了表示層,邏輯層和持久層, 我可能愿意只在邏輯層和持久層分模塊,表示層可能就交個一個專門的team來開發(fā),必經(jīng)表示層的開發(fā)和后端的開發(fā)需要的技術(shù)知識領(lǐng)域是有差異的。。。呵呵,隨便說說,歡迎大家指正。 因為這個問題實(shí)在困惑我很久,又找不到什么資料, 不知道有沒有朋友介紹一些其他的關(guān)于這方面的經(jīng)典文章。  回復(fù)  更多評論   

    # re: 分層與分模塊開發(fā) 2007-05-24 15:04 jallock17@126.com

    看看上面大家的發(fā)言,確實(shí)是些強(qiáng)人。
    那我就我的想法說說:
    不管你采用哪種方式開發(fā),都應(yīng)當(dāng)基于人(用戶、開發(fā)人員、管理人員),然后綜合考慮項目因素。具體一點(diǎn)說:
    我認(rèn)為,我們大部分開發(fā)人員老是基于自身的角度去想應(yīng)該怎么開發(fā)合理,
    如果我們換個角度去想想:項目時間不足夠,項目資金不足夠、沒有足夠的需求調(diào)研、市場因素等綜合考慮,你會發(fā)現(xiàn)有很多問題我們開發(fā)人員太過理想化。  回復(fù)  更多評論   

    # re: 分層與分模塊開發(fā) 2007-05-24 15:24 jallock17@126.com

    軟件工程,流程的開發(fā)方式,都是前人的經(jīng)驗總結(jié),
    需要根據(jù)實(shí)際情況來結(jié)合自身實(shí)際條件來找到一條
    適合自己的路子才是最可行的  回復(fù)  更多評論   

    # re: 分層與分模塊開發(fā)[未登錄] 2007-06-05 17:16 Marine

    不懂J2EE
    不過分層了,再分模塊不好么?個人感覺模塊是在層次之下的。每一層有自己的模塊。  回復(fù)  更多評論   

    # re: 分層與分模塊開發(fā) 2007-12-06 15:45 huangyifu

    我的經(jīng)驗是:
    分模塊開發(fā)速度快些
    分層開打質(zhì)量高一些  回復(fù)  更多評論   

    # re: 分層與分模塊開發(fā) 2009-07-30 16:23 eric土人

    讀這位fisher寫的東西真是拗口,是不是能按照主謂賓的結(jié)構(gòu)來排排語法,只表達(dá)一個觀點(diǎn)--對敏捷里面提及的團(tuán)隊合作,在中國,很成問題.  回復(fù)  更多評論   

    公告

     









    feedsky
    抓蝦
    google reader
    鮮果

    導(dǎo)航

    <2006年3月>
    2627281234
    567891011
    12131415161718
    19202122232425
    2627282930311
    2345678

    統(tǒng)計

    隨筆分類

    隨筆檔案

    文章檔案

    Blogger's

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲中文字幕无码久久综合网| 中国china体内裑精亚洲日本| 最新中文字幕电影免费观看| 中文字幕免费在线看电影大全| 国产成人亚洲综合一区| 亚洲国产精品线在线观看| 亚洲国产中文v高清在线观看| 好爽…又高潮了毛片免费看| 99精品视频在线视频免费观看| 久久国产乱子伦精品免费午夜 | 亚洲av无码一区二区三区在线播放 | 四虎永久免费地址在线网站| 香蕉97超级碰碰碰免费公| 特级精品毛片免费观看| 中文字幕在线免费视频| 一级毛片成人免费看a| 亚洲av无码日韩av无码网站冲| 亚洲精品美女网站| 亚洲不卡中文字幕| 亚洲大片免费观看| 亚洲性69影院在线观看| 在线电影你懂的亚洲| 亚洲一区二区三区四区在线观看 | 国内精品免费在线观看| 成人无码区免费A∨直播| 日韩少妇内射免费播放| 黄页视频在线观看免费| 丁香六月婷婷精品免费观看| 深夜a级毛片免费视频| 色www免费视频| 一级A毛片免费观看久久精品| 免费福利在线观看| 又长又大又粗又硬3p免费视频| 成年免费a级毛片| 男女拍拍拍免费视频网站| 成av免费大片黄在线观看| 人妻在线日韩免费视频| 久久青草免费91观看| 久久永久免费人妻精品下载| 狼群影院在线观看免费观看直播| xxxxx免费视频|