Click here to Skip to main content
15,913,361 members

The Weird and The Wonderful

   

The Weird and The Wonderful forum is a place to post Coding Horrors, Worst Practices, and the occasional flash of brilliance.

We all come across code that simply boggles the mind. Lazy kludges, embarrassing mistakes, horrid workarounds and developers just not quite getting it. And then somedays we come across - or write - the truly sublime.

Post your Best, your worst, and your most interesting. But please - no programming questions . This forum is purely for amusement and discussions on code snippets. All actual programming questions will be removed.

 
GeneralRe: Connectivity test Pin
MatthysDT1-Feb-12 20:47
MatthysDT1-Feb-12 20:47 
GeneralRe: Connectivity test Pin
Dan Neely10-Feb-12 13:00
Dan Neely10-Feb-12 13:00 
GeneralRe: Connectivity test Pin
VallarasuS2-Feb-12 0:50
VallarasuS2-Feb-12 0:50 
GeneralRe: Connectivity test Pin
kmoorevs2-Feb-12 4:05
kmoorevs2-Feb-12 4:05 
GeneralRe: Connectivity test Pin
Gary Wheeler2-Feb-12 0:19
Gary Wheeler2-Feb-12 0:19 
GeneralRe: Connectivity test Pin
patbob2-Feb-12 6:13
patbob2-Feb-12 6:13 
GeneralRe: Connectivity test Pin
sergiogarcianinja2-Feb-12 2:12
sergiogarcianinja2-Feb-12 2:12 
GeneralRe: Connectivity test Pin
User 48350472-Feb-12 3:23
User 48350472-Feb-12 3:23 
GeneralRe: Connectivity test Pin
Theraot2-Feb-12 5:18
Theraot2-Feb-12 5:18 
GeneralRe: Connectivity test PinPopular
Moshe Katz2-Feb-12 7:13
Moshe Katz2-Feb-12 7:13 
GeneralRe: Connectivity test Pin
MatthysDT2-Feb-12 19:24
MatthysDT2-Feb-12 19:24 
GeneralRe: Connectivity test Pin
RCoate5-Feb-12 16:41
RCoate5-Feb-12 16:41 
GeneralRe: Connectivity test Pin
Moshe Katz6-Feb-12 14:36
Moshe Katz6-Feb-12 14:36 
GeneralRe: Connectivity test Pin
Member 78335217-Feb-12 3:31
Member 78335217-Feb-12 3:31 
GeneralThe beauty that is the default conversion... PinPopular
OriginalGriff31-Jan-12 0:40
mveOriginalGriff31-Jan-12 0:40 
GeneralRe: The beauty that is the default conversion... Pin
BobJanova31-Jan-12 0:43
BobJanova31-Jan-12 0:43 
GeneralRe: The beauty that is the default conversion... Pin
OriginalGriff31-Jan-12 1:01
mveOriginalGriff31-Jan-12 1:01 
GeneralRe: The beauty that is the default conversion... Pin
CDP180231-Jan-12 1:01
CDP180231-Jan-12 1:01 
GeneralRe: The beauty that is the default conversion... Pin
PIEBALDconsult31-Jan-12 2:26
mvePIEBALDconsult31-Jan-12 2:26 
GeneralRe: The beauty that is the default conversion... Pin
CDP180231-Jan-12 2:44
CDP180231-Jan-12 2:44 
GeneralRe: The beauty that is the default conversion... Pin
tgrt1-Feb-12 2:56
tgrt1-Feb-12 2:56 
GeneralRe: The beauty that is the default conversion... Pin
Gary Wheeler2-Feb-12 0:13
Gary Wheeler2-Feb-12 0:13 
GeneralRe: The beauty that is the default conversion... Pin
RobCroll31-Jan-12 11:11
RobCroll31-Jan-12 11:11 
RantEnabling backwards compatibility PinPopular
Chanoch Wiggers30-Jan-12 2:30
Chanoch Wiggers30-Jan-12 2:30 
So this is an approach that proved so successful that it was made into a standard. You're writing a shared library and you're concerned to ensure future compatibility across services. Problems include:

* How to support non built-in types? (e.g. MyCustomType)
* How to support float, int, double, etc?
* How to prevent constantly updating interfaces from complicating builds?

Best approach? Well, how about you convert all your arguments into Strings to transfer across the wire and then convert them back.

Every method has the following signature:

public String[] doSomething(String[] args, String userId)


Then you have a static library that allows:

TypeUtils.stringify(Object object); // native types are supported by simply ""+myVar
Object obj = TypeUtils.fromString(String string, String fromType);


Easy. (Note you may need to cast the object returned from TypeUtils.fromString(). User id is there to ensure security, obviously. You don't have to use the TypeUtils but you are encouraged to, for convenience.

This way, when you swap args[2] and args[3], or when you introduce a new argument at the end, you don't have to declare a new version of the interface.

Simply keep the same version interface jar throughout and require everyone to use the very latest implementation.
This is why I don't program

GeneralRe: Enabling backwards compatibility PinPopular
CDP180230-Jan-12 3:17
CDP180230-Jan-12 3:17 

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.