3 ms·
At a previous job I inherited a steaming pile of legacy that needed improvement (it was broken and clients were complaining) I went with an approach of being ex
by flukus 9y ago
At a previous job I inherited a steaming pile of legacy that needed improvement (it was broken and clients were complaining) I went with an approach of being explicit about new layers with classes like CompononentV2. This is an often maligned approach but I found it works quite well.
Basically all new code get's written against V2, old code get's slowly migrated as requirements or opportunity allows and sooner or later you hit a point where only a few places are referring to v1 so you can bite the bullet and remove them entirely.
Semantic versioning like this within a project get's beat out of us early as something source control should handle, but source control doesn't handle long slow migrations of code to new layers.