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
220
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
850
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
530
Use your database for… Validations! Caching! Logic!
avdgaag
0
89
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
260
Ecto: a database wrapper and language integrated query for Elixir
avdgaag
0
400
Using Awk: An old-school text processing tool with surprising versatility
avdgaag
1
370
Other Decks in Programming
See All in Programming
SODA - FACT BOOK
sodainc
1
1.1k
The Evolution of Enterprise Java with Jakarta EE 11 and Beyond
ivargrimstad
1
840
今ならAmazon ECSのサービス間通信をどう選ぶか / Selection of ECS Interservice Communication 2025
tkikuc
11
2.8k
関数型まつり2025登壇資料「関数プログラミングと再帰」
taisontsukada
2
840
TypeScript LSP の今までとこれから
quramy
1
510
[初登壇@jAZUG]アプリ開発者が気になるGoogleCloud/Azure+wasm/wasi
asaringo
0
130
Team topologies and the microservice architecture: a synergistic relationship
cer
PRO
0
920
A comprehensive view of refactoring
marabesi
0
970
iOSアプリ開発で 関数型プログラミングを実現する The Composable Architectureの紹介
yimajo
2
210
Claude Codeの使い方
ttnyt8701
1
130
Cline指示通りに動かない? AI小説エージェントで学ぶ指示書の書き方と自動アップデートの仕組み
kamomeashizawa
1
560
Gleamという選択肢
comamoca
6
740
Featured
See All Featured
Rails Girls Zürich Keynote
gr2m
94
14k
Speed Design
sergeychernyshev
31
1k
The Art of Programming - Codeland 2020
erikaheidi
54
13k
KATA
mclloyd
29
14k
Fireside Chat
paigeccino
37
3.5k
Building Applications with DynamoDB
mza
95
6.5k
Why Our Code Smells
bkeepers
PRO
337
57k
How GitHub (no longer) Works
holman
314
140k
Designing Experiences People Love
moore
142
24k
Side Projects
sachag
455
42k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.2k
GraphQLの誤解/rethinking-graphql
sonatard
71
11k
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