我是.NET开发人员,本周末我才有机会与Ruby on Rails一起玩。
在.NET中,我们通过创建单独的类库项目来分离应用程序的各个层。从设计模式的角度来看,我们是否也必须在Rails中做到这一点,还是仅仅是其中包含所有内容的整个项目?
我是.NET开发人员,本周末我才有机会与Ruby on Rails一起玩。
在.NET中,我们通过创建单独的类库项目来分离应用程序的各个层。从设计模式的角度来看,我们是否也必须在Rails中做到这一点,还是仅仅是其中包含所有内容的整个项目?
Answers:
您会发现Rails应用程序以单个存储库启动。随着成功的发展,成功的公司(Twitter,Square等许多公司)会分成多个代码库。这些额外的代码库可以是守护程序,服务,gem,Rails引擎或其他。
直到证明有必要,才将其重构为多个项目,因为YAGNI。在第1天将您的项目分叉会降低原型开发时间,并且原型开发速度是Ruby和Rails的主要优势。您需要牢记,在Ruby中创建类或创建类几乎不需要花任何费用,而将一个精心设计的类分解也不需要任何花费。你的纯Ruby代码将生活,大多数情况下/app/
(app/models
,app/views
app/controllers
,app/helpers
)和/lib/
。您的静态资产,分层的JS / Coffee include和CSS / Sass / etc包含在中/app/assets
。
要理解为什么分解Ruby类如此容易,就需要对鸭子的类型进行一些阅读,并且要理解,Ruby的接口并不像在动态性较差的环境中那样坚强。
以下是一些您可能会感兴趣的链接:
鸭子打字的简要说明(Yehuda Katz博客文章)
关于如何以及为什么设计易于阅读,理解和更改的OO程序的不可估量的Sandi Metz(2小时的Ruby Rogues播客)(她的绝妙书)
Rails的创建者David Heinemeier Hansson讨论了资产管道及其所改善的代码布局问题(RailsConf主题视频)
制作自己的宝石(Rubygems.org HOWTO)
祝您项目顺利!
在Ruby中,库称为gems,请参见http://www.ruby-lang.org/en/libraries/,其使用方式与.NET类库相同。