Click here to Skip to main content
15,913,587 members
Home / Discussions / Design and Architecture
   

Design and Architecture

 
QuestionDiscussion - Backward Compatibility Implementation Strategies Pin
Lior Cohen9-Oct-15 0:00
Lior Cohen9-Oct-15 0:00 
Background

In my workplace there is a debate on two backward Compatibility (BC) implementation approaches. I am not talking on the question if our code need to be BC, this is given and a consensus. The question is how to do it in the code level.

Lets assume that we have CodeA with inputA and resultsA and newer evolved code CodeB.
The Code, of course, knows to identify if the input is A or B.
Lets assume that ~20% of the code functionality was changed.
Lets assume that each version footprint is 1Mb.
The BC requirement is that CodeB with InputA will provide ResultsA.

Strategy 1 – if in the top + code duplication

One approach which is led by the more agile side says:

When I evolve my code from A to B, I don't want to think about BC. I will do it as if this was the very first (ever) code. Then in the last stage I will wrap both CodeA and CodeB by a switcher in the most higher level that will call the full old codeA when he sees InputA. I know it is code duplication but binary size is no concern these days and my newest code is always clean and not carry the old deprecated code. When code A will not be necessary anymore few years from now I will throw it away and will be left with B (or C, D ...). I know this is not elegant but time to market is more important and again even if I have 10 versions together it is only 10Mb.

Strategy 2 – if in the fine grained bottom level

Second approach which is led by the more classical "by the book" SW engineering says:

When I evolve my code from A to B I will put a BC handling (if or whatever) on the fine grain lower level changed functionality (functions, methods, lines …). After all it is just 20%. I know it is tiresome and my one code will be with ugly BC handling on many lines but I have at least one consistent and compact code and not huge code with A,B,C,D,E full versions inside.

What do you think? Who is right? Will be happy to hear why, cons and pros + ref to reading on this subject.
AnswerRe: Discussion - Backward Compatibility Implementation Strategies Pin
Eddy Vluggen9-Oct-15 1:34
professionalEddy Vluggen9-Oct-15 1:34 
GeneralRe: Discussion - Backward Compatibility Implementation Strategies Pin
Lior Cohen9-Oct-15 1:46
Lior Cohen9-Oct-15 1:46 
GeneralRe: Discussion - Backward Compatibility Implementation Strategies Pin
Eddy Vluggen9-Oct-15 2:41
professionalEddy Vluggen9-Oct-15 2:41 
GeneralRe: Discussion - Backward Compatibility Implementation Strategies Pin
Lior Cohen9-Oct-15 6:26
Lior Cohen9-Oct-15 6:26 
GeneralRe: Discussion - Backward Compatibility Implementation Strategies Pin
Eddy Vluggen10-Oct-15 3:49
professionalEddy Vluggen10-Oct-15 3:49 
AnswerRe: Discussion - Backward Compatibility Implementation Strategies Pin
Gerry Schmitz10-Oct-15 8:48
mveGerry Schmitz10-Oct-15 8:48 
AnswerRe: Discussion - Backward Compatibility Implementation Strategies Pin
Avani Ass23-Nov-15 22:41
Avani Ass23-Nov-15 22:41 
Suggestioncustom Css not working on MAC operating system Pin
Gurjit Singh8-Oct-15 21:09
Gurjit Singh8-Oct-15 21:09 
GeneralRe: custom Css not working on MAC operating system Pin
Pete O'Hanlon8-Oct-15 21:47
mvePete O'Hanlon8-Oct-15 21:47 
QuestionNeed Help on IEEE Paper"Privacy Preserving Ranked Multi-Keyword Search for multiple data Owners in cloud computing" Pin
ADITYA.JADHAV998-Oct-15 0:55
ADITYA.JADHAV998-Oct-15 0:55 
AnswerRe: Need Help on IEEE Paper"Privacy Preserving Ranked Multi-Keyword Search for multiple data Owners in cloud computing" Pin
Pete O'Hanlon8-Oct-15 1:28
mvePete O'Hanlon8-Oct-15 1:28 
QuestionRe: Need Help on IEEE Paper"Privacy Preserving Ranked Multi-Keyword Search for multiple data Owners in cloud computing" Pin
Paul Conrad13-Oct-15 5:21
professionalPaul Conrad13-Oct-15 5:21 
QuestionLaptop Problem with Black Screen Pin
h5h62-Oct-15 10:56
h5h62-Oct-15 10:56 
AnswerRe: Laptop Problem with Black Screen Pin
Kaaron7-Oct-15 14:19
Kaaron7-Oct-15 14:19 
QuestionIn fear of bloated Statergy Pattern Implementations Pin
popchecker22-Sep-15 21:03
popchecker22-Sep-15 21:03 
AnswerRe: In fear of bloated Statergy Pattern Implementations Pin
Eddy Vluggen22-Sep-15 23:27
professionalEddy Vluggen22-Sep-15 23:27 
SuggestionRe: In fear of bloated Statergy Pattern Implementations Pin
Richard Deeming23-Sep-15 1:49
mveRichard Deeming23-Sep-15 1:49 
AnswerRe: In fear of bloated Statergy Pattern Implementations Pin
jschell3-Oct-15 7:04
jschell3-Oct-15 7:04 
QuestionCan we configure team foundation server (TFS) on our local machine such as windows 7 or windows 8 Pin
Anjani Rajdev22-Sep-15 3:11
Anjani Rajdev22-Sep-15 3:11 
QuestionWindows 10 System Colors Pin
jung-kreidler11-Sep-15 1:52
jung-kreidler11-Sep-15 1:52 
QuestionSOLID Principles, Three Layers... Is this okey? Pin
MarkosElCojudo5-Sep-15 8:35
MarkosElCojudo5-Sep-15 8:35 
AnswerRe: SOLID Principles, Three Layers... Is this okey? Pin
Eddy Vluggen10-Sep-15 12:04
professionalEddy Vluggen10-Sep-15 12:04 
AnswerRe: SOLID Principles, Three Layers... Is this okey? Pin
Nathan Minier30-Sep-15 7:08
professionalNathan Minier30-Sep-15 7:08 
QuestionFast Name Matching Pin
RichardGrimmer2-Sep-15 2:13
RichardGrimmer2-Sep-15 2:13 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.