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
180
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
790
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
470
Use your database for… Validations! Caching! Logic!
avdgaag
0
79
Web development that hurts even less: taking lessons from Rails
avdgaag
1
290
Ruby acting up: A look at how Celluloid implements the actor model for concurrency in Ruby.
avdgaag
0
200
Ecto: a database wrapper and language integrated query for Elixir
avdgaag
0
340
Using Awk: An old-school text processing tool with surprising versatility
avdgaag
1
330
Other Decks in Programming
See All in Programming
Stackless и stackful? Корутины и асинхронность в Go
lamodatech
0
610
【re:Growth 2024】 Aurora DSQL をちゃんと話します!
maroon1st
0
770
DevFest Tokyo 2025 - Flutter のアプリアーキテクチャ現在地点
wasabeef
5
900
fs2-io を試してたらバグを見つけて直した話
chencmd
0
220
今年のアップデートで振り返るCDKセキュリティのシフトレフト/2024-cdk-security-shift-left
tomoki10
0
190
StarlingMonkeyを触ってみた話 - 2024冬
syumai
3
270
開発者とQAの越境で自動テストが増える開発プロセスを実現する
92thunder
1
180
talk-with-local-llm-with-web-streams-api
kbaba1001
0
170
バグを見つけた?それAppleに直してもらおう!
uetyo
0
170
ブラウザ単体でmp4書き出すまで - muddy-web - 2024-12
yue4u
2
460
testcontainers のススメ
sgash708
1
120
LLM Supervised Fine-tuningの理論と実践
datanalyticslabo
3
920
Featured
See All Featured
The Language of Interfaces
destraynor
154
24k
GraphQLの誤解/rethinking-graphql
sonatard
67
10k
How to Think Like a Performance Engineer
csswizardry
22
1.2k
[RailsConf 2023] Rails as a piece of cake
palkan
53
5k
Side Projects
sachag
452
42k
Large-scale JavaScript Application Architecture
addyosmani
510
110k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
29
2k
Why Our Code Smells
bkeepers
PRO
335
57k
Building Adaptive Systems
keathley
38
2.3k
Build The Right Thing And Hit Your Dates
maggiecrowley
33
2.4k
Done Done
chrislema
181
16k
Visualization
eitanlees
146
15k
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