Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Lotus For Rails Developers

Luca Guidi
November 05, 2015

Lotus For Rails Developers

Luca Guidi

November 05, 2015
Tweet

More Decks by Luca Guidi

Other Decks in Programming

Transcript

  1. Features • Thread-safety • Full featured HTTP router • RESTful

    resources • Actions and views as objects • Actions callbacks • Code sharing • Exception handling • Sessions • Secure Cookies • HTTP Caching • Automatic MIME Types • 20+ Template engines • Partials and layouts • Presenters • Routing helpers • Form helpers • HTML helpers • Automatic markup escape • CSRF and XSS prevention • Force SSL • Entities • Repositories • Data Mapper • SQL and Memory adapters • Dirty Tracking • Reusable validations • Mailers • Multiple environments • Static assets • JSON body parser • Params whitelisting and validation • Code generators • Rack servers support • Application console • Database console • Powerful CLI • Migrations • RSpec, Minitest and Capybara support • Several architectures • And more..
  2. Lotus depends on a few gems. You can be sure

    that all the loaded code is useful for your application.
  3. Example: Constant Autoloading • Differences across environments • ActiveSupport’s dependencies.rb

    is ~800LOCs • lotus-controller gem is ~800LOCs • It took years to become stable • It modifies how Ruby VM loads code and features • It requires to “monkey-patch” Ruby Core
  4. Solution: Eager loading • Same behaviour across environments • It’s

    just 26LOCs • It isn’t a perfect solution • “Easy fix” via require
  5. The Monolith is good for the first 5 years, but

    then a framework should make your life easy.
  6. Q&A