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
250
0
Share
Lotus: because sometimes you need to reinvent the wheel
Arjan van der Gaag
July 08, 2015
More Decks by Arjan van der Gaag
See All by Arjan van der Gaag
How to Lead a Team by Doing Nothing
avdgaag
8
900
Getting to know Elm
avdgaag
0
160
Beating Impostor Syndrome (NordicRuby 2016)
avdgaag
0
89
Hanami: because sometimes, you need to re-invent the wheel
avdgaag
2
590
Use your database for… Validations! Caching! Logic!
avdgaag
0
110
Web development that hurts even less: taking lessons from Rails
avdgaag
1
360
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
470
Using Awk: An old-school text processing tool with surprising versatility
avdgaag
1
410
Other Decks in Programming
See All in Programming
野球解説AI Agentを開発してみた - 2026/02/27 LayerX社内LT会資料
shinyorke
PRO
0
390
PHP 7.4でもOpenTelemetryゼロコード計装がしたい! / PHPerKaigi 2026
arthur1
1
500
それはエンジニアリングの糧である:AI開発のためにAIのOSSを開発する現場より / It serves as fuel for engineering: insights from the field of developing open-source AI for AI development.
nrslib
1
820
20260320登壇資料
pharct
0
160
事業会社でのセキュリティ長期インターンについて
masachikaura
0
230
ポーリング処理廃止によるイベント駆動アーキテクチャへの移行
seitarof
3
1.3k
Java 21/25 Virtual Threads 소개
debop
0
320
Radical Imagining - LIFT 2025-2027 Policy Agenda
lift1998
0
230
AI駆動開発がもたらすパラダイムシフト
ryosuke0911
0
110
Coding at the Speed of Thought: The New Era of Symfony Docker
dunglas
0
4.5k
今からFlash開発できるわけないじゃん、ムリムリ! (※ムリじゃなかった!?)
arkw
0
180
Linux Kernelの1文字のミスで 権限昇格ができた話
rqda
0
2.3k
Featured
See All Featured
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
200
4 Signs Your Business is Dying
shpigford
187
22k
How to train your dragon (web standard)
notwaldorf
97
6.6k
HDC tutorial
michielstock
1
600
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.2k
Testing 201, or: Great Expectations
jmmastey
46
8.1k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Darren the Foodie - Storyboard
khoart
PRO
3
3.1k
Building AI with AI
inesmontani
PRO
1
860
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
170
Docker and Python
trallard
47
3.8k
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