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
81
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
340
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
私はどうやって技術力を上げたのか
yusukebe
43
17k
Swift Concurrency - 状態監視の罠
objectiveaudio
2
420
気づいて!アプリからのSOS 〜App Store Connect APIで始めるパフォーマンス健康診断〜
waka12
0
260
iOSDC.pdf
chronos2500
2
650
あなたの知らない「動画広告」の世界 - iOSDC Japan 2025
ukitaka
0
340
複雑化したリポジトリをなんとかした話 pipenvからuvによるモノレポ構成への移行
satoshi256kbyte
1
720
WebエンジニアがSwiftをブラウザで動かすプレイグラウンドを作ってみた
ohmori_yusuke
0
170
CSC509 Lecture 02
javiergs
PRO
0
400
エンジニアとして高みを目指す、 利益を生み出す設計の考え方 / design-for-profit
minodriven
23
11k
なぜあの開発者はDevRelに伴走し続けるのか / Why Does That Developer Keep Running Alongside DevRel?
nrslib
2
340
dynamic!
moro
9
5.5k
2分台で1500examples完走!爆速CIを支える環境構築術 - Kaigi on Rails 2025
falcon8823
3
2.8k
Featured
See All Featured
Product Roadmaps are Hard
iamctodd
PRO
54
11k
Learning to Love Humans: Emotional Interface Design
aarron
274
40k
For a Future-Friendly Web
brad_frost
180
9.9k
Being A Developer After 40
akosma
91
590k
Gamification - CAS2011
davidbonilla
81
5.5k
Building Applications with DynamoDB
mza
96
6.6k
It's Worth the Effort
3n
187
28k
Typedesign – Prime Four
hannesfritz
42
2.8k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
34
6.1k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.7k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
30
2.9k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
9
840
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