譯自:https://engineering.procore.com/roda-vs-sinatra-for-small-projects-2/web
我是一名黑客,我喜歡構建一些東西。我在乎開發效率以及性能。我天天都使用 Rails,然而它對個人我的項目來講,有些過重了。app
當我出於興趣而編寫一些代碼時,我每每不太想使用 Rails。最近我在用 Roda。框架
Roda 是一個微型 Web Framework,由 Jeremy Evans 編寫,他同時也是我最喜歡的 Ruby 項目 Sequel 的做者。工具
Roda 有兩個特性很是棒 - 它的性能,以及它的樹狀結構的路由。而這二者是相關的。性能
Roda 的樹狀路由結構很酷,它創建一棵樹來檢查路由。這意味着您能夠在不影響性能的狀況下,嵌套和引入路由。測試
你一樣能夠經過將路由拆分到不一樣文件,來使你的代碼保持 DRY,以及爲頂級路由引入權限驗證的代碼,來替代逐個路由引入。ui
這使得項目的結構整潔,又靈活。code
性能也使 Roda 的優點。基於咱們的測試,它使目前最快的 Ruby Web Framework。路由
當我做爲用戶時,我會對那些緩慢的 app 印象深入,我不但願個人 app 這樣,性能對我很重要。我但願所使用的工具儘量的快,同時也足夠有趣。開發
讓咱們來看一個簡單的 hello world
。
require 'roda' class App < Roda route do |r| r.get '/hi' do "Hello World" end end end
這段代碼基本什麼也沒作。它只是爲你展現了,當你編寫一些小型我的項目時,你不須要作須要配置初始化工做,而後才能真正的開始幹活。
我我的的小項目只有少許的端點,因此 Rails 那種 MVC 的結構過於龐大。我寧願動手修改,將全部的內容都放在一個文件。
一樣的,當您的項目邊的龐大時,將其拆分爲多個小文件是很天然的事。
Sinatra 很棒,一直以來,它都是我最喜好的軟件項目之一。
我使用 Sinatra 是爲了解決性能問題。它比Rails 快不少。只是 Cuba 更快。
當編寫 Ruby Web Benchmark 報告時,我發現 Sinatra 並無像我認爲的那樣快,因而我開始使用 Cuba 和 Roda。
我已經使用 Roda 在一些小項目,它對我頗有幫助,我很喜歡它。
性能上,Roda 比 Sinatra 快了接近 2.5 倍,這點也很榜。
並非全部項目,使用 Roda 都是號選擇。我用在一些只有我一個開發人員的小項目上。除非是一個小的獨立工具,不然我不會讓個人 Procore 團隊嘗試它。
Roda 的文檔搞的挺好,無論怎樣,它是一個小社區。
Roda 並非一個完整的 web 框架,主要是一個 web request 路由。這意味着有時候你得本身解決問題。可是許多用慣 Rails 的人,也許不太喜歡這點。
最後,我很喜歡 Roda,它頗有趣,可讓我在平常工做中獲得休息。若是你是一名 Ruby 開發者,Roda 值得以試。