Ruby Video
Talks
Speakers
Events
Topics
Leaderboard
Sign in
Talks
Speakers
Events
Topics
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
Roda is a new Ruby web framework designed around the concept of a routing tree. Roda gives you the simplicity of Sinatra for simple cases, while being able to scale well to handle larger, complex cases. It provides performance very close to a pure Rack application, with a flexible plugin system powerful enough to handle almost any needs. Come learn about routing trees, how they make web development better, and how Roda adds a twist on the routing tree concept to avoid the scope pollution problem inherent in many other Ruby web frameworks. Help us caption & translate this video! http://amara.org/v/FkBQ/
Date
Summary
Markdown supported
**Introduction** In the talk titled "Roda: The Routing Tree Web Framework," Jeremy Evans discusses the creation and features of Roda, a Ruby web framework designed with a focus on routing trees. The framework combines the simplicity of Sinatra with improved performance and scalability, particularly for more complex web applications. **Key Points** - **Background and Motivation for Roda**: - Jeremy started using Ruby and Rails but became disillusioned by Rails' complexity. - He was inspired by Sinatra’s simplicity but encountered issues with route duplication in larger applications. - After discovering the Cuba framework, which effectively reduced routing duplication, Jeremy envisioned a new framework that combined the benefits of both Sinatra and Cuba, leading to the development of Roda. - **Routing Tree Concept**: - Roda is based on a routing tree, which differs from conventional route handling methods by breaking down requests into manageable segments, enhancing performance and flexibility. - Routing trees operate by examining each segment of the HTTP request path rather than iterating over a full list of routes, akin to a file system operation. - **Routing Methods in Roda**: - Roda utilizes methods like `r.on` for prefix matching and `r.is` for terminal matching to construct its routing tree, enabling more precise control over request handling. - Different request methods (GET, POST) are managed effectively through `r.get` and `r.post` calls, maintaining clarity and minimizing redundancy in route definitions. - **Performance Advantages**: - Roda boasts significant performance improvements, being observed to run approximately 2.5 times faster than Sinatra for basic applications and demonstrating reduced memory usage. - Performance benchmarks show Roda's capabilities with 10,000 routes, where it maintains efficiency compared to Rails and Sinatra, which experience noticeable slowdowns. - **Potential Downsides**: - One trade-off with Roda’s design is a potential loss of routing introspection, which may affect debugging and certain application requirements that depend heavily on introspection features. - **Historical Context**: - Evans provides a brief history of routing tree frameworks in Ruby, mentioning key predecessors like Rum and Cuba, which informed Roda's design. **Conclusion** Jeremy Evans's presentation highlights Roda’s unique routing tree design, its practical programming benefits, and performance advantages over other Ruby frameworks. The framework's capability to handle complex applications while maintaining simplicity presents a compelling option for developers. Roda not only enhances performance and reduces routing duplication but aims to streamline the coding experience in Ruby web development.
Suggest modifications
Cancel