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
200
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
810
Getting to know Elm
avdgaag
0
110
Beating Impostor Syndrome (NordicRuby 2016)
avdgaag
0
76
Hanami: because sometimes, you need to re-invent the wheel
avdgaag
2
500
Use your database for… Validations! Caching! Logic!
avdgaag
0
82
Web development that hurts even less: taking lessons from Rails
avdgaag
1
310
Ruby acting up: A look at how Celluloid implements the actor model for concurrency in Ruby.
avdgaag
0
230
Ecto: a database wrapper and language integrated query for Elixir
avdgaag
0
350
Using Awk: An old-school text processing tool with surprising versatility
avdgaag
1
340
Other Decks in Programming
See All in Programming
DROBEの生成AI活用事例 with AWS
ippey
0
130
Boost Performance and Developer Productivity with Jakarta EE 11
ivargrimstad
0
370
コミュニティ駆動 AWS CDK ライブラリ「Open Constructs Library」 / community-cdk-library
gotok365
2
150
WebDriver BiDiとは何なのか
yotahada3
1
150
PHPカンファレンス名古屋2025 タスク分解の試行錯誤〜レビュー負荷を下げるために〜
soichi
1
240
Djangoアプリケーション 運用のリアル 〜問題発生から可視化、最適化への道〜 #pyconshizu
kashewnuts
1
250
CSS Linter による Baseline サポートの仕組み
ryo_manba
1
110
動作確認やテストで漏れがちな観点3選
starfish719
6
1k
ファインディの テックブログ爆誕までの軌跡
starfish719
2
1.1k
ARA Ansible for the teams
kksat
0
150
プログラミング言語学習のススメ / why-do-i-learn-programming-language
yashi8484
0
140
Bedrock Agentsレスポンス解析によるAgentのOps
licux
3
850
Featured
See All Featured
Agile that works and the tools we love
rasmusluckow
328
21k
Thoughts on Productivity
jonyablonski
69
4.5k
GraphQLとの向き合い方2022年版
quramy
44
13k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
59k
Making Projects Easy
brettharned
116
6k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.1k
Building Applications with DynamoDB
mza
93
6.2k
The World Runs on Bad Software
bkeepers
PRO
67
11k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.7k
Building a Scalable Design System with Sketch
lauravandoore
461
33k
Making the Leap to Tech Lead
cromwellryan
133
9.1k
Bash Introduction
62gerente
611
210k
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