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
Michał Łomnicki
November 21, 2012
Technology
78
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Having fun with legacy apps
Michał Łomnicki
November 21, 2012
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
140
[PL] Transakcje w bazach danych
mlomnicki
1
290
Ruby Tricks 2
mlomnicki
3
79
SchemaPlus
mlomnicki
1
49
Other Decks in Technology
See All in Technology
ボトムアップ文化が強い組織で セキュリティをどう根付かせていくかの現在進行形の話 / Making Security Stick in a Bottom-Up Organization
yamaguchitk333
0
210
事業価値と Engineering 2026年度版
recruitengineers
PRO
45
22k
今こそ聞きたいソフトウェア設計 ドメイン駆動設計再入門
masuda220
PRO
17
7k
AI駆動開発は個人技からチーム戦へ:組織でAIを使いこなすための実践設計
moongift
PRO
0
490
MIRU 2026 チュートリアル
keisuke198619
0
880
ガバメントクラウドでのランサムウェア対策
techniczna
2
1.1k
JavaScript 研修 (2026)
recruitengineers
PRO
2
480
トヨタ⽣産⽅式(TPS)⼊⾨
recruitengineers
PRO
3
680
20260608_Codexの可能性_ノンプログラマー向け_大城追記
doradora09
PRO
0
780
サイバー捜査員研修(後半)
nomizone
1
830
AI時代の強いチームの作り方
yuukiyo
26
16k
関東Kaggler会発表資料
takoi
1
200
Featured
See All Featured
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.5k
SEO for Brand Visibility & Recognition
aleyda
0
4.7k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
3
1.1k
A Modern Web Designer's Workflow
chriscoyier
698
190k
Navigating Weather and Climate Data
rabernat
0
470
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
890
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
850
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.1k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.2k
Technical Leadership for Architectural Decision Making
baasie
3
470
The Invisible Side of Design
smashingmag
301
52k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
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