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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
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
150
Beating Impostor Syndrome (NordicRuby 2016)
avdgaag
0
87
Hanami: because sometimes, you need to re-invent the wheel
avdgaag
2
580
Use your database for… Validations! Caching! Logic!
avdgaag
0
110
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
300
Ecto: a database wrapper and language integrated query for Elixir
avdgaag
0
460
Using Awk: An old-school text processing tool with surprising versatility
avdgaag
1
410
Other Decks in Programming
See All in Programming
AHC061解説
shun_pi
0
270
「ブロックテーマでは再現できない」は本当か?
inc2734
0
1.1k
NOT A HOTEL - 建築や人と融合し、自由を創り出すソフトウェア
not_a_hokuts
2
490
CSC307 Lecture 09
javiergs
PRO
1
850
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
350
Head of Engineeringが現場で回した生産性向上施策 2025→2026
gessy0129
0
200
izumin5210のプロポーザルのネタ探し #tskaigi_msup
izumin5210
1
500
浮動小数の比較について
kishikawakatsumi
0
360
Rails Girls Tokyo 18th GMO Pepabo Sponsor Talk
yutokyokutyo
0
180
コーディングルールの鮮度を保ちたい / keep-fresh-go-internal-conventions
handlename
0
120
2026年は Rust 置き換えが流行る! / 20260220-niigata-5min-tech
girigiribauer
0
210
Go Conference mini in Sendai 2026 : Goに新機能を提案し実装されるまでのフロー徹底解説
yamatoya
0
480
Featured
See All Featured
Side Projects
sachag
455
43k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
460
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
140
Paper Plane
katiecoart
PRO
0
47k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
270
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
610
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
130
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.8k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
1
3.5k
Mobile First: as difficult as doing things right
swwweet
225
10k
Navigating Team Friction
lara
192
16k
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