don*_*ald 13 architecture ruby-on-rails heroku ruby-on-rails-3
我第一次创建了一个非常复杂的Rails应用程序.
我想知道按文件夹组织该应用程序的最佳方法是什么.到现在为止,我会在一个应用程序(所有模型,控制器,etC)下做所有事情但是阅读一些开源代码我意识到他们把所有东西放在不同的应用程序下.
例如Spree Commerce.他们有一个通用文件夹,里面有不同的应用程序(API,核心,管理员等).这是怎么做的,这是最好的方法吗?
我想指出最好的方法(书,博客,任何东西),这样我就能理解如何构建我的应用程序以便将来维护.
谢谢
另外,我认为你的问题的标题有点令人困惑.Rails通过使用约定优于配置来定义"如何组织Rails应用程序".我认为你的问题是关于如何构建你的应用程序而不是任何特定于Rails的东西.也许调整标题?
除此之外,如果不知道关于你的项目的更多细节,这是一个棘手的问题,但我会试一试.
所有应用程序应该从简单开始,如果你相信(就像我一样)你应该从构建可能有效的最简单的东西开始.鉴于此,既然您正在使用Rails,那么最简单的方法就是将您的应用程序构建为一个vanilla Rails 3应用程序.这可能(我说'可能'因为我不知道有关该应用程序的任何细节)允许您快速获得应用程序的测试版并运行,而不必担心在项目开发的这个阶段的复杂性不是问题.
如果你需要创建一个基于XML或JSON的API,那么Rails 使用标准框架可以很容易地实现这一点,这样你就可以花更多的时间来考虑API设计,而不是如何编写代码,而API的设计就是最重要的是要在第一时间做到正确.
同样,您的管理站点可以只是位于不同命名空间中的同一个应用程序的一部分.如果你以后发现你想要它作为一个单独的应用程序的行,你可以这样做(也许你可以使用你设计的那个很棒的API来促进这个),但是为什么要用这个增加的复杂性来设计它(因此延长了开发时间) )首先,如果你没有充分的理由这样做?
一旦您的应用程序启动并运行并且人们开始使用它,您就会开始了解瓶颈所在的位置以及可以改进设计的位置.在此阶段,如果有需要,您可以开始将应用程序的各个部分移动到可扩展的解决方案,例如将API作为独立服务运行,引入缓存,更改数据存储以及其他改进和优化.
即使你的应用程序非常成功(我希望它是!)然后重新设计你的应用程序惠斯特继续运行现有的服务仍然是完全可能的,正如Twitter已经证明的那样.只要坚持Knuth的陈述,你就会好起来的.
关于阅读材料,这是一个棘手的问题.对我来说,很多XP和敏捷开发经典教会了我很多关于如何处理程序和应用程序设计的知识.我还要查看这个StackOverflow主题以获取图书灵感.
祝好运!
Spree使用Rails的Railties(Rails :: Engines).Rails 3中引入了铁轨,使其更加模块化,易于扩展.Rails 3本身是Railties(ActiveSupport,ActiveModel,ActiveRecord等)的集合.
如果你正在开发一个复杂的应用程序,我建议花一些时间来规划其架构.在没有任何初步规划的情况下设计复杂的应用程序肯定会导致维护噩梦.它还为新团队成员引入了巨大的学习曲线,减慢了新功能的引入速度,当然还有挫败感.
无论如何,不要过度优化,但不要忘记根据您的需求设计您的架构.
| 归档时间: |
|
| 查看次数: |
1600 次 |
| 最近记录: |