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
Switching off legacy code using one Symfony com...
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Loulier Guillaume
November 07, 2023
Programming
170
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Switching off legacy code using one Symfony command at a time
Loulier Guillaume
November 07, 2023
More Decks by Loulier Guillaume
See All by Loulier Guillaume
Giving voice to your agents, the Symfony AI way
guikingone
0
32
La recherche sémantique à l'ère de l'IA, mirage ou miracle ?
guikingone
0
30
Demandez et votre application répondra, la recherche sémantique avec PHP et Meilisearch
guikingone
1
120
Building a semantic search experience using PHP and Meilisearch
guikingone
0
250
Symfony UX et le frontend
guikingone
1
99
K6, stresser son application en douceur
guikingone
1
110
Need to search through your data? Heard about Meilisearch?
guikingone
1
290
Meilisearch
guikingone
1
160
SQLite en production ? Et si vous réévaluiez vos options ?
guikingone
1
1.2k
Other Decks in Programming
See All in Programming
スマートグラスで並列バイブコーディング
hyshu
0
120
「AIで開発し、AIを届ける」をEvalでつなぐ 〜AIネイティブに始めるプロダクト開発の実践〜 / Connecting "Develop with AI, deliver AI" with Eval
rkaga
4
4.9k
JavaDoc 再入門
nagise
0
320
The ROI of Quarkus for Spring Boot Applications
hollycummins
0
110
Signal Forms: Beyond the Basics @ngBaguette 2026 in Paris
manfredsteyer
PRO
0
240
「なぜそう決めたのか」を残し続ける仕組み ― Notion AI カスタムエージェント × Slack連携による設計判断の自動記録 - NIKKEI Tech Talk #47
niftycorp
PRO
0
110
jQueryをバージョンアップする前に使いたいjQuery Migrate
matsuo_atsushi
0
200
決定論的オーケストレーションの設計と実装 / Design and Implementation of Deterministic Orchestration
nrslib
3
1.3k
DynamoDBには集計系のクエリがないけどなんとかしたい
musan
1
130
Claspは野良GASの夢をみるか
takter00
0
180
LLMによるContent Moderationの本番運用の裏側と品質担保への挑戦
suikabar
2
570
The NotImplementedError Problem in Ruby
koic
1
710
Featured
See All Featured
Done Done
chrislema
186
16k
Utilizing Notion as your number one productivity tool
mfonobong
4
320
Into the Great Unknown - MozCon
thekraken
41
2.6k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
ラッコキーワード サービス紹介資料
rakko
1
3.6M
GraphQLとの向き合い方2022年版
quramy
50
15k
The Language of Interfaces
destraynor
162
27k
Thoughts on Productivity
jonyablonski
76
5.2k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
250
A Modern Web Designer's Workflow
chriscoyier
698
190k
sira's awesome portfolio website redesign presentation
elsirapls
0
280
The Cult of Friendly URLs
andyhume
79
6.9k
Transcript
Switching off legacy code using one Symfony command at a
time
Greetings
Hellcome Guillaume Loulier / @Guikingone Lead developer @SensioLabs Works mainly
with PHP and Rust Sometimes, I break things, especially legacy ones (and I like that)
Summary 01 - Legacy code is fun 02 - Migrating,
a far far away dream 04 - Symfony to the rescue 05 - Wrapping up 01
Legacy code is fun
Well, it should
Diving into the joke Refu*toring - The process of taking
a well-designed piece of code and, through a series of small, reversible changes, making it completely unmaintainable by anyone except yourself. Jason Gorman
Let the fun begin A legacy code is just an
abandoned one that generate revenues Maintaining legacy code should be easy At least, until it breaks Never needed to migrate PHP 5 code?
Dealing with technical debt Technical debt is ambiguous Yesterday code
is already outdated, sorry Need to migrate it? Bon chance
Keep dreamin’
I made a dream
Time for a wishlist Tracking, being aware of changes, updating
and deleting A new interface? For which use case? What about this method arguments type? Code spread across repositories?
Sadly What about using a dedicated channel? Or using trigger_error?
Or tools like Sentry, OpenTelemetry and many more? What if we’re in a special architecture?
Symfony?
Well…
The full experience Symfony brings a lot of components Could
we bring them together to help us? Look at Rector, PHPStan and more! What if we could “track & switch off” files?
Time to “Switchoff” Built on top of Symfony components and
nikic/PHP-Parser (chief kiss) Attributes for the win! Analyze, check, switch off, repeat Could be used via the CLI / CI
Want a demo?
What’s next?
To sum it up Handling migration is hard, not to
say boring Symfony could ease the process but lack of tools Relying on a framework is a recipe for failure Each project has its own rules / flaws
What about switchoff? Not fully stable (for now) A Symfony
bundle? (Already planned) An HTML dashboard What about a PHPStan / Rector bridge?
Wrapping up