Article 6MVJB CodeSOD: Scoring the Concatenation

CodeSOD: Scoring the Concatenation

by
Remy Porter
from The Daily WTF on (#6MVJB)

Today's a simple one. We've all seen code that relies too heavily on string concatenation and eschews useful methods like Join.

Nick L sends us this VB.Net example, written by a slew of mechanical engineers.

 PartSearchDescription = _ dFrameType + _ dFrameSize + _ dSYZD + _ dPoles + _ dBearingType + _ dBearingInsulated + _ dTerminalBoxType + _ dMBBreatherDrain + _ dTerminalBoxSH + _ dMBServitPost + _ dMBNotes + _ dStandoffs + _ dStatorGnd + _ dLA + _ dCT + _ dMeteringCT + _ dSC + _ dIrisPartialDischarge + _ dLocation + _ dWOrientation + _ dStatorRTD + _ dBearingRTD + _ dBearingThermocouples + _ dTypeEE + _ dTypeJJ + _ dTypeKK + _ dTypeTT + _ dMainFrameSH + _ dThermostats + _ dSepAuxBoxes + _ dRotation + _ dAPI + _ dMCI + _ dFlanges + _ dIP55 + _ dCPLG + _ dPumpBrkt + _ dINPRO + _ dOilMist + _ dPipeExtensions + _ dCLO + _ dFloodLube + _ dwFlanges + _ dwSightFlow + _ dSumpHeater + _ dGemsPak + _ dSideDucts + _ dVAD + _ dLNFH + _ dShimPack + _ dAdapter + _ dBreather + _ dServitPost + _ dSolePlate + _ dDimensions + _ dGNDBrush + _ dGNDPads + _ dGNDStrap + _ dProbes + _ dKeyphasor + _ dTransmitter + _ dTachometer + _ dDialTherm + _ dDPS + _ dAccelerometer + _ dVelometer + _ dOptionNotes + _ dAdditionalNotes + _ dNoiseLevel + _ dLeads + _ dShaft + _ dSO + _ dLI + _ dCustomer

That's... a lot. It's basically throwing every field into a single string, separated by "_". Which you know that means the other side, whatever it may be, has to unpack them with a split. If you don't know what serialization is, I suppose it makes sense.

I also see a lot of what looks like Hungarian notation, but every field starts with d or dw, and I doubt that dCustomer, dLocation, and dGNDStrap are all the same type as dNoiseLevel. In fact, this may be the worst use of Hungarian I've ever seen- at best Hungarian symbols are more noise than signal, but this one is just pure static. Even if they're describing the purpose of these fields ("d for data member"?), it's basically repetitive and pointless.

otter-icon.png [Advertisement] Otter - Provision your servers automatically without ever needing to log-in to a command prompt. Get started today!
External Content
Source RSS or Atom Feed
Feed Location http://syndication.thedailywtf.com/TheDailyWtf
Feed Title The Daily WTF
Feed Link http://thedailywtf.com/
Reply 0 comments