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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Arjan van der Gaag
July 08, 2015
Programming
270
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Lotus: because sometimes you need to reinvent the wheel
Arjan van der Gaag
July 08, 2015
More Decks by Arjan van der Gaag
See All by Arjan van der Gaag
How to Lead a Team by Doing Nothing
avdgaag
8
930
Getting to know Elm
avdgaag
0
180
Beating Impostor Syndrome (NordicRuby 2016)
avdgaag
0
98
Hanami: because sometimes, you need to re-invent the wheel
avdgaag
2
610
Use your database for… Validations! Caching! Logic!
avdgaag
0
120
Web development that hurts even less: taking lessons from Rails
avdgaag
1
380
Ruby acting up: A look at how Celluloid implements the actor model for concurrency in Ruby.
avdgaag
0
330
Ecto: a database wrapper and language integrated query for Elixir
avdgaag
0
490
Using Awk: An old-school text processing tool with surprising versatility
avdgaag
1
430
Other Decks in Programming
See All in Programming
数百円から始めるRuby電子工作
tarosay
0
150
楽しそうなつよつよエンジニアと目が死んでる僕/A brilliant engineer having a blast, and dead-eyed me.
3l4l5
2
180
為什麼你並不需要ViewModel / No, you don't need a ViewModel
lovee
1
490
Cloudflare is Agents
chimame
0
160
PHP Application における Kubernetes 内 gRPC 通信
ganchiku
0
590
ITヒヤリハットを整理してみた ~ライフサイクルと原因から考える再発防止策~
koukimiura
1
140
PHP に部分適用が来るぞ!……ところで何それ?おいしいの? #phpcon / phpcon-2026
shogogg
0
650
いまどきの Codex で開発する visionOS アプリの開発スタイルについて
karad
0
140
Go 1.27 における memory allocation の高速化
andpad
0
170
自動化したのに回らないテスト運用の壁ーAI時代の品質責任と生産性
mfunaki
0
130
Lean は証明の正しさを確認するためだけのツールって思ってませんか?
inoueasei
1
160
AI Engineeringは、AIプロダクトだけのものか? 〜AIがソフトウェアを作る時代の新しい当たり前〜 / No AI in your product. AI Engineering in your development.
rkaga
4
410
Featured
See All Featured
Paper Plane (Part 1)
katiecoart
PRO
1
10k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
350
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
640
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
64
56k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
380
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
290
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
250
So, you think you're a good person
axbom
PRO
2
2.1k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
200
Large-scale JavaScript Application Architecture
addyosmani
515
110k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
エンジニアに許された特別な時間の終わり
watany
108
250k
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