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 the wheel
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
760
Getting to know Elm
avdgaag
0
100
Beating Impostor Syndrome (NordicRuby 2016)
avdgaag
0
74
Hanami: because sometimes, you need to re-invent the wheel
avdgaag
2
450
Use your database for… Validations! Caching! Logic!
avdgaag
0
67
Web development that hurts even less: taking lessons from Rails
avdgaag
1
270
Ruby acting up: A look at how Celluloid implements the actor model for concurrency in Ruby.
avdgaag
0
170
Ecto: a database wrapper and language integrated query for Elixir
avdgaag
0
300
Using Awk: An old-school text processing tool with surprising versatility
avdgaag
1
300
Other Decks in Programming
See All in Programming
AWS初心者ってどうやってAWSを学ぶ?〜アプリエンジニアがやってよかったアーキテクチャ学習方法〜
yamanashi_ren01
0
190
HMSコンペ 11th Solution (team : kansai-kaggler)
t88
1
680
Webエディタライブラリ 「CodeMirror」から学ぶ Webアプリ開発のテクニック
ryosukeigarashi
0
250
コード生成を伴うLLMエージェント - 2024.07.18 Tokyo AI
smiyawaki0820
11
4.1k
Folding Cheat Sheet #7
philipschwarz
PRO
0
150
Temporalを取り巻く仕様を整理する
sajikix
0
110
CSC307 Lecture 06
javiergs
PRO
0
360
Advanced App Shrinking Techniques
cbeyls
2
150
Cloudflare Workers x AWS Lambdaの組み合わせユースケース / Cloudflare Workers x AWS Lambda Combination Use Case
seike460
PRO
2
310
Namespace on read
tagomoris
2
370
Terraformテスト入門
msato
0
520
I/O Extended Android in Korea 2024 ~ Whats new in Android development tools
pluu
0
250
Featured
See All Featured
Product Roadmaps are Hard
iamctodd
PRO
48
10k
ParisWeb 2013: Learning to Love: Crash Course in Emotional UX Design
dotmariusz
105
6.8k
Building Effective Engineering Teams - LeadDev
addyosmani
47
2.2k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
502
140k
Infographics Made Easy
chrislema
238
18k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
360
22k
Imperfection Machines: The Place of Print at Facebook
scottboms
262
13k
jQuery: Nuts, Bolts and Bling
dougneiner
61
7.4k
Designing for humans not robots
tammielis
247
25k
A Modern Web Designer's Workflow
chriscoyier
689
190k
Art, The Web, and Tiny UX
lynnandtonic
291
20k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
36
9.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