2012-09-07 236 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

相關問題