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
260
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
90
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
310
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
420
Other Decks in Programming
See All in Programming
感情を設計する
ichimichi
5
1.5k
Vibe NLP for Applied NLP
inesmontani
PRO
0
460
ハーネスエンジニアリングにどう向き合うか 〜ルールファイルを超えて開発プロセスを設計する〜 / How to approach harness engineering
rkaga
24
14k
アーキテクチャモダナイゼーションとは何か
nwiizo
19
5.4k
検索設計から 推論設計への重心移動と Recall-First Retrieval
po3rin
3
1k
From Formal Specification to Property Based Test
ohbarye
0
210
How We Benchmarked Quarkus: Patterns and anti-patterns
hollycummins
1
150
AWS re:Invent 2025の少し振り返り + DevOps AgentとBacklogを連携させてみた
satoshi256kbyte
3
170
ふりがな Deep Dive try! Swift Tokyo 2026
watura
0
230
TiDBのアーキテクチャから学ぶ分散システム入門 〜MySQL互換のNewSQLは何を解決するのか〜 / tidb-architecture-study
dznbk
1
190
PHPer、Cloudflare に引っ越す
suguruooki
1
100
AI-DLC Deep Dive
yuukiyo
9
4.7k
Featured
See All Featured
Product Roadmaps are Hard
iamctodd
PRO
55
12k
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
100
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.8k
GitHub's CSS Performance
jonrohan
1032
470k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.7k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
270
Designing for humans not robots
tammielis
254
26k
Music & Morning Musume
bryan
47
7.2k
How Software Deployment tools have changed in the past 20 years
geshan
0
33k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
199
73k
HDC tutorial
michielstock
2
630
The World Runs on Bad Software
bkeepers
PRO
72
12k
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