對Brandon Savage在PHP中的實用設計模式的評論將包括我對書籍的看法和印象,以及自我出版的方面。非常感謝Brandon給了我評論副本。
設計模式是關於常見問題的常見解決方案。鑰匙要點……它們是概念,而不是藍圖;想法,未完成設計。
…他們為原本困難的情況增添了清晰度。
- Brandon Savage,PHP中的實用設計模式
>如果我在Dreyfus模型術語中表達了重要的事情,他聲稱這本書將在那裡將新手變成一個勝任的級別的開發人員,而不會使他們遭受高級初學者的錯誤,而實際上,這種學習方法並非完全可能- 那是可能的- 只是人類知識獲取過程的工作原理。
>從TOC中可能不會過分明顯,因此本書中解釋的模式是:
>[…],例如,註冊表模式(本書中未涵蓋)…”。為什麼不呢?註冊表模式是一種流行的模式,即使不是當今不完全推薦的,也很容易解釋。 > 按模式進行模式,每個圖案都很好地解釋了,大多數隨後是代碼示例,證明了它們的潛在實現,儘管我確實對Cache的出廠模式示例有一個困惑。
在不同的緩存示例(APC和memcache)的示例中實現了該模式,並且兩者都通過工廠產生,該工廠都注入了任何服務需要緩存組件中。
> 另一方面,我絕對喜歡複合模式的解釋及其在非常有趣的樹示例上的演示- 作者構建了一棵複合樹,具有任意數量的嵌套節點級別,該級別非常適用於菜單構建,層次結構,以及更多- 我對裝飾圖案的解釋感到特別興奮。它是以一種非常平易近人的方式完成的,並且以良好的可用示例進行。尤其是這種模式是我一直很難在被問到時用藍色解釋的人,而且我還沒有找到比本書更好的細分。
>在本書的一個實例中,布蘭登說,模型是MVC應用程序中最重的舉昇機,其中包含所有業務邏輯和驗證代碼。這是我無法接受的陳述 - 我可以想到一個不正確的例子:拉拉維爾(Laravel)。隨著Laravel 5的出現並添加表格請求,這些模型將增長更輕。
>
“在整本書中,布蘭登在沒有鏈接到它的情況下(四個幫派)提到了高級概念(ORM,繼承,依賴注入)和第三方內容,假設讀者熟悉這一切。尤其是四個場合提到了四個團伙,並且至少可以與設計模式的鏈接使用 - 否則“新手”和“高級初學者”讀者只會在混亂中瀏覽一下句子。創建好的模型是任何開發人員鏟球最複雜的任務之一。 長期以來,Zend Framework文檔認為沒有Zend_model類,因為創建模型是應用程序開發過程的大部分。 要創建zend_model將是假設每個人都可以或想使用相同的模型結構,這是不可能的,這是我本章中未包含任何代碼的相同原因。 >這確實有意義,但以最簡單的方式體現了價值,網關和存儲對象,這對首次被引入域模型模式的人們非常有益。我認為,在本書中,域模型模式過於忽視,並且太過理論上了。
知識的詛咒
在其他情況下,段落結構的編寫方式遠遠超出了新手對中級用戶的理解水平:
>這是一個古老的問題,許多開發人員一直都在努力:如果我努力顛倒依賴關係而不是在課堂內創建對象,那麼我該如何創建在運行時需要的依賴項,可以一定要注入?
>這不是讀者所消耗的水平,他們需要這本書熟悉模式。完全了解這句話的讀者可能已經完全熟悉了書中的所有模式,從而使真正的目標受眾質疑。我相信這是由於薩維奇先生遭受了所謂的“知識詛咒”的困擾。
wikipedia將其定義為:
自我出版知識的詛咒是一種認知偏見,它導致更有信息的各方發現從較小的政黨的角度考慮問題非常困難。 在沒有正式訓練以傳達自己所知道的東西的專業人士中,知識的詛咒是一個非常普遍的事情,但也確實會隨著時間,經驗和反饋而失去影響。這也是為什麼我們在站點點鼓勵人們就帖子提供誠實的反饋,這就是為什麼我們試圖使每個新出版物都更簡單,更簡化的事情。沒有人對詛咒免疫 - 有些人受到它的影響更大。
>
的瘟疫
>近年來,自我出版似乎確實脫穎而出。那些不訴諸LeanPub的人像Brandon一樣完全獨奏。儘管這種方法確實確實加快了過程,並允許專家以令人震驚的快速速度將高質量的內容放在感興趣的各方的手中,但它還允許更多的錯誤,不良內容和錯別字可以通過。
不幸的是,困擾其他自我出版作家的大多數問題也困擾著這本書。缺乏經驗豐富的編輯,似乎沒有關於內容,形式甚至語法和句法準確性的指導,這是一種經常弄亂的語言的人。
>也就是說,如果您是一個中級開發人員,希望在人們周圍的人們談論他們談論的會議上陷入模式,並從那些尷尬的點點頭,但您不理解一件事情- 一定會得到這本書。如果您是新手,我不建議您購買這個 - 不僅是。首先掌握您的“ Echos”,了解作曲家是什麼,然後將您的牙齒沉入此。
實際上,如果您是高級初學者(初學者應該從非常基礎的開始),但我仍然對您感興趣,我會為您提供鼓掌,並提供以下資源以在您深入研究之前進行查看:
>在可學習的
上,面向對象的php元素>
>面向對象的php>裝飾器模式如何在php?
>
設計模式如何改善開發人員之間的溝通?>使用設計模式有任何缺點嗎? ,如果不正確使用,它們也可以引入複雜性。過度使用設計模式可能會導致不必要的抽象,並使代碼更難理解和維護。因此,只有在他們真正解決一個反復出現的問題時,才明智地使用它們。
以上是圖書評論:PHP中的實用設計模式的詳細內容。更多資訊請關注PHP中文網其他相關文章!