2012-04-08 53 views
3

據Bob叔叔/ source /,每個用戶故事都應該分開「集成者/控制器」。它聽起來不錯,因爲課程很小,只做一件事。應用架構在實踐中 - Bob叔叔

但在現實世界中,我沒有看到以這種方式組織的建築。總是如果有例如AccountController它包含與帳戶相關的所有方法。在叔叔鮑勃「方式」這應該被設計就像這樣:

+Controllers 
---+Account 
------+DepositMoneyIntoAccount 
------+WithdrawalMoneyFromAccount 
------+TransferMoneyToAccount 

或者我可能會誤解鮑勃叔叔?但是,如果沒有,讓你們中的某個人看到以這種外觀組織的建築?它在現實世界中的實際?

Regards

+0

你有參考Bob叔叔的話嗎? – darlinton 2012-04-08 22:09:21

+0

你也可以檢查這個帖子的澄清和改善你的問題。 HTTP://計算器。com/questions/1866794/naming-classes-how-to-avoid-calling-everything-a-whatevermanager – darlinton 2012-04-08 22:11:35

+2

@darlinton,一定要檢查一下http://www.youtube.com/watch?feature=player_detailpage&v=WpkDN78P884#t = 1672s – 2012-04-09 07:04:13

回答

2

它當然是實用的,並且是適用於大型和複雜系統的優秀工具。我將頂層目錄中的實體/邊界/交互器(控制器的instaead以避免與流行的Web界面混淆)以及子目錄(例如z_rails,z_sinatra等)中的整個通信系統。例如,藉助Rack,使用各種通信框架以最少的額外工作交付Web解決方案就非常簡單。例如,請查看github.com/wizardwerdna/avdi和github.com/wizardwerdna/bobbit,瞭解這些方面的初步實驗。

1

你說得對,那是他希望項目看起來像的樣子。

記住他的演講「Architecture: The lost years」,架構應該描述它的意圖(還有什麼比用例更好?)。

剛開始的時候我也有點困惑,但是如果我們想到BDD,哲學就要確保我們製作可理解的軟件。

我看了幾次這個視頻,我可能會再說一遍,因爲這是一個新概念,需要學習。 對於我來說,最重要的部分和更具挑戰性的是爲其他模塊創建插件,他談到需要的請求和響應模型以保持周圍的層(如前端和數據庫)完全獨立於軟件。

這樣做的最終目標是我們的軟件可以輕鬆替換任何插件,如數據庫或用戶界面。

我想再提一點,我想你可能對此感興趣。 最後在this interview,他透露他的下一本書將是我們現在討論的這種新方法。

更新

我在你所談論的調用封裝,名稱,如邊界,交互件註釋中看到...

這是完全正常,在他的書中clean code一些開發商使用的在命名類或包的場合名稱模式的名稱......這是正確的,因爲它是開發人員應該熟悉的技術術語。用同樣的方法,你知道一個類是一個建造者或工廠,通過閱讀它的名字或包,你可以知道什麼是交互者或邊界。 根據乾淨的代碼,這是正確的。