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
77
Hanami: because sometimes, you need to re-invent the wheel
avdgaag
2
510
Use your database for… Validations! Caching! Logic!
avdgaag
0
83
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
360
Using Awk: An old-school text processing tool with surprising versatility
avdgaag
1
350
Other Decks in Programming
See All in Programming
20250326_生成AIによる_レビュー承認システムの実現.pdf
takahiromatsui
15
4.5k
AI Agentを利用したAndroid開発について
yuchan2215
0
190
아직도 SOLID 를 '글'로만 알고 계신가요?
sh1mj1
0
350
CTFのWebにおける⾼難易度問題について
hamayanhamayan
1
920
AtCoder Heuristic First-step Vol.1 講義スライド
terryu16
2
950
CRE Meetup!ユーザー信頼性を支えるエンジニアリング実践例の発表資料です
tmnb
0
150
AWS CDKにおけるL2 Constructの仕組み / aws-cdk-l2-construct
gotok365
4
920
eBPF Updates (March 2025)
kentatada
0
120
Develop Faster With FrankenPHP
dunglas
1
1.5k
Identifying and Analyzing Fake OSS with Malware - fukuoka.go#21
rhykw
0
520
AIエージェントを活用したアプリ開発手法の模索
kumamotone
1
730
PHPでお金を扱う時、終わりのない 謎の1円調査の旅にでなくて済む方法
nakka
3
960
Featured
See All Featured
Fontdeck: Realign not Redesign
paulrobertlloyd
83
5.4k
How GitHub (no longer) Works
holman
314
140k
The Cost Of JavaScript in 2023
addyosmani
48
7.6k
What's in a price? How to price your products and services
michaelherold
244
12k
BBQ
matthewcrist
88
9.5k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
2.9k
Visualization
eitanlees
146
15k
How to train your dragon (web standard)
notwaldorf
91
5.9k
We Have a Design System, Now What?
morganepeng
51
7.5k
KATA
mclloyd
29
14k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.4k
Raft: Consensus for Rubyists
vanstee
137
6.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