无码视频在线观看,99人妻,国产午夜视频,久久久久国产一级毛片高清版新婚

  • 始創(chuàng)于2000年 股票代碼:831685
    咨詢熱線:0371-60135900 注冊有禮 登錄
    • 掛牌上市企業(yè)
    • 60秒人工響應(yīng)
    • 99.99%連通率
    • 7*24h人工
    • 故障100倍補(bǔ)償
    全部產(chǎn)品
    您的位置: 網(wǎng)站首頁 > 幫助中心>文章內(nèi)容

    網(wǎng)站的軟架構(gòu)

    發(fā)布時(shí)間:  2012/9/16 20:36:47
     現(xiàn)在的PHP框架有很多選擇,比如:CakePHP,Symfony,Zend Framework等等,至于應(yīng)該使用哪一個(gè)并沒有唯一的答案,要根據(jù)Team里團(tuán)隊(duì)成員對各個(gè)框架的了解程度而定。很多時(shí)候,即使沒有使用框架,一樣能 寫出好的程序來,比如Flickr據(jù)說就是用Pear+Smarty這樣的類庫寫出來的,所以,是否用框架,用什么框架,一般不是最重要的,重要的是我們 的編程思想里要有框架的意識。

    邏輯的分層

      網(wǎng)站規(guī)模到了一定的程度之后,代碼里各種邏輯糾纏在一起,會給維護(hù)和擴(kuò)展帶來巨大的障礙,這時(shí)我們的解決方式其實(shí)很簡單,那就是重構(gòu),將邏輯進(jìn)行分層。通常,自上而下可以分為表現(xiàn)層,應(yīng)用層,領(lǐng)域?qū),持久層?

    表現(xiàn)層

      所謂表現(xiàn)層,并不僅僅就指模板,它的范圍要更廣一些,所有和表現(xiàn)相關(guān)的邏輯都應(yīng)該被納入表現(xiàn)層的范疇。比如說某處的字體要顯示為紅色,某處的開頭要 空兩格,這些都屬于表現(xiàn)層。很多時(shí)候,我們?nèi)菀追傅腻e(cuò)誤就是把本屬于表現(xiàn)層的邏輯放到了其他層面去完成,這里說一個(gè)很常見的例子:我們在列表頁顯示文章標(biāo) 題的時(shí)候,都會設(shè)定一個(gè)最大字?jǐn)?shù),一旦標(biāo)題長度超過了這個(gè)限制,就截?cái)啵⒃诤竺骘@示“..”,這就是最典型的表現(xiàn)層邏輯,但是實(shí)際情況,有很多程序員都 是在非表現(xiàn)層代碼里完成數(shù)據(jù)的獲取和截?cái)啵缓筚x值給表現(xiàn)層模板,這樣的代碼最直接的缺點(diǎn)就是同樣一段數(shù)據(jù),在這個(gè)頁面我可能想顯示前10個(gè)字,再另一個(gè) 頁面我可能想顯示前15個(gè)字,而一旦我們在程序里固化了這個(gè)字?jǐn)?shù),也就喪失了可移植性。正確的做法是應(yīng)該做一個(gè)視圖助手之類的程序來專門處理此類邏輯,比 如說:Smarty里的truncate就屬于這樣的視圖助手(不過它那個(gè)實(shí)現(xiàn)不適合中文)。

    應(yīng)用層

      所謂應(yīng)用層,它的主要作用是定義用戶可以做什么,并把操作結(jié)果反饋給表現(xiàn)層。至于如何做,通常不是它的職責(zé)范圍(而是領(lǐng)域?qū)拥穆氊?zé)范圍),它會通過 委派把如何做的工作交給領(lǐng)域?qū)尤ヌ幚。在使用MVC架構(gòu)的網(wǎng)站中,我們可以看到類似下面這樣的URL: domain/articles/view/123,其內(nèi)部編碼實(shí)現(xiàn),一般就是一個(gè)Articles控制器類,里面有一個(gè)view方法,這就是一 個(gè)典型的應(yīng)用層操作,因?yàn)樗x了用戶可以做一個(gè)查看的動作。在MVC架構(gòu)中,有一個(gè)準(zhǔn)則是這么說的:Rich Model Is Good。言外之意,就是Controller要保持“瘦”一些比較好,進(jìn)而說明應(yīng)用層要盡量簡單,不要包括涉及領(lǐng)域內(nèi)容的邏輯。

    領(lǐng)域?qū)?/span>

      所謂領(lǐng)域?qū),最直接的解釋就是包含領(lǐng)域邏輯的層。它是一個(gè)軟件的靈魂所在。先來看看什么叫領(lǐng)域邏輯,簡單的說,具有明確的領(lǐng)域概念的邏輯就是領(lǐng)域邏輯,比如我們在ATM機(jī)上取錢,過程大致是這樣的:插入銀聯(lián)卡,輸入密碼,輸入取款金額,確定,拿錢,然后ATM吐出一個(gè)交易憑條。在這個(gè)過程中,銀聯(lián)卡 在ATM機(jī)器里完成錢從帳戶上劃撥的過程就是一個(gè)領(lǐng)域邏輯,因?yàn)槿″X在銀行中是一個(gè)明確的領(lǐng)域概念,而ATM機(jī)吐出一個(gè)交易憑條則不是領(lǐng)域邏輯,而僅是一 個(gè)應(yīng)用邏輯,因?yàn)橥鲁鼋灰讘{條并不是銀行中一個(gè)明確的領(lǐng)域概念,只是一種技術(shù)手段,對應(yīng)的,我們?nèi)″X后不吐交易憑條,而發(fā)送一條提醒短信也是可能的,但并 不是一定如此,如果在實(shí)際情況中,我們要求取款后必須吐出交易憑條,也就是說吐出交易憑條已經(jīng)和取款緊密結(jié)合,那么你也可以把吐出交易憑條看作是領(lǐng)域邏輯 的一部分,一切都以問題的具體情況而定。在Eric那本經(jīng)典的領(lǐng)域驅(qū)動設(shè)計(jì)中,把領(lǐng)域?qū)臃譃榱宋宸N基本元素:實(shí)體,值對象,服務(wù),工廠,倉儲。具體可以參 閱書中的介紹。領(lǐng)域?qū)幼畛7傅腻e(cuò)誤就是把本應(yīng)屬于領(lǐng)域?qū)拥倪壿嬓孤兜搅似渌麑哟,比如說在一個(gè)CMS系統(tǒng),對熱門文章的定義是這樣的:每天被瀏覽的次數(shù)多 于1000次,被評論的次數(shù)多于100次,這樣的文章就是熱門文章。對于一個(gè)CMS來說,熱門文章這個(gè)詞無疑是一個(gè)重要的領(lǐng)域概念,那么我們?nèi)绾螌?shí)現(xiàn)這個(gè) 邏輯的設(shè)計(jì)的?你可能會給出類似下面的代碼:“SELECT ... FROM ... WHERE 瀏覽 > 1000 AND 評論 > 100”,沒錯(cuò),這是最簡單的實(shí)現(xiàn)方式,但是這里需要注意的是“每天被瀏覽的次數(shù)多于1000次,被評論的次數(shù)多于100次”這個(gè)重要的領(lǐng)域邏輯被隱藏到 了SQL語句中,SQL語句顯然不屬于領(lǐng)域?qū)拥姆懂牐簿褪钦f,我們的領(lǐng)域邏輯泄露了。

    持久層

      所謂持久層,就是指把我們的領(lǐng)域模型保存到數(shù)據(jù)庫中。因?yàn)槲覀兊某绦虼a是面向?qū)ο?/a>風(fēng)格的,而數(shù)據(jù)庫一般是關(guān)系型的數(shù)據(jù)庫,所以我們需要把領(lǐng)域模型 碾平,才能保存到數(shù)據(jù)庫中,但是在PHP里,直到目前還沒有非常好的ORM出現(xiàn),所以這方面的解決方案不是特別多,參考Martin的企業(yè)應(yīng)用架構(gòu)模式一 書,大致可以使用的方法有行數(shù)據(jù)入口(Row Data Gateway)或者表數(shù)據(jù)入口(Table Data Gateway),或者把領(lǐng)域?qū)雍统志脤雍隙䴙橐蛔兂苫顒佑涗洠ˋctive Record)的方式。

    億恩小路QQ572931335電話15890397512租用與托管有興趣請聯(lián)系我:億恩-小路1339268817  電話:15890397512

    本文出自:億恩科技【mszdt.com】

    服務(wù)器租用/服務(wù)器托管中國五強(qiáng)!虛擬主機(jī)域名注冊頂級提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]

  • 您可能在找
  • 億恩北京公司:
  • 經(jīng)營性ICP/ISP證:京B2-20150015
  • 億恩鄭州公司:
  • 經(jīng)營性ICP/ISP/IDC證:豫B1.B2-20060070
  • 億恩南昌公司:
  • 經(jīng)營性ICP/ISP證:贛B2-20080012
  • 服務(wù)器/云主機(jī) 24小時(shí)售后服務(wù)電話:0371-60135900
  • 虛擬主機(jī)/智能建站 24小時(shí)售后服務(wù)電話:0371-60135900
  • 專注服務(wù)器托管17年
    掃掃關(guān)注-微信公眾號
    0371-60135900
    Copyright© 1999-2019 ENKJ All Rights Reserved 億恩科技 版權(quán)所有  地址:鄭州市高新區(qū)翠竹街1號總部企業(yè)基地億恩大廈  法律顧問:河南亞太人律師事務(wù)所郝建鋒、杜慧月律師   京公網(wǎng)安備41019702002023號
      1
     
     
     
     

    0371-60135900
    7*24小時(shí)客服服務(wù)熱線