大中型
電商平臺建設網(wǎng)站的軟架構解決方案,網(wǎng)站建設公司認為框架的選擇現(xiàn)在的框架有很多選擇,比如PHP的Symfony、ZendFramework等,至于應該使用哪種并沒有唯一的答案,這要根據(jù)業(yè)務以及團隊成員對各個框架的了解程度而定。很多時候,即使沒有使用框架,仍然可以寫出好的程序來,據(jù)說Flickr就是用Pear和Smarty這樣的類庫寫出來的。所以,是否使用框架,使用什么樣的框架,這都不是最重要的,重要的是我們的編程思想里要有框架的意識。
大中型網(wǎng)站建設軟件架構邏輯的分層方案
網(wǎng)站達到一定的規(guī)模之后,前期代碼邏輯設計里的不足便會給維護和擴展帶來巨大的障礙,但我們的解決方式其實很簡單,那就是重構,將邏輯進行分層。通常,自上而下可以分為表現(xiàn)層、應用層、領域?qū)雍统志脤印1憩F(xiàn)層
表現(xiàn)層的表現(xiàn)形式不應該僅僅是模板,它的范圍還可以更廣一些,所有和表現(xiàn)有關的邏輯都應該納入表現(xiàn)層的范疇。比如說某處的字體要顯示為藍色、某處的開頭要有空格,這些都屬于表現(xiàn)層應解決的問題。通常,我們?nèi)菀追傅腻e誤就是把本屬于表現(xiàn)層的邏輯放到了其他層去完成。舉一個比較常見的例子:通常在列表頁顯示文章標題的時候,都會設定標題允許的最多字數(shù),一旦標題長度超過了這個限制,就會被截斷,并在后面顯示“…”,這就是最典型的表現(xiàn)層邏輯。但實際上,有很多程序員都是在非表現(xiàn)層代碼中完成數(shù)據(jù)的獲取和截斷,然后賦值給表現(xiàn)層模板。這樣的代碼最明顯的缺點就是,同一段數(shù)據(jù),在一個頁面可能要顯示前5個字,在另一個頁面可能要顯示前10個字,而一旦在程序中固化了這個數(shù)值,這就喪失了靈活性。正確的做法是用視圖程序來專門處理此類邏輯。
大中型網(wǎng)站建設軟件架構應用層解決方案
應用層的主要作用是定義用戶可以做什么,并把操作結果返回給表現(xiàn)層。至于如何做,這就不屬于其職責范圍(而是領域?qū)拥穆氊煼秶瑧脤訒ㄟ^委派把工作實現(xiàn)的具體方法交給領域?qū)犹幚?。領域?qū)幼钪苯拥慕忉尵褪前I域邏輯的層,是一個軟件的靈魂所在。首先,我們來看看什么叫領域邏輯。簡單來說,具有明確的領域概念的邏輯就是領域邏輯,比如在ATM機上取錢,過程大致是這樣的:插入銀行卡——輸入密碼——輸入取款金額——確定——拿錢——打印憑證——ATM吐出一張交易憑條。銀行卡在ATM機中完成錢從賬戶劃撥的過程就是一個領域邏輯,因為取錢在銀行中是一個明確的領域概念,而ATM機吐出一張交易憑條的過程則不是領域邏輯,而僅是一個應用邏輯,因為吐出交易憑條并不是銀行中一個明確的領域概念,只是一種技術手段。對應的,我們?nèi)″X后不要求打印交易憑條,而只要求發(fā)送一條提醒短信也是可能的。如果要求取款后必須吐出交易憑條,則吐出交易憑條的過程已經(jīng)和取款過程緊密結合,那么就可以把吐出交易憑條的過程看作是領域邏輯的一部分,一切都以問題的具體情況而定。
持久層用于把領域模型保存到數(shù)據(jù)庫中。因為程序代碼是面向?qū)ο箫L格的,而數(shù)據(jù)庫一般是關系型的數(shù)據(jù)庫,所以需要把領域模型碾平,才能保存到數(shù)據(jù)庫中??梢允褂玫姆椒ㄓ行袛?shù)據(jù)入口(RowDataGateway)或者表數(shù)據(jù)入口(TableDataGateway),或者把領域?qū)雍统志脤雍隙橐蛔兂苫顒佑涗洠ˋctiveRecord)的方式。好了,
深圳網(wǎng)站建設公司本文關于“大中型電商網(wǎng)站建設:網(wǎng)站的軟架構解決方案”知識就分享到這里,謝謝關注,博納網(wǎng)絡編輯整理。