$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
880
Getting to know Elm
avdgaag
0
130
Beating Impostor Syndrome (NordicRuby 2016)
avdgaag
0
84
Hanami: because sometimes, you need to re-invent the wheel
avdgaag
2
560
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
280
Ecto: a database wrapper and language integrated query for Elixir
avdgaag
0
430
Using Awk: An old-school text processing tool with surprising versatility
avdgaag
1
390
Other Decks in Programming
See All in Programming
LLM Çağında Backend Olmak: 10 Milyon Prompt'u Milisaniyede Sorgulamak
selcukusta
0
110
SwiftUIで本格音ゲー実装してみた
hypebeans
0
110
生成AIを利用するだけでなく、投資できる組織へ
pospome
0
240
俺流レスポンシブコーディング 2025
tak_dcxi
14
8.5k
How Software Deployment tools have changed in the past 20 years
geshan
0
28k
ハイパーメディア駆動アプリケーションとIslandアーキテクチャ: htmxによるWebアプリケーション開発と動的UIの局所的適用
nowaki28
0
390
AIコーディングエージェント(Manus)
kondai24
0
160
20 years of Symfony, what's next?
fabpot
2
350
Full-Cycle Reactivity in Angular: SignalStore mit Signal Forms und Resources
manfredsteyer
PRO
0
120
バックエンドエンジニアによる Amebaブログ K8s 基盤への CronJobの導入・運用経験
sunabig
0
140
Microservices Platforms: When Team Topologies Meets Microservices Patterns
cer
PRO
1
1k
DSPy Meetup Tokyo #1 - はじめてのDSPy
masahiro_nishimi
1
160
Featured
See All Featured
Bash Introduction
62gerente
615
210k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.3k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.5k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.4k
The Language of Interfaces
destraynor
162
25k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
What's in a price? How to price your products and services
michaelherold
246
12k
Building Adaptive Systems
keathley
44
2.9k
Become a Pro
speakerdeck
PRO
31
5.7k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
The Power of CSS Pseudo Elements
geoffreycrofte
80
6.1k
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