簡體   English   中英

Ruby On Rails服務容器

[英]Ruby On Rails Service Container

您好,我是Ruby的新手,我正在Ruby On Rails中開始一個新項目。 我有一個PHP背景,並習慣使用像Symfony2這樣的更大的框架。

我的問題是Ruby on Rails是否使用任何類型的Service Container來存儲我的所有自定義對象並管理我的依賴項? 從我看過的教程中沒有提到這樣的原則。

這被認為是ROR的一個不好的做法,因為ruby的OOP有何不同?

我是否需要每個物體並在需要時制作新樣品?

Ruby不需要依賴注入嗎? 打電話給新人

。新

在每個對象上需要一個紅寶石的良好實踐?

我認為不要混淆Ruby(語言)和Ruby on Rails(框架)很重要 - 我不是說你這樣做,只是忍受我。

Ruby在編寫代碼的方式和常見問題的解決方案方面有一些“最佳實踐”,但您可以自由使用您選擇的任何設計模式或架構樣式。 你可以說這不是自以為是。

但是,Rails對如何使用它有很強烈的意見。 這里有關於常見問題及其解決方案,代碼格式,文件放置等的最佳實踐,但與Ruby不同,如果您選擇的設計模式或架構風格不是Rails的“標准”,那么您將面臨一場艱苦的戰斗。

在許多情況下,Rails的易於組合的腳手架很棒,但在其他情況下(例如需要擴展的項目)則不是很多。 即使你必須與Rails的結構作斗爭,它仍然有其好處 - 資產管道就是其中之一。 如果你想添加依賴注入,你可能最好不要使用Domain Driven方法,並將數據從“智能”后端發送到'啞'的Rails-frontend。

如果您詢問依賴注入,一般意見是Ruby不必要的。 您可以查看此問題以獲取更多信息。

也許你可以看一下http://www.poodr.com/ Sandi Metz實用面向對象的Ruby設計(POODR)描述了Ruby中的SOLID原則,而D是針對依賴倒置原則,它有一些關於ruby如何處理的提示依賴。 總而言之。

經過長時間的思考和dax -s偉大的建議我記得叔叔bob曾經說過一個好的應用程序是以一種方式設計的,我們可以刪除使應用程序邏輯將它放入另一個框架的代碼,它應該完美地工作。 所以我決定保存我的應用程序邏輯的所有代碼都將在Rails lib文件夾中,我將使用服務容器。

經過長時間的搜索,我發現Jim Weirich制作了一個服務容器,因為他是Ruby中的一個普通名字,所以我更加自信地采用這種方法就是git-hub庫https://github.com / jimweirich / dim

它有一些關於如何使用它的非常簡單和好的例子。

我決定在我的lib文件夾中,我將為我的應用程序中的每個模塊創建一個文件夾,並在那里創建一個config文件夾並添加一個services.rb文件,我在其中注冊每個新服務。

謝謝你的所有好建議!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM