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
230
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
860
Getting to know Elm
avdgaag
0
120
Beating Impostor Syndrome (NordicRuby 2016)
avdgaag
0
80
Hanami: because sometimes, you need to re-invent the wheel
avdgaag
2
540
Use your database for… Validations! Caching! Logic!
avdgaag
0
92
Web development that hurts even less: taking lessons from Rails
avdgaag
1
330
Ruby acting up: A look at how Celluloid implements the actor model for concurrency in Ruby.
avdgaag
0
270
Ecto: a database wrapper and language integrated query for Elixir
avdgaag
0
410
Using Awk: An old-school text processing tool with surprising versatility
avdgaag
1
380
Other Decks in Programming
See All in Programming
【第4回】関東Kaggler会「Kaggleは執筆に役立つ」
mipypf
0
1k
CloudflareのChat Agent Starter Kitで簡単!AIチャットボット構築
syumai
2
390
[FEConf 2025] 모노레포 절망편, 14개 레포로 부활하기까지 걸린 1년
mmmaxkim
0
1.4k
複雑なドメインに挑む.pdf
yukisakai1225
5
960
Improving my own Ruby thereafter
sisshiki1969
1
150
🔨 小さなビルドシステムを作る
momeemt
3
660
Go言語での実装を通して学ぶLLMファインチューニングの仕組み / fukuokago22-llm-peft
monochromegane
0
110
オープンセミナー2025@広島LT技術ブログを続けるには
satoshi256kbyte
0
150
開発チーム・開発組織の設計改善スキルの向上
masuda220
PRO
18
9.7k
時間軸から考えるTerraformを使う理由と留意点
fufuhu
12
4.1k
もうちょっといいRubyプロファイラを作りたい (2025)
osyoyu
0
240
Oracle Database Technology Night 92 Database Connection control FAN-AC
oracle4engineer
PRO
1
380
Featured
See All Featured
How to train your dragon (web standard)
notwaldorf
96
6.2k
How to Think Like a Performance Engineer
csswizardry
26
1.9k
BBQ
matthewcrist
89
9.8k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.6k
Facilitating Awesome Meetings
lara
55
6.5k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.4k
Mobile First: as difficult as doing things right
swwweet
224
9.9k
Typedesign – Prime Four
hannesfritz
42
2.8k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
Thoughts on Productivity
jonyablonski
69
4.8k
How STYLIGHT went responsive
nonsquared
100
5.8k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
126
53k
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