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
Having fun with legacy apps
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Michał Łomnicki
November 21, 2012
Technology
1
69
Having fun with legacy apps
Michał Łomnicki
November 21, 2012
Tweet
Share
More Decks by Michał Łomnicki
See All by Michał Łomnicki
DDD, Rails and persistence
mlomnicki
1
280
Forget Ruby. Forget CoffeeScript. Do SOA
mlomnicki
1
130
CAP Theorem
mlomnicki
2
130
[PL] Transakcje w bazach danych
mlomnicki
1
270
Ruby Tricks 2
mlomnicki
3
73
SchemaPlus
mlomnicki
1
46
Other Decks in Technology
See All in Technology
韓非子に学ぶAI活用術
tomfook
3
1k
GitHub Actions侵害 — 相次ぐ事例を振り返り、次なる脅威に備える
flatt_security
2
1.5k
GitHub Copilot CLI で Azure Portal to Bicep
tsubakimoto_s
0
240
AI時代のIssue駆動開発のススメ
moongift
PRO
0
260
Bill One 開発エンジニア 紹介資料
sansan33
PRO
5
18k
スピンアウト講座03_CLAUDE-MDとSKILL-MD
overflowinc
0
1.4k
BFCacheを活用して無限スクロールのUX を改善した話
apple_yagi
0
130
DDD×仕様駆動で回す高品質開発のプロセス設計
littlehands
6
2.5k
来期の評価で変えようと思っていること 〜AI時代に変わること・変わらないこと〜
estie
0
110
AIエージェント時代に必要な オペレーションマネージャーのロールとは
kentarofujii
0
140
Sansanの認証基盤を支えるアーキテクチャとその振り返り
sansantech
PRO
1
100
Phase09_自動化_仕組み化
overflowinc
0
1.8k
Featured
See All Featured
What does AI have to do with Human Rights?
axbom
PRO
1
2.1k
Optimising Largest Contentful Paint
csswizardry
37
3.6k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
KATA
mclloyd
PRO
35
15k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.6k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
250
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.6k
Building Adaptive Systems
keathley
44
3k
Code Review Best Practice
trishagee
74
20k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
410
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.2k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
180
Transcript
Legacy Apps @mlomnicki The essence of dealing with legacy apps
is to reduce the number of WTFs down to zero.
Legacy Apps Growing market.
There was an app... Almost 3 years under development 2
teams. 1st from UK, 2nd from India
tests there were some tests! (unit, controllers) over 100 out
of 220 fail
git log fixes - 163 times fix - 144 times
search - 52 times changes - 40 times final issues - 30 times
versions Rails 2.3.5 ruby 1.8 no bundler
WTFs (@club.secretary == current_member || @club.secretary == current_member)
WTFs <%= @payment.new_record? ? '' : '' %>
WTFs if some_condition else do_something
WTFs Member.first(:conditions => ["member_id LIKE #{params[:id]}"])
WTFs if @member.something == sth || @member.somethi ... elsif other_long_conditions
... else very_long_condition && looks_important ...
Logic models controllers views layouts initializers (!)
Everything is awful ruby code JS CSS plugins used
Arkency took control
1. Understand the app It is hard From the beginning
you have to dive into every detail Bugs made by your predecessor become your bugs
2. Tests BBQ heavy no factories or fixtures
3. Code PORO + real unit tests Good Rails code
Nothing fancy yet (no DCI, no usecases...)
4. Upgrade It is all about plugins Moved them to
lib and simplify Do you need them all?
Where is the fun?!
Removing code is fun 1799 files changed, 37303 insertions(+), 78770
deletions(-)
SPA migration is mega fun Realize the rails-way is legacy!
It does not matter how old Rails you have
To fix or to rewrite? None is correct! SPA is
the answer Otherwise your app is still legacy...
Profits Users - SPA enhances their experience Devs - SPA
is better architecture
Time 80% in frontend app 20% in Rails
Gameboxed Engine It is the best thing since Rails Put
pressure on Andrzej to open-source it
Mobile app soon Mobile is so easy now Thank you
SPA
Q&A