2012-09-07 237 views
0

我在一些我无法找到的手册/教程中很有趣。Ruby Web应用程序生命周期

什么是Ruby Web应用程序的生命周期? Ruby是一种脚本语言。与PHP相同。但据我所知,Ruby在运行之前已经预编译。所以问题是:

  • 预编译完成后?
  • 预编译如何适用于不同的文件和类?
  • 什么是预编译代码的生命周期?
  • 如何将路由从apache/nginx传递给ruby应用程序(示例可以基于sinatra)?
  • 也许有一个关于如何使自己的简单Web框架,或没有任何Web框架,但纯红宝石的网页的教程。
  • 会话对象位于何处?

每个手册包含有关如何使用一些框架唯一信息,但是它是如何工作的内部,没有什么是描述这一点。

谢谢。

+1

问题可能更好地张贴在程序员.S – user1477388

+0

这个问题不适合StackOverflow。你在问一个开放式的问题,这实际上是一个讨论,这是不鼓励的。有关更多信息,请参阅[FAQ](http://stackoverflow.com/faq#questions)。 –

回答

2

就像PHP一样,Ruby被“解释”,但这也是一种编译形式。您可能会感到困惑的是,Ruby on Rails和Sinatra与大多数基于Ruby的框架一样,都是作为持久性进程托管的。虽然加速器和Web服务器模块确实可以显着减少此过程的开销,但PHP往往会针对每个请求进行解释。

我不会建议尝试制作自己的框架,因为这是一项不平凡的任务,甚至作为一项学术活动也是有限的价值。最好研究像西纳特拉这样的东西,看看它是如何实施的,以便学习更多的东西,而不是从头开始。

Rails有很好的文档。如果您对框架组件的某个特定问题无法通过简单阅读通常组织得很好的源代码来回答,那么您可以在此处发布。

+0

谢谢你的第一段。这就是我所要求的。 Ruby Web应用程序的一些生命周期。 –

+0

另外,对于php的主要入口点是index.php,ruby的入口点是什么? –

+0

这取决于应用程序的启动方式。对于基于机架的应用程序,最常见的是'config.ru'。对于Rails应用程序,您会看到一个或多个运行的Rails进程为您的应用程序提供服务,这些进程通常由像[Passenger](http://mod-rails.com/)这样的服务器模块进行管理。还要记住PHP的主要入口点不仅仅是'index.php',而是允许执行的任何'.php'文件。如果你没有遵守纪律,这可能导致一种代码无政府状态。 – tadman

相关问题