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
280
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Lotus: because sometimes you need to reinvent the wheel
Arjan van der Gaag
July 08, 2015
More Decks by Arjan van der Gaag
See All by Arjan van der Gaag
How to Lead a Team by Doing Nothing
avdgaag
8
930
Getting to know Elm
avdgaag
0
180
Beating Impostor Syndrome (NordicRuby 2016)
avdgaag
0
98
Hanami: because sometimes, you need to re-invent the wheel
avdgaag
2
620
Use your database for… Validations! Caching! Logic!
avdgaag
0
120
Web development that hurts even less: taking lessons from Rails
avdgaag
1
380
Ruby acting up: A look at how Celluloid implements the actor model for concurrency in Ruby.
avdgaag
0
340
Ecto: a database wrapper and language integrated query for Elixir
avdgaag
0
490
Using Awk: An old-school text processing tool with surprising versatility
avdgaag
1
440
Other Decks in Programming
See All in Programming
高専キャリア LT 発表内容
crysta1221
6
5.4k
レビュー履歴をAIに食わせて、 Compose移行を加速するs
shihochan
0
260
tsc.rip を支える技術 / Kyoto.なんか #8
susisu
0
4.1k
Jindong: Introducing Declarative Haptics in Compose Multiplatform
l2hyunwoo
0
140
ALB ログから Trace を気合で繋げる技術
fohte
7
840
GKE アップグレード前に知っておきたい Blue/Green と PDB の関係
stkk
0
120
Go を使い始めて 2 ヶ月の学び / My first two months with Go
contour_gara
0
400
PHPプロジェクトの結合バランスを可視化する #php_night
kajitack
0
180
「つくるAI」だけではバグは見つからない ~テストに必要な「見つけるAI」を分離させる戦略~
mfunaki
0
220
{ Android | Kotlin } Gradle Plugin in 2026
ryunen344
1
170
Claude Codeを組織的に動かして月400PRを実現した話
happy_ryo
0
230
初めての模倣学習とVLA
natsutan
0
390
Featured
See All Featured
Testing 201, or: Great Expectations
jmmastey
46
8.3k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
260
Rails Girls Zürich Keynote
gr2m
96
14k
Darren the Foodie - Storyboard
khoart
PRO
3
3.8k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.4k
Site-Speed That Sticks
csswizardry
13
1.5k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
990
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.1k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.3k
HDC tutorial
michielstock
2
830
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Bootstrapping a Software Product
garrettdimon
PRO
306
120k
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