Devils in Disguise

Devils in Disguise, in no particular order, and in the context of Modern non-trivial Software Craft:

  • Data Binding of UI Controls and Model
  • Statics, which is another name for Globals
  • Dependency Injection until you use a 3rd-party library you can trust to take care of it (just because that allows you to throw your hands in the air, point to their QA process and say you trust it until proven too faulty for your usage)
  • Thread-Safe Singletons
  • Extension Methods in .NET, as they MUST be static
  • Inheritance, at least in single-inheritance languages (and no: .NET Interfaces don’t count as multiple inheritance, sorry)
  • Web Browser Sessions
  • Equality of Generic Data Types (in Strongly-typed languages, but not much better in weakly-typed languages)
  • Public data members
  • Drag-n-Drop Designers</emstrong
  • Generic ‘Bags’ of data
  • “One-liners”

I’m sure I’m forgetting some…
Regardless, if you encounter 3+ during a single working session, you should definitely Stop and Reconsider.



About FR

Software Craftsman

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s