How to Work with Legacy Code ☠️

  Рет қаралды 17,772

DevTips

DevTips

Күн бұрын

Пікірлер: 39
@RodiW91
@RodiW91 6 жыл бұрын
Thank you so much GUYS 😁 Really appreciate it! It feels good to know that there are more than just one way to solve the problem. I’m getting that book ASAP! And for the people in the comment section, Thank you so much for sharing your experience!
@chanlito_
@chanlito_ 6 жыл бұрын
BOSS: You will be working with our legacy code from now on. ME: Here's my resignation letter.
@mtheoryx83
@mtheoryx83 6 жыл бұрын
A rewrite is ALWAYS a bad idea... UNTIL it's not. Here are some problems, some were mentioned in the video: You have parallel development. You aren't writing new bug-free code, so you also have parallel bugfixes. Also, you must deploy 100% feature parity, there is NO iteration. The legacy product went through a LOT of iteration and bugfixing. To the customer, your rewrite must be 100% feature complete, and 100% bug-free. Which is impossible.
@garybarrett4881
@garybarrett4881 4 жыл бұрын
I thought from the thumbnail that this was going to be a discussion about the Michael Feathers book but it’s only mentioned in passing while they reminisce about past projects.
@brianhogg358
@brianhogg358 6 жыл бұрын
You guys are just describing my every day right now.
@benedikt7846
@benedikt7846 2 жыл бұрын
You are literally asking all the questions in my head right now 🤝
@Neppord
@Neppord 6 жыл бұрын
I once worked on a code base where you could find classes named MyFirstClass.
@lukedonnet9715
@lukedonnet9715 6 жыл бұрын
I once worked with code base with a class named FooBar
@Neppord
@Neppord 6 жыл бұрын
@@Simon-xi8tb what makes you say that? Both what makes it personal and why would classes mean a failure to you?
@AkkayHT228
@AkkayHT228 4 жыл бұрын
I worked on code with class A12_02_2020{} // update this name every day
@emanonmax
@emanonmax 6 жыл бұрын
I had an internship at a pretty big firm (not like google but still making millions each year) and their entire codebase was in Delphi. Just because the founder used to develop in Delphi and "wanted to understand what his employees wrote". Their IDE had a memory leak so it was common practice to close and start the IDE again each 20 minutes. And the IDE was no longer maintained. My talk-to-person also told me that its usual for new employees to take a year to get into the codebase.
@garagavia
@garagavia 4 жыл бұрын
Good episode! Helps get me thorough my work day at the home office
@SuprunAlexey
@SuprunAlexey 6 жыл бұрын
Very nice quality of video! Good job 👏🏻
@sweLogan
@sweLogan 6 жыл бұрын
It's just a little fix you should do, they said 3 weeks ago ...
@chrsbll
@chrsbll 6 жыл бұрын
My experience with legacy code has always been far from pleasant. And it usually involves transitioning from initial confusion, through to anger, followed by incremental stages of understanding, and finally into contemptuous abandon - because it's always culminated in the realisation that the person(s) responsible for the code didn't care and were likely subject to the exact same "just make the thing work" external pressure that only grows with time. Although I will at least add a comment of apology when I've knowingly slapped a bandaid on code cancer.
@OfficialDevTips
@OfficialDevTips 6 жыл бұрын
Haha i can totally relate. Thanks for sharing!
@pureretro5979
@pureretro5979 6 жыл бұрын
I used to work for a software company where parts of the application were considered 'black boxes' as none of the dev knew completely how the code worked. They would pass data in and get data out and, at times, post process the output to get the results they wanted. No one wanted to spend the time and money to rewrite these parts of the code base. It was a shame as new features would often get dropped because of the development overhead in dealing with this code.
@orangecoder3416
@orangecoder3416 Жыл бұрын
thank you so much, GUYS!
@dmitryponyatov2158
@dmitryponyatov2158 5 жыл бұрын
Is it required to build some special translator or transpiler which can eat legacy code, do analysis which we want on the codebase and throw out some Java code with reborned app?
@lynettechua3031
@lynettechua3031 6 жыл бұрын
This is very helpful!
@Softwareengineeringdev
@Softwareengineeringdev 6 жыл бұрын
Well Explained !
@Neppord
@Neppord 6 жыл бұрын
That book is sooo good. But it's less applicable if you don't have a compiler or you may lint or type check your code.
@ravenbergdev
@ravenbergdev 5 жыл бұрын
I like how you just eat food in the meanwhile
@dmitryponyatov2158
@dmitryponyatov2158 5 жыл бұрын
Git it first, its the first critical thing you must do Make legacy raker branch, rebuild it on a clean virtual machine to be shure that there are no errors in build and deployment system Interactuve debugger the only tool you can do anything Draw huge amount of schemes manually with paper and pencil, to grok intrtnal structure Cover all existing code wiyh tests, while not doing any change in this code Start to do tiny refactoring steps and test suite on every change Rollback to previuos version, or use meld fir comparing code with original
@NBGTFO
@NBGTFO 6 жыл бұрын
I have heard the claim that rewriting legacy code is almost always a mistake. While I can agree that rewriting code just for the sake of it is the wrong approach, I can't agree that it is a bad thing when done right for the right reasons. When you have hacks doing it then sure, it won't turn out well. I've done a few rewrites of legacy systems over the years and never had any problems and the result was always praised as being better than the original. So I can't completely get behind that claim.
@GifCoDigital
@GifCoDigital 6 жыл бұрын
Seeing as rewrites for the "right reasons" are the "almost never" case then you DO agree that rewriting legacy code is almost always a mistake.
@alineoliveira2554
@alineoliveira2554 6 жыл бұрын
Pulp fiction. I Love you GUYS.
@zeocamo
@zeocamo 6 жыл бұрын
i got the task of working with a app that was build in a php-cms and then a other php-cms copy then make to replace it and the way this then was publish was just copy the coming cms in to the old one, and then other guys then modified both cms systems so must that the time to make any thing new in it was just ... well, fix this by writing down all the features i could find and then talking with customers, i made a new node.js app, with no real problems, it was just so easy, but i was a little lucky, plus node.js or more like JS is so easy to work with, you do not need to use the high amount of time that is needed for languages with static types.
@mvargasmoran
@mvargasmoran 6 жыл бұрын
What I do sometimes is to find smaller cases of pain. let's say a widget... and rewrite that, not all the system that feeds data to the widget. just the widget. and go on, and on, and on ... The other most important thing to approach like that is to have a team supporting you, if you're alone tasked with solving the widget in page B instead of fixing the widget itself... you the team to be aboard with then applying the new fixed/improved widget to the whole site when time's available.
@zeromodulus1679
@zeromodulus1679 3 жыл бұрын
incremental rewriting? that makes sense. Rewriting a software system piece by piece.
@mvargasmoran
@mvargasmoran 3 жыл бұрын
@@zeromodulus1679 I like to call it: "cheaper code" I can just re-write it.
@dmitryponyatov2158
@dmitryponyatov2158 5 жыл бұрын
You guys did not hear about state machine maybe where there switch inside infty loop. Or that is more probable legacy spaghetty maker did not know that idea, and monkey patched this state loop.
@ahmoahmic1393
@ahmoahmic1393 4 жыл бұрын
Working on legacy project sucks.I am working on core banking application for 6 months .The code was written in 2004 and it is garbage .First you need to learn JSF and JSF sucks.Methods have 300-600 lines of code and strange logic.One method can go on Db for 6x times and debugging is hell.Working on this projects is not worth a money and stress.There is no progress because you are fixing old code and use someones logic that maybe is not good.You can only learn bad programming practices .You should be up to date with newest technology for this example Java with REST and Angular a not with Java and JSF or JSP
@sylvestrealexandre3800
@sylvestrealexandre3800 6 жыл бұрын
I do rub my neck with some tape too !
@OfficialDevTips
@OfficialDevTips 6 жыл бұрын
Hahaha TMI
@Saiphes
@Saiphes 6 жыл бұрын
It's not real! It's a guise! Also, what is a book?
@giorgos-4515
@giorgos-4515 4 ай бұрын
objectively wrong title and thumbnail, if you wanna talk about the book dont put it in the thumbnail come onnn
@TheDaryls13
@TheDaryls13 18 күн бұрын
I believe you should work on your video editing and cut all unnecessary content (eating telling about your life and so on). Very painful to watch at times
Ctrl-Alt-Del: Learning to Love Legacy Code - Dylan Beattie
56:47
NDC Conferences
Рет қаралды 134 М.
Testing Legacy Code Elliotte by Rusty Harold
1:00:49
Devoxx
Рет қаралды 20 М.
Жездуха 41-серия
36:26
Million Show
Рет қаралды 5 МЛН
Непосредственно Каха: сумка
0:53
К-Media
Рет қаралды 12 МЛН
Refactoring Legacy Code: STEP BY STEP (Part 1)
17:04
Continuous Delivery
Рет қаралды 33 М.
Our favourite ES2018 features 💖
26:04
DevTips
Рет қаралды 22 М.
What is legacy code?
6:51
Codecademy
Рет қаралды 10 М.
Understanding Legacy Code with TCR (test && commit || revert)
11:59
Working with code written by someone else
10:25
Codecademy
Рет қаралды 26 М.
Testing and Refactoring Legacy Code
1:17:08
Sandro Mancuso
Рет қаралды 109 М.
Unconditional Code • Michael Feathers • GOTO 2018
44:19
GOTO Conferences
Рет қаралды 59 М.
Teaching CSS to a Coder 🙀 (How to Lazy Load Images)
25:04
Trying Docker for the First Time 📖 Many Learnings!
50:42
How To Think Like A Programmer
1:00:07
Coding Tech
Рет қаралды 2,1 МЛН