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
230
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
870
Getting to know Elm
avdgaag
0
130
Beating Impostor Syndrome (NordicRuby 2016)
avdgaag
0
82
Hanami: because sometimes, you need to re-invent the wheel
avdgaag
2
560
Use your database for… Validations! Caching! Logic!
avdgaag
0
93
Web development that hurts even less: taking lessons from Rails
avdgaag
1
340
Ruby acting up: A look at how Celluloid implements the actor model for concurrency in Ruby.
avdgaag
0
280
Ecto: a database wrapper and language integrated query for Elixir
avdgaag
0
410
Using Awk: An old-school text processing tool with surprising versatility
avdgaag
1
380
Other Decks in Programming
See All in Programming
Software Architecture
hschwentner
6
2.3k
GC25 Recap: The Code You Reviewed is Not the Code You Built / #newt_gophercon_tour
mazrean
0
110
社会人になっても趣味開発を続けたい! / traPavilion
mazrean
1
100
SODA - FACT BOOK(JP)
sodainc
1
8.7k
NixOS + Kubernetesで構築する自宅サーバーのすべて
ichi_h3
0
1.2k
EMこそClaude Codeでコード調査しよう
shibayu36
0
410
What Spring Developers Should Know About Jakarta EE
ivargrimstad
0
480
Claude Agent SDK を使ってみよう
hyshu
0
1.4k
iOSでSVG画像を扱う
kishikawakatsumi
0
170
実践Claude Code:20の失敗から学ぶAIペアプログラミング
takedatakashi
18
8.5k
CSC509 Lecture 07
javiergs
PRO
0
240
Range on Rails ―「多重範囲型」という新たな選択肢が、複雑ロジックを劇的にシンプルにしたワケ
rizap_tech
0
7.7k
Featured
See All Featured
4 Signs Your Business is Dying
shpigford
185
22k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
640
Art, The Web, and Tiny UX
lynnandtonic
303
21k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.2k
Reflections from 52 weeks, 52 projects
jeffersonlam
353
21k
Side Projects
sachag
455
43k
A designer walks into a library…
pauljervisheath
209
24k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
10
890
Mobile First: as difficult as doing things right
swwweet
225
10k
Why You Should Never Use an ORM
jnunemaker
PRO
59
9.6k
The World Runs on Bad Software
bkeepers
PRO
72
11k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.5k
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