php設(shè)計(jì)模式介紹之編程慣用法
其他實(shí)踐
下面還有集中其他的實(shí)踐習(xí)慣值得提及到的,也值得加入到你自己的編程習(xí)慣里面的。
UML
統(tǒng)一建模語言(UML)是一種與具體編程語言無關(guān)的用來描述面對(duì)對(duì)象編程觀念的方法。關(guān)于UML的相關(guān)信息資料你可以從http://www.uml.org上找到。
UML涉及到很多方面,但對(duì)PHP程序員來說,其中最相關(guān)的兩方面是類圖和序列圖。
類圖描述了一個(gè)或者更多的類以及他們?cè)谀愕某绦蛑g的相互關(guān)系。(譯者注:最好能夠參考相關(guān)的UML教材,將有助于你的理解。)每個(gè)類都用一個(gè)盒子標(biāo)識(shí),每個(gè)盒子都分成三部分:第一部分是類名,第二步分列舉了類的屬性(變量),最后一部分列舉了類的方法。屬性和方法的可見度被設(shè)計(jì)為:+代表public(公開),—代表private(私有),#代表protected(受保護(hù)的)。
序列圖描述了為一個(gè)特定的任務(wù)或者事件,你對(duì)代碼中的對(duì)象之間的典型的交互活動(dòng)。一個(gè)序列圖主要傳達(dá)這樣的信息:誰,以什么樣的順序,在什么時(shí)候,調(diào)用不同的方法(由名字也可以看出:“序列圖”)。序列圖是對(duì)象集和開發(fā)人員之間交互溝通的非常有用工具。
在我自己的工程里,我使用這兩種典型的類圖來勾畫我們的設(shè)計(jì),但是很少能將他們格式化到項(xiàng)目文檔里面。對(duì)象之間的關(guān)系經(jīng)常隨著你對(duì)系統(tǒng)理解的深化和用戶需求的變化而改變,因此這些圖表很快就會(huì)過時(shí)。這也就是說“一張圖足足值一千個(gè)文字”。這些圖表對(duì)新開發(fā)人員理解系統(tǒng)是非常由幫助的,也能做為使用你軟件的開發(fā)人員的手冊(cè)。
資源控制
“及時(shí)的、經(jīng)常性的保存”是開發(fā)人員另外一個(gè)有用的格言。即使你是這個(gè)項(xiàng)目的唯一的開發(fā)人員,你也應(yīng)該維持所有的資源處于控制下。
網(wǎng)上可以獲取到很多關(guān)于資源控制的解決方法,其中兩個(gè)出色:CVS(http://www.cvshome.org)和Subversion(http://subversion.tigris.org)。CVS是一個(gè)非常流行的用于解決PHP和Apache項(xiàng)目的工具。同時(shí),Subversion也正在迅速的成為流行的二選一工具之一,因?yàn)樗朔薈VS的一些不足之處(特別是在原語命令和刪除/重命名文件夾或文件方面)。然而很少有項(xiàng)目安裝Subversion服務(wù)器。
在工作的時(shí)候,我采用CVS,但這本書的代碼都是使用Subversion來維護(hù)的。
資源代碼文檔
如果你瀏覽完了這本書的所有頁面,你可以會(huì)注意到一些明顯的格式化的注釋塊類似于:
/**
* funny multi-line comments
* @something what is this?
*/
它們被稱為“docblocks”(譯者注:文檔塊),是由程序,比如說phpDocumentor(http://phpdocu.sf.net),為你的PHP項(xiàng)目自動(dòng)生成的應(yīng)用程序接口(API)文檔。
Docblocks(文檔塊)是特定格式的多行注釋,以/**標(biāo)識(shí)開始,接下來的每行都以*為第一個(gè)字符,并以*/標(biāo)識(shí)注釋終止。在每行的前綴前面允許有空格。
@something 代表一個(gè)“標(biāo)簽”(tag),當(dāng)文檔需要轉(zhuǎn)化為解析格式時(shí),標(biāo)簽用來闡明一些必要的信息。比如說標(biāo)簽@private,使用在php4中,常用來標(biāo)識(shí)類的這個(gè)方法或者屬性時(shí)私有的,因?yàn)樵趐hp4中時(shí)沒有提供這種天然的能力的(譯者注:在php4中時(shí)無法說明一個(gè)變量或者方法是否私有的)。
資源代碼文檔比如說docblocks即是一個(gè)有用的參考資料,也是開源項(xiàng)目的一個(gè)好廣告。其中一個(gè)例子(我?guī)兔S護(hù)的)就是SimpleTestAPI文檔(http://simpletest.org)。
- php設(shè)計(jì)模式 Observer(觀察者模式)
- php設(shè)計(jì)模式 Singleton(單例模式)
- php設(shè)計(jì)模式 Command(命令模式)
- php設(shè)計(jì)模式 Composite (組合模式)
- php設(shè)計(jì)模式 Bridge (橋接模式)
- php設(shè)計(jì)模式 Chain Of Responsibility (職責(zé)鏈模式)
- php設(shè)計(jì)模式 Mediator (中介者模式)
- php設(shè)計(jì)模式 Prototype (原型模式)代碼
- php設(shè)計(jì)模式 Command(命令模式)
- 介紹php設(shè)計(jì)模式中的工廠模式
- php設(shè)計(jì)模式介紹之值對(duì)象模式
- php設(shè)計(jì)模式 Strategy(策略模式)
- php設(shè)計(jì)模式 FlyWeight (享元模式)
- php設(shè)計(jì)模式 State (狀態(tài)模式)
- php設(shè)計(jì)模式 Proxy (代理模式)
- php設(shè)計(jì)模式 Template (模板模式)
相關(guān)文章
echo(),print(),print_r()之間的區(qū)別?
echo(),print(),print_r()之間的區(qū)別?...2006-11-11Docker 安裝 PHP并與Nginx的部署實(shí)例講解
這篇文章主要介紹了Docker 安裝 PHP并與Nginx的部署實(shí)例講解,文中圖文操作步驟講解的很清楚,有感興趣的同學(xué)可以研究下2021-02-02php intval的測(cè)試代碼發(fā)現(xiàn)問題
測(cè)試php intval函數(shù)的代碼:2008-07-07PHP靜態(tài)方法和靜態(tài)屬性及常量屬性的區(qū)別與介紹
今天小編就為大家分享一篇關(guān)于PHP靜態(tài)方法和靜態(tài)屬性及常量屬性的區(qū)別與介紹,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-03-03PHP保存session到memcache服務(wù)器的方法
這篇文章主要介紹了PHP保存session到memcache服務(wù)器的方法,涉及PHP操作session及memcache的相關(guān)技巧,需要的朋友可以參考下2016-01-01php連接mysql數(shù)據(jù)庫最簡(jiǎn)單的實(shí)現(xiàn)方法
在本篇文章里小編給大家分享的是關(guān)于php怎樣連接mysql數(shù)據(jù)庫的相關(guān)實(shí)例內(nèi)容,有需要的朋友們參考下。2019-09-09