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
250
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
85
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
450
Using Awk: An old-school text processing tool with surprising versatility
avdgaag
1
400
Other Decks in Programming
See All in Programming
[AI Engineering Summit Tokyo 2025] LLMは計画業務のゲームチェンジャーか? 最適化業務における活⽤の可能性と限界
terryu16
2
400
なるべく楽してバックエンドに型をつけたい!(楽とは言ってない)
hibiki_cube
0
120
AI前提で考えるiOSアプリのモダナイズ設計
yuukiw00w
0
220
組織で育むオブザーバビリティ
ryota_hnk
0
130
Data-Centric Kaggle
isax1015
2
680
AI 駆動開発ライフサイクル(AI-DLC):ソフトウェアエンジニアリングの再構築 / AI-DLC Introduction
kanamasa
11
5.7k
フロントエンド開発の勘所 -複数事業を経験して見えた判断軸の違い-
heimusu
7
2.6k
責任感のあるCloudWatchアラームを設計しよう
akihisaikeda
3
120
クラウドに依存しないS3を使った開発術
simesaba80
0
230
IFSによる形状設計/デモシーンの魅力 @ 慶應大学SFC
gam0022
0
250
re:Invent 2025 トレンドからみる製品開発への AI Agent 活用
yoskoh
0
680
ELYZA_Findy AI Engineering Summit登壇資料_AIコーディング時代に「ちゃんと」やること_toB LLMプロダクト開発舞台裏_20251216
elyza
2
1.2k
Featured
See All Featured
Designing Powerful Visuals for Engaging Learning
tmiket
0
200
It's Worth the Effort
3n
188
29k
Evolving SEO for Evolving Search Engines
ryanjones
0
100
The Mindset for Success: Future Career Progression
greggifford
PRO
0
220
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
New Earth Scene 8
popppiees
1
1.4k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.5k
Skip the Path - Find Your Career Trail
mkilby
0
44
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
0
1.1k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.1k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
122
21k
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