Click here to Skip to main content
15,905,686 members
Home / Discussions / Design and Architecture
   

Design and Architecture

 
QuestionFrontend JS directly invoking backend services Pin
Member 1220163911-Dec-15 8:44
Member 1220163911-Dec-15 8:44 
AnswerRe: Frontend JS directly invoking backend services Pin
Eddy Vluggen14-Dec-15 6:25
professionalEddy Vluggen14-Dec-15 6:25 
QuestionJava web service code design Pin
Stephen Holdorf18-Nov-15 1:55
Stephen Holdorf18-Nov-15 1:55 
AnswerRe: Java web service code design Pin
Stephen Holdorf20-Nov-15 3:19
Stephen Holdorf20-Nov-15 3:19 
AnswerRe: Java web service code design Pin
Gerry Schmitz20-Nov-15 5:49
mveGerry Schmitz20-Nov-15 5:49 
GeneralRe: Java web service code design Pin
Stephen Holdorf20-Nov-15 6:14
Stephen Holdorf20-Nov-15 6:14 
GeneralRe: Java web service code design Pin
Gerry Schmitz20-Nov-15 6:37
mveGerry Schmitz20-Nov-15 6:37 
GeneralRe: Java web service code design Pin
Stephen Holdorf20-Nov-15 6:59
Stephen Holdorf20-Nov-15 6:59 
GeneralRe: Java web service code design Pin
Gerry Schmitz20-Nov-15 7:24
mveGerry Schmitz20-Nov-15 7:24 
GeneralRe: Java web service code design Pin
Stephen Holdorf20-Nov-15 7:45
Stephen Holdorf20-Nov-15 7:45 
QuestionScaling a Core PHP Project Pin
gouravkaila6-Nov-15 6:47
gouravkaila6-Nov-15 6:47 
AnswerRe: Scaling a Core PHP Project Pin
jschell7-Nov-15 6:22
jschell7-Nov-15 6:22 
QuestionInter-process communications in a desktop client-server app with local server? Pin
markrlondon3-Nov-15 11:01
markrlondon3-Nov-15 11:01 
AnswerRe: Inter-process communications in a desktop client-server app with local server? Pin
jschell3-Nov-15 16:18
jschell3-Nov-15 16:18 
GeneralRe: Inter-process communications in a desktop client-server app with local server? Pin
markrlondon2-Nov-20 18:14
markrlondon2-Nov-20 18:14 
AnswerRe: Inter-process communications in a desktop client-server app with local server? Pin
Eddy Vluggen3-Nov-15 23:41
professionalEddy Vluggen3-Nov-15 23:41 
GeneralRe: Inter-process communications in a desktop client-server app with local server? Pin
markrlondon2-Nov-20 18:14
markrlondon2-Nov-20 18:14 
QuestionWeb service arhitecture for mobile game Pin
golandy29-Oct-15 7:05
golandy29-Oct-15 7:05 
QuestionMaintainable Design Pattern Pin
Lucas A. Martinez18-Oct-15 6:57
Lucas A. Martinez18-Oct-15 6:57 
AnswerRe: Maintainable Design Pattern Pin
Mycroft Holmes18-Oct-15 16:25
professionalMycroft Holmes18-Oct-15 16:25 
AnswerRe: Maintainable Design Pattern Pin
Gerry Schmitz18-Oct-15 23:17
mveGerry Schmitz18-Oct-15 23:17 
AnswerRe: Maintainable Design Pattern Pin
Udayakiran Kallavi29-Oct-15 7:20
Udayakiran Kallavi29-Oct-15 7:20 
QuestionQuestion about Programming Language/Architecture For A Specialized Reporting Tool Pin
Member 120472219-Oct-15 15:46
Member 120472219-Oct-15 15:46 
AnswerRe: Question about Programming Language/Architecture For A Specialized Reporting Tool Pin
Gerry Schmitz18-Oct-15 23:29
mveGerry Schmitz18-Oct-15 23:29 
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.

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.