Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Lotus: because sometimes you need to reinvent t...
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Arjan van der Gaag
July 08, 2015
Programming
0
250
Lotus: because sometimes you need to reinvent the wheel
Arjan van der Gaag
July 08, 2015
Tweet
Share
More Decks by Arjan van der Gaag
See All by Arjan van der Gaag
How to Lead a Team by Doing Nothing
avdgaag
8
890
Getting to know Elm
avdgaag
0
150
Beating Impostor Syndrome (NordicRuby 2016)
avdgaag
0
87
Hanami: because sometimes, you need to re-invent the wheel
avdgaag
2
580
Use your database for… Validations! Caching! Logic!
avdgaag
0
110
Web development that hurts even less: taking lessons from Rails
avdgaag
1
350
Ruby acting up: A look at how Celluloid implements the actor model for concurrency in Ruby.
avdgaag
0
300
Ecto: a database wrapper and language integrated query for Elixir
avdgaag
0
460
Using Awk: An old-school text processing tool with surprising versatility
avdgaag
1
410
Other Decks in Programming
See All in Programming
AIに仕事を丸投げしたら、本当に楽になれるのか
dip_tech
PRO
0
170
ふん…おもしれぇ Parser。RubyKaigi 行ってやるぜ
aki_pin0
0
120
Rで始めるML・LLM活用入門
wakamatsu_takumu
0
120
株式会社 Sun terras カンパニーデック
sunterras
0
1.9k
並行開発のためのコードレビュー
miyukiw
2
2.1k
CSC307 Lecture 12
javiergs
PRO
0
450
日本だけで解禁されているアプリ起動の方法
ryunakayama
0
360
AHC061解説
shun_pi
0
270
Rubyと楽しいをつくる / Creating joy with Ruby
chobishiba
0
200
AI活用のコスパを最大化する方法
ochtum
0
120
New in Go 1.26 Implementing go fix in product development
sunecosuri
0
100
CopilotKit + AG-UIを学ぶ
nearme_tech
PRO
1
110
Featured
See All Featured
How to Think Like a Performance Engineer
csswizardry
28
2.5k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
300
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.2k
Test your architecture with Archunit
thirion
1
2.2k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.6k
Speed Design
sergeychernyshev
33
1.6k
Darren the Foodie - Storyboard
khoart
PRO
3
2.7k
Scaling GitHub
holman
464
140k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
110
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
470
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
360
Transcript
lotus sometimes you need to reinvent the wheel
Arjan van der Gaag @avdgaag brightin
Lotus is a Ruby MVC web framework comprised of many
micro-libraries. It has a simple, stable API, a minimal DSL, and prioritises the use of plain objects over magical, over- complicated classes with too much responsibility.
standalone frameworks
standalone frameworks to build full-stack applications
from small endpoints… require 'bundler/setup' require 'lotus/router' run Lotus::Router.new {
get '/', to: ->(env) { [200, {}, ['Hello, world'] } }
…to containers
some conventions
some conventions many objects
some conventions many objects no monkey patches
simplicity > convenience
testable class Show include Lotus::Action expose :book def initialize(repository: BookRepository)
@repository = repository end def call(params) @book = @repository.find params[:id] end end
focus on maintenance
writing Ruby is fun
Guides and docs at lotusrb.org
@avdgaag arjanvandergaag.nl