2013-05-13 46 views
1

花了9個月的時間在一個使用CakePHP開發的小團隊中,我們開始看到越來越多的模型變爲3000,4000甚至5000行。 它並非代碼被重複,它只是我們添加了很多功能,只需要這麼多的代碼。CakePHP與大型快速增長的模型

我知道,與許多大型應用相比,這些文件可能不會被視爲非常大,我們當然會通過使用私有函數來減少可用呼叫的數量,但是如果我們想要開始打破其中一些爲了增加可管理性,文件有沒有應該遵循的特定技術?

是不是打破約定有模型沒有任何數據庫表? 有沒有更適合放置大塊代碼的地方?

預先感謝您的建議

回答

0

你可以嘗試尋找通過一切,並評估其相關性和功能是否是特定於模型,也可以通過它多機型上使用。如果在將數據傳遞迴控制器之前,您需要對數據進行大量處理以獲得合適的格式(例如字符串格式,日期格式),那麼可以將一些處理放入存儲通用函數的幫助器文件中。

0

我會質疑您的模型是否實際建模了業務對象或僅僅是一些功能或過程。

對於許多控制器中可用的可重複使用的代碼塊,我傾向於創建封裝該業務邏輯部分的components

如果這樣不能打破5000線巨獸的話,那麼我建議將它推入插件。

4

無法在不知道代碼的情況下正確回答該問題。查看你的代碼,重複同樣的工作流程嗎?你能抽象出它並使之成爲一種行爲嗎?

只要代碼真的屬於模型,擁有10k線條模型沒有任何問題。經驗法則:如果它操縱的東西進入模型。

但我不推薦使用很多私有方法,他們只是做測試(如果你做單元測試 - 你應該這樣做)更難,見http://sebastian-bergmann.de/archives/881-Testing-Your-Privates.html。你使用它們的方式在任何方式上都是錯誤的,恕我直言,可見性範圍並不被認爲是限制公共可調用方法的數量,但被認爲可以避免人們擴展你的代碼的關鍵部分。實際上應該沒有太多的私人方法,私人應該是私人的,這是有很好的理由的。