Tag Archives: humor

Some anti-patterns

Another college pal, a fellow traveler in the world of the computer sciences, wrote up this list for me. Call him Shenmage, and encourage him to set up the contributor’s account I made him here, the lazy bum. -Fish

As a software engineer, I tend to come across code bases of various levels of quality. To make light of some of the oddities we encountered, myself and some of my co-workers started writing up the logical conclusions of the code structures. Each of these was encountered to some degree or another (though not necessarily as anything beyond a single method). Enjoy, and feel free to add your own to the comments section.

Walmart Pattern

  • Has everything you could ever want
  • You can’t find anything
  • Sometimes have to get multiple of something when you only want one

Sam’s Club Pattern

  • See Walmart Pattern
  • Can only get things in bulk (no single entities)

Titanic Pattern

  • Everything is well structured and coded to the dot
  • Only has a manual process for recovering the system (with potentially catastrophic consequences)

Power of Attorney Pattern

  • Pass SQL commands directly to a web service to get executed

Lottery Pattern

  • Retrievals are randomly generated
  • Only occasionally get what you want

Tardis Pattern

  • Alters history of an object
  • Does more actions than requested
  • Doesn’t do anything exactly as you request

Leaning Tower of Pisa Pattern

  • Perfectly structured but tightly coupled to outdated tech

Starbucks Pattern

  • More identical web services than you need
  • Expensive computationally

Monopoly Pattern

  • Multithreaded, but one thread eventually eats up all available resources

Glass House Pattern

  • Security on a system was completely ignored on critical components

Magic 8 Ball Pattern

  • Calls return only boolean values
  • ‘Maybe’ is included as a boolean value
  • Multiple ways to say each value

Speakeasy Pattern

  • Webservice is completely undocumented, so have to know precisely what to send where to use it

Narcissus Pattern

  • Class depends upon itself and uses itself to accomplish tasks

Lazy Inspector Pattern

  • Methods that should do tasks instead return true

Scorched Earth Pattern

  • Update method drops and recreates table

“What’s in the box?!” Pattern

  • Large, untyped, container objects are the only objects passed around the system

OCD ORM Pattern

  • Verifies all retrievals by retrieving again