您何時/在哪裏決定將大型Visual Studio項目拆分爲更小的多個項目?如果它可以重用?當項目太大? (但有多大太大?)你什麼時候決定把大項目分成更小的項目?
和數據庫表中的類似功能,當你做拆分項目,你,
組
組
其他..
您何時/在哪裏決定將大型Visual Studio項目拆分爲更小的多個項目?如果它可以重用?當項目太大? (但有多大太大?)你什麼時候決定把大項目分成更小的項目?
和數據庫表中的類似功能,當你做拆分項目,你,
組
組
其他..
優點:
優點幾個項目:
優點
缺點。這導致了複雜的構建腳本。
我將代碼移動到新項目,如果它具有其他項目也可以使用的一般功能(理論上)。如果項目很大,因爲它代表了一個複雜的問題,那麼命名空間提供了一個很好的方式來在代碼中引入順序。在這裏,您可以爲每個SQL表格等引入(子)名稱空間等。
項目應該是cohesive。邏輯應該是相關的,並且實現類似的目標
這個答案將取決於您支持的產品的大小。一般來說,我們按照領域和邏輯組織我們的項目。而且我們將進一步劃分這些,你分得越多,你必須組織的越多,否則你將會遇到可怕的遞歸依賴問題。
當我選擇分手項目時,它會變得太大或者兩個區域變得太相似。
當複雜度上升時,我不會按表分割,我通常會分割功能。
可重用性是縮短代碼行的另一好時機,也是一個新項目。但要小心你引入了多少「實用程序」庫,因爲它們確實會影響可讀性/可理解性。
我不認爲在沙子上有一條線說,如果你擊中3k SLOC,你有太多。這一切都是上下文的。
我總是有幾個項目(因此是一個解決方案),而不是一個項目與我的所有來源。
在某些情況下,它是不可避免的,因爲您正在使用和開源庫,並希望能夠進行調試。但更務實的是,我通常會讓我的應用程序通過插件提供功能。這允許我在運行時改變行爲或提供用戶可選行爲。在非插件的情況下,它允許您更新程序的一部分而不更新所有內容。還有一些情況下,您可以明顯地提供主體,並且只在需要時才下載模塊/組件。
另一個原因是您可以創建更小的測試應用程序來運行程序集,而不是構建一個非常大的解決方案,並且可能要求用戶在到達要測試的部分之前執行幾個(並且不相關的)GUI操作。這不僅僅是一個測試問題 - 也許你的組織中只有那些不太熟悉的用戶,他們只想提出與他們有關的位。
當項目的總體目的保持不變時,但類的數量變得很大時,我傾向於創建文件夾和名稱空間,以便在項目中更好地組合功能。耦合到彼此的類傾向於放在相同的文件夾/名稱空間中,這樣如果我需要理解給定的類,相關的類就在解決方案資源管理器中。如果我意識到某個特定功能在目的上有很大不同,或者現有項目之間存在共同的依賴關係,我通常只創建新項目。
我通常會收到一些相對較小的框架項目,這些框架項目定義了其他項目之間鬆散耦合的接口,以及針對不同類型的具體功能的較大項目。這總是對UI至少一個項目,邏輯和數據的一個項目(通常分爲兩個項目,如果該數據層成爲在自己的權利非常大。),許多項目的
好吧,1個用於UI,1個用於邏輯,1個用於數據,就像將其分成3層架構一樣。 如果它真的很大,那麼只有一個數據項目,並且在每個其他項目之間共享,這是正確的嗎?但是如果數據項目發生了變化,那麼每個其他使用它的項目都會受到影響,擁有1個UI和許多邏輯/數據項目會不會更好? – 001 2010-04-17 14:34:15
這取決於數據是否真的在所有其他項目之間共享。如果你有真正獨立的邏輯/數據單元你想獨立版本,那麼把它們分開是有意義的。儘管減少項目規模並不是主要標準,這是你想要使用的版本和版本的一個問題。 – 2010-04-17 14:37:26
你在說什麼解決方案或項目? – Nix 2010-04-17 13:37:42