ruby-on-rails – 如何组织Rails应用程序

我第一次创建一个相当复杂的Rails应用程序.

我想知道按文件夹组织该应用程序的最佳方法是什么.到目前为止,我会在一个应用程序(所有的型号,控制器,etC)下做一切,但阅读一些开源代码,我意识到他们把所有内容都放在不同的应用程序之下.

例如Spree Commerce.他们有一个一般的文件夹,里面有不同的应用程序(API,核心,管理员等).这样做是最好的办法吗?

我想指出最好的方法(一本书,博客,任何东西),所以我可以理解我如何构建我的应用程序以备将来维护.

谢谢

最佳答案
除此之外,我认为你的问题的标题有点混乱. Rails通过使用约定配置,定义了“如何组织Rails应用程序”.我认为你的问题是如何构建您的应用程序,而不是任何Rails特定的.也许调整标题?

除此之外,不知道有关您的项目的更多细节,这是一个棘手的问题来回答,但我会放弃.

所有应用程序应该从简单的开始,如果你相信(像我这样做),你应该从构建the simplest thing that could possibly work开始.由于你使用的是Rails,所以最简单的是把你的应用程序作为一个香草Rails 3申请.这可能(我说’可能’,因为我不知道有关该应用程序的任何细节)允许您获得一个测试版本的应用程序,运行相当迅速,而不用担心复杂性,在这个阶段,您的项目的开发不是问题.

如果您需要创建一个基于XML或JSON的API,那么Rails使这个really easy使用标准框架,这将允许您花更多的时间思考API设计,而不是如何编写API,而且这是最为重要的API设计重要的一件事就是得到正确的.

同样,您的管理员网站可以在同一个应用程序的一部分在不同的命名空间.如果你稍后发现你想要它作为一个单独的应用程序,你可以这样做(也许你可以使用你设计的令人敬畏的API来促进这一点),但是为什么要用这种增加的复杂性来设计它(因此扩展开发时间)如果你没有这样做的理由,首先呢?

一旦您的应用程序启动并运行,并且人们开始使用它,您将开始了解瓶颈在哪里以及可以改进设计的位置.在这个阶段,如果有需要,您可以开始将应用程序部分移动到可扩展的解决方案,例如运行您的API作为独立服务,引入缓存,更改数据存储以及其他改进和优化.

即使你的应用程序是非常成功的(我希望它是!),那么重新架构您的应用程序持续运行现有的服务仍然是完全可能的,因为Twitter已经证明.只要坚持Knuth’s statement,你会没事的.

关于阅读材料,这是一个棘手的问题.对我来说,很多XP和敏捷开发经典教我如何处理程序和应用程序设计的巨大数量.我也会检查this StackOverflow topic的书灵感.

祝你好运!

转载注明原文:ruby-on-rails – 如何组织Rails应用程序 - 代码日志