Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
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
240
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
890
Getting to know Elm
avdgaag
0
140
Beating Impostor Syndrome (NordicRuby 2016)
avdgaag
0
84
Hanami: because sometimes, you need to re-invent the wheel
avdgaag
2
580
Use your database for… Validations! Caching! Logic!
avdgaag
0
100
Web development that hurts even less: taking lessons from Rails
avdgaag
1
350
Ruby acting up: A look at how Celluloid implements the actor model for concurrency in Ruby.
avdgaag
0
290
Ecto: a database wrapper and language integrated query for Elixir
avdgaag
0
440
Using Awk: An old-school text processing tool with surprising versatility
avdgaag
1
400
Other Decks in Programming
See All in Programming
生成AIを利用するだけでなく、投資できる組織へ
pospome
2
410
Cell-Based Architecture
larchanjo
0
140
Denoのセキュリティに関する仕組みの紹介 (toranoana.deno #23)
uki00a
0
170
AIコーディングエージェント(Gemini)
kondai24
0
280
AtCoder Conference 2025「LLM時代のAHC」
imjk
2
590
著者と進める!『AIと個人開発したくなったらまずCursorで要件定義だ!』
yasunacoffee
0
160
脳の「省エネモード」をデバッグする ~System 1(直感)と System 2(論理)の切り替え~
panda728
PRO
0
120
ゆくKotlin くるRust
exoego
1
160
フルサイクルエンジニアリングをAI Agentで全自動化したい 〜構想と現在地〜
kamina_zzz
0
300
Context is King? 〜Verifiability時代とコンテキスト設計 / Beyond "Context is King"
rkaga
10
1.4k
Spinner 軸ズレ現象を調べたらレンダリング深淵に飲まれた #レバテックMeetup
bengo4com
0
190
Vibe codingでおすすめの言語と開発手法
uyuki234
0
120
Featured
See All Featured
WENDY [Excerpt]
tessaabrams
8
35k
Building Adaptive Systems
keathley
44
2.9k
The Language of Interfaces
destraynor
162
25k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
0
400
Optimizing for Happiness
mojombo
379
70k
Applied NLP in the Age of Generative AI
inesmontani
PRO
3
2k
The Spectacular Lies of Maps
axbom
PRO
1
400
GraphQLの誤解/rethinking-graphql
sonatard
73
11k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
55k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
0
120
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
37
2.7k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.1k
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