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
840
Getting to know Elm
avdgaag
0
110
Beating Impostor Syndrome (NordicRuby 2016)
avdgaag
0
78
Hanami: because sometimes, you need to re-invent the wheel
avdgaag
2
520
Use your database for… Validations! Caching! Logic!
avdgaag
0
87
Web development that hurts even less: taking lessons from Rails
avdgaag
1
320
Ruby acting up: A look at how Celluloid implements the actor model for concurrency in Ruby.
avdgaag
0
240
Ecto: a database wrapper and language integrated query for Elixir
avdgaag
0
380
Using Awk: An old-school text processing tool with surprising versatility
avdgaag
1
360
Other Decks in Programming
See All in Programming
Instrumentsを使用した アプリのパフォーマンス向上方法
hinakko
0
240
MySQL初心者が311個のカラムにNot NULL制約を追加していってALTER TABLEについて学んだ話
hatsu38
2
110
fieldalignmentから見るGoの構造体
kuro_kurorrr
0
130
Enterprise Web App. Development (1): Build Tool Training Ver. 5
knakagawa
1
120
Bedrock × Confluenceで簡単(?)社内RAG
iharuoru
1
110
eBPF超入門「o11yに使える」とは (20250424_eBPF_o11y)
thousanda
1
110
ComposeでのPicture in Picture
takathemax
0
130
Optimizing JRuby 10
headius
0
580
監視 やばい
syossan27
12
10k
flutter_kaigi_mini_4.pdf
nobu74658
0
140
ウォンテッドリーの「ココロオドル」モバイル開発 / Wantedly's "kokoro odoru" mobile development
kubode
1
270
By the way Google Cloud Next 2025に行ってみてどうだった
ymd65536
0
120
Featured
See All Featured
StorybookのUI Testing Handbookを読んだ
zakiyama
30
5.7k
Agile that works and the tools we love
rasmusluckow
329
21k
A Tale of Four Properties
chriscoyier
159
23k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5.4k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
32
5.6k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
13
830
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
Rebuilding a faster, lazier Slack
samanthasiow
81
9k
Testing 201, or: Great Expectations
jmmastey
42
7.5k
The Cult of Friendly URLs
andyhume
78
6.3k
Making Projects Easy
brettharned
116
6.2k
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