|
前言:
本系列文章主要講述一個(gè)實(shí)實(shí)在在的項(xiàng)目開發(fā)的過程,主要包含:提出問題,解決問題,架構(gòu)設(shè)計(jì)和各個(gè)邏輯層的實(shí)現(xiàn)以及新問題的出現(xiàn)和代碼的重構(gòu)。本系列文章以故事的形式展開,而且文章列舉的很多項(xiàng)目的名稱,大家也不用太關(guān)心,很多都是虛擬的。
本篇主要講述項(xiàng)目的一些背景
新人Richard被分配到了一個(gè)企業(yè)自動(dòng)化信息管理項(xiàng)目組--Automation Information Management Project(后面簡(jiǎn)稱AIM),當(dāng)Richard進(jìn)入項(xiàng)目組的時(shí)候,這個(gè)項(xiàng)目已經(jīng)開始了,項(xiàng)目的架構(gòu)也已經(jīng)在兩周之前構(gòu)建好了--SOA架構(gòu),而且使用的主要技術(shù)也敲定了:WCF, Linq.
注:因?yàn)轫?xiàng)目是首次采用新技術(shù)(因?yàn)橐郧皼]有使用WCF,Linq,所以被稱為新技術(shù)),項(xiàng)目就這樣開始進(jìn)行了。
半年之后問題就開始出現(xiàn)了(其實(shí)問題就一開始就出現(xiàn)了,只是大家還認(rèn)為問題不大):因?yàn)楫?dāng)初在設(shè)計(jì)的時(shí)候,項(xiàng)目的架構(gòu)是由項(xiàng)目組的其他兩個(gè)人設(shè)計(jì)的,整個(gè)項(xiàng)目開發(fā)基本上就沒有采用面向?qū)ο蟮乃枷雭黹_發(fā),而且雖然在架構(gòu)設(shè)計(jì)上分了:數(shù)據(jù)層,業(yè)務(wù)層,服務(wù)層,和UI層,但是各層之前是緊緊的耦合,可以說是牽一發(fā)而動(dòng)全身:如數(shù)據(jù)訪問層稍微一改,業(yè)務(wù)層就跟著動(dòng),然后改變一層層的開始波及。
大家都開始覺得這樣很累,但是項(xiàng)目已經(jīng)做到這個(gè)階段了,不可能重來。每次新需求一來,項(xiàng)目的的改動(dòng)可以說是天翻地覆。而且當(dāng)初設(shè)計(jì)架構(gòu)的那位仁兄也就項(xiàng)目一開始的一個(gè)月后就走了。
下面的圖就展示項(xiàng)目中的架構(gòu)設(shè)計(jì):
咋一看起來還是不錯(cuò)的,一般的架構(gòu)都是這樣設(shè)計(jì)的。下面就開始講述它們之間的一些調(diào)用關(guān)系,看看有什么問題:
數(shù)據(jù)訪問層:
public class EmployeeDAL
{
public List<Employee> GetAllEmplyees()
{
//...
}
}
NET技術(shù):.NET分布式架構(gòu)開發(fā)實(shí)戰(zhàn)之一 故事起源,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。