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
170
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
780
Getting to know Elm
avdgaag
0
110
Beating Impostor Syndrome (NordicRuby 2016)
avdgaag
0
75
Hanami: because sometimes, you need to re-invent the wheel
avdgaag
2
460
Use your database for… Validations! Caching! Logic!
avdgaag
0
76
Web development that hurts even less: taking lessons from Rails
avdgaag
1
280
Ruby acting up: A look at how Celluloid implements the actor model for concurrency in Ruby.
avdgaag
0
190
Ecto: a database wrapper and language integrated query for Elixir
avdgaag
0
320
Using Awk: An old-school text processing tool with surprising versatility
avdgaag
1
310
Other Decks in Programming
See All in Programming
破壊せよ!データ破壊駆動で考えるドメインモデリング / data-destroy-driven
minodriven
14
3.8k
Tuning GraphQL on Rails
pyama86
2
780
GCCのプラグインを作る / I Made a GCC Plugin
shouth
1
140
AWS IaCの注目アップデート 2024年10月版
konokenj
3
2.1k
Golang と Erlang
taiyow
8
1.8k
僕がつくった48個のWebサービス達
yusukebe
17
16k
色々なIaCツールを実際に触って比較してみる
iriikeita
0
130
Kotlinの好きなところ
kobaken0029
0
220
From Subtype Polymorphism To Typeclass-based Ad hoc Polymorphism- An Example
philipschwarz
PRO
0
110
Snowflake x dbtで作るセキュアでアジャイルなデータ基盤
tsoshiro
1
240
Java ジェネリクス入門 2024
nagise
0
530
Vertical Architectures for Scalable Angular Applications
manfredsteyer
PRO
0
290
Featured
See All Featured
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.4k
RailsConf 2023
tenderlove
29
870
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
41
9.2k
The Cult of Friendly URLs
andyhume
78
6k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.2k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
26
2k
Happy Clients
brianwarren
97
6.7k
Typedesign – Prime Four
hannesfritz
39
2.4k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
46
2.1k
Music & Morning Musume
bryan
46
6.1k
Designing Experiences People Love
moore
138
23k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
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