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