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
Arjan van der Gaag
July 08, 2015
Programming
0
210
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
830
Getting to know Elm
avdgaag
0
110
Beating Impostor Syndrome (NordicRuby 2016)
avdgaag
0
78
Hanami: because sometimes, you need to re-invent the wheel
avdgaag
2
520
Use your database for… Validations! Caching! Logic!
avdgaag
0
85
Web development that hurts even less: taking lessons from Rails
avdgaag
1
310
Ruby acting up: A look at how Celluloid implements the actor model for concurrency in Ruby.
avdgaag
0
240
Ecto: a database wrapper and language integrated query for Elixir
avdgaag
0
370
Using Awk: An old-school text processing tool with surprising versatility
avdgaag
1
350
Other Decks in Programming
See All in Programming
RuboCop: Modularity and AST Insights
koic
0
100
Agentic Applications with Symfony
el_stoffel
2
270
Bedrock×MCPで社内ブログ執筆文化を育てたい!
har1101
6
900
Building a macOS screen saver with Kotlin (Android Makers 2025)
zsmb
1
140
これだけは知っておきたいクラス設計の基礎知識 version 2
masuda220
PRO
24
6.1k
SQL Server ベクトル検索
odashinsuke
0
170
Devinのメモリ活用の学びを自社サービスにどう組み込むか?
itarutomy
0
2.1k
DataStoreをテストする
mkeeda
0
280
Vibe Codingをせずに Clineを使っている
watany
17
6.1k
MCP調べてみました! / Exploring MCP
uhzz
2
2.2k
Ruby's Line Breaks
yui_knk
2
480
Unlock the Potential of Swift Code Generation
rockname
0
240
Featured
See All Featured
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.6k
Six Lessons from altMBA
skipperchong
27
3.7k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
41
2.2k
Why You Should Never Use an ORM
jnunemaker
PRO
55
9.3k
Making the Leap to Tech Lead
cromwellryan
133
9.2k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
34
2.2k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
8
650
Thoughts on Productivity
jonyablonski
69
4.6k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.1k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
47
2.5k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
52
2.4k
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