我有一個php程序,有大約50-55個代碼文件。具有最大代碼量的文件大約有1200行代碼(這包括空格,製表符和多行換行符......),其餘代碼文件比這個小。與mvc/oop相比,spaghetti php code的性能和可擴展性?
在幾乎每個文件中的應用程序代碼是混合的HTML,SQL和PHP(你稱之爲意大利麪條),除了幾個文件是純PHP包含文件....例如包含功能的文件在許多其他地方需要。
我一直在考慮將此應用程序重構爲mvc類型的體系結構是否是一個好主意。
現在我知道一個mvc應用程序提供了很多優點,例如便於維護,重用和易於進一步開發等,但是可伸縮性和性能如何 - 特別是在這種情況下?我認爲這是一個小應用程序(我相信,你認爲它足夠小嗎?),我不會想象在維護或添加更多功能(最大)時很難,這可能意味着現有文件中的一些增加,或者可能會增加最多5-10個新文件。
所以我想我不應該爲了維護而轉換爲mvc。
據我瞭解,你可能會把每個組件的mvc放在一個單獨的服務器上來傳播負載,以便有一個不同的服務器提供html,數據庫和邏輯服務,並進一步做其他優化/緩存以及做一個很好的是mvc應用程序的縮放和執行。
我認爲即使在一個小型的意大利麪條應用程序中,我們也不能爲html,數據庫等設置不同的服務器,我們可以通過在Web服務器,數據庫服務器等前設置負載均衡器來輕鬆擴展而不會降低性能。到一個服務器是不夠的)
更重要的是,它自己的意大利麪代碼應該比mvc執行得更好,因爲它沒有任何開銷,如需要包括文件或文件夾下的文件或函數調用屬於mvc的不同組件。
因此,考慮到所有這些事情,您是否真的認爲將相對較小的意大利麪應用程序重構爲mvc以實現可伸縮性和性能很有用?
請不要告訴我重構將在未來有用(我知道這將有助於並考慮我們是否真的需要添加更多的代碼到現有的代碼庫),但請給我一個明確的答案
1)我真的需要將此應用程序轉換爲mvc體系結構以獲得可伸縮性和性能嗎?
2)像這樣的一個意大利麪條應用程序可以擴展和執行一天至少100萬的請求,其中一半發生在某些高峯時間?
通用框架實際實現的稱爲「PMVC」,它不允許將組件分佈到不同的服務器上。你還應該首先將代碼從意大利麪(全局範圍)代碼轉換爲適當的程序結構(這是不同的)。在嘗試在它上面放置一個假設模式之前,分解輸出和處理邏輯中的SQL處理。 – mario 2010-11-25 22:02:23