$30 off During Our Annual Pro Sale. View Details »
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
240
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
890
Getting to know Elm
avdgaag
0
140
Beating Impostor Syndrome (NordicRuby 2016)
avdgaag
0
84
Hanami: because sometimes, you need to re-invent the wheel
avdgaag
2
580
Use your database for… Validations! Caching! Logic!
avdgaag
0
100
Web development that hurts even less: taking lessons from Rails
avdgaag
1
350
Ruby acting up: A look at how Celluloid implements the actor model for concurrency in Ruby.
avdgaag
0
290
Ecto: a database wrapper and language integrated query for Elixir
avdgaag
0
440
Using Awk: An old-school text processing tool with surprising versatility
avdgaag
1
400
Other Decks in Programming
See All in Programming
Cell-Based Architecture
larchanjo
0
140
Denoのセキュリティに関する仕組みの紹介 (toranoana.deno #23)
uki00a
0
160
AIエージェントの設計で注意するべきポイント6選
har1101
5
2.4k
Patterns of Patterns
denyspoltorak
0
340
SwiftUIで本格音ゲー実装してみた
hypebeans
0
500
PC-6001でPSG曲を鳴らすまでを全部NetBSD上の Makefile に押し込んでみた / osc2025hiroshima
tsutsui
0
180
チームをチームにするEM
hitode909
0
380
Rubyで鍛える仕組み化プロヂュース力
muryoimpl
0
160
gunshi
kazupon
1
120
Grafana:建立系統全知視角的捷徑
blueswen
0
220
GoLab2025 Recap
kuro_kurorrr
0
780
Pythonではじめるオープンデータ分析〜書籍の紹介と書籍で紹介しきれなかった事例の紹介〜
welliving
3
600
Featured
See All Featured
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
110
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
31
My Coaching Mixtape
mlcsv
0
13
The Art of Programming - Codeland 2020
erikaheidi
56
14k
Color Theory Basics | Prateek | Gurzu
gurzu
0
150
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.3k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.3k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
0
260
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
0
63
Deep Space Network (abreviated)
tonyrice
0
21
Site-Speed That Sticks
csswizardry
13
1k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
0
94
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