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
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
370
Other Decks in Programming
See All in Programming
あなたとJIT, 今すぐアセンブ ル
sisshiki1969
0
240
ZeroETLで始めるDynamoDBとS3の連携
afooooil
0
150
管你要 trace 什麼、bpftrace 用下去就對了 — COSCUP 2025
shunghsiyu
0
240
それ CLI フレームワークがなくてもできるよ / Building CLI Tools Without Frameworks
orgachem
PRO
17
3.7k
React 使いじゃなくても知っておきたい教養としての React
oukayuka
18
5.3k
ソフトウェア設計とAI技術の活用
masuda220
PRO
26
7.3k
実践!App Intents対応
yuukiw00w
1
190
SQLアンチパターン第2版 データベースプログラミングで陥りがちな失敗とその対策 / Intro to SQL Antipatterns 2nd
twada
PRO
37
11k
No Install CMS戦略 〜 5年先を見据えたフロントエンド開発を考える / no_install_cms
rdlabo
0
440
Claude Code と OpenAI o3 で メタデータ情報を作る
laket
0
110
GUI操作LLMの最新動向: UI-TARSと関連論文紹介
kfujikawa
0
520
DynamoDBは怖くない!〜テーブル設計の勘所とテスト戦略〜
hyamazaki
0
180
Featured
See All Featured
Mobile First: as difficult as doing things right
swwweet
223
9.9k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
[RailsConf 2023] Rails as a piece of cake
palkan
56
5.7k
Java REST API Framework Comparison - PWX 2021
mraible
32
8.8k
Facilitating Awesome Meetings
lara
54
6.5k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
8
430
Embracing the Ebb and Flow
colly
86
4.8k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.8k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
161
15k
Producing Creativity
orderedlist
PRO
346
40k
Building Applications with DynamoDB
mza
95
6.5k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
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