Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

.NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code

34 views

Published on

The world runs on legacy code. For every greenfield progressive web app with 100% test coverage, there are literally hundreds of archaic line-of-business applications running in production - systems with no tests, no documentation, built using out-of-date tools, languages and platforms. It’s the code developers love to hate: it’s not exciting, it’s not shiny, and it won’t look good on your CV - but the world runs on legacy code, and, as developers, if we’re going to work on anything that actually matters, we’re going to end up dealing with legacy. To work effectively with this kind of system, we need to answer some fundamental questions: why was it built this way in the first place? What's happened over the years it's been running in production? And, most importantly, how can we develop our understanding of legacy codebases to the point where we're confident that we can add features, fix bugs and improve performance without making things worse?

Published in: Education
  • Be the first to comment

  • Be the first to like this

.NET Fest 2018. Dylan Beattie. Ctrl-Alt-Del: Learning to Love Legacy Code

  1. 1. Ctrl-Alt-Delete Learning to Love Legacy Code t WITH PASSION TO TECHNOLOGY .NET CONFERENCE #1 IN UKRAINE, KYIV 2018 Dylan Beattie @dylanbeattie
  2. 2. Ctrl-Alt-Delete Learning to Love Legacy Code t WITH PASSION TO TECHNOLOGY .NET CONFERENCE #1 IN UKRAINE, KYIV 2018 Dylan Beattie @dylanbeattie
  3. 3. @dylanbeattie • Building websites since 1992 • CTO @SkillsMatter • London .NET User Group • www.dylanbeattie.net • dylan@dylanbeattie.net
  4. 4. https://www.reddit.com/r/ProgrammerHumor/comments/58lzgc/legacy_code/
  5. 5. https://github.com/dotnet/BenchmarkDotNet/src/BenchmarkDotNet/Extensions/ReflectionExtensions.cs
  6. 6. "Legacy code is simply code without tests" - Michael Feathers
  7. 7. Legacy Code: "Code that's too scary to update and too profitable to delete" https://twitter.com/jbrains/status/998951712546279424
  8. 8. http://oldschoolfrp.tumblr.com/image/101938448668
  9. 9. Serverless F# microservices ASP.NET with 'some tests' Visual Basic 6 on Windows XP Excel Spreadsheets
  10. 10. RESUMÉ • Angular (3 months) • Blazor (6 months) • WebAssembly (3 days) • Rust (4 weeks) • Kotlin (2 weeks) • Elm (10 minutes) RESUMÉ • C# (15 years) • SQL Server (25 years) • HTML (20 years)
  11. 11. TRUST CONTROL UNDERSTANDING
  12. 12. Hamlet Moby Dick The Brothers Karamazov The Lord of the Rings Atlas Shrugged War and Peace Linux Kernel Mono Lines Lines
  13. 13. Hamlet Moby Dick The Brothers Karamazov The Lord of the Rings Atlas Shrugged War and Peace Linux Kernel Mono Lines Lines
  14. 14. Observation Hypothesis Prediction Experiment Analysis Communication
  15. 15. # /etc/hosts 127.0.0.1 api.payments.mycompany.com 127.0.0.1 mail.mycompany.com 127.0.0.1 stockcontrol.mycompany.com
  16. 16. IT HAS BEEN DAYS SINCE OUR LAST LEGACY CODE INCIDENT 29
  17. 17. OUR DEFINITION OF "DONE" qCode deleted qGitHub repos archived qDatabases offlined qServers decommissioned qTeam at the beach qDrinking beer
  18. 18. Ctrl-Alt-Delete Learning to Love Legacy Code t WITH PASSION TO TECHNOLOGY .NET CONFERENCE #1 IN UKRAINE, KYIV 2018 Dylan Beattie @dylanbeattie

×