Explicit Is Better Than Implicit


This is part of PEP 20 – The Zen of Python.

Think on a good mystery novel or show. With the murderer revealed the line of evidence must be clear. Any detail is pulled out only during the last show-down makes poor whodunnit. Only those things the audience knows about can be implicit.

The same goes for software. Explicit does not mean that the logic is obfuscated with lots of scaffolding. It does mean that when the code references something, a reader of said code can follow that something back to source and/or documentation.

This is why I am not comfortable with dependency injection. I am reading some code that all of a sudden refers to an instance of an object that has not been defined or instantiated anywhere I can find.

DRY is a fine principle. I continually refactor my code so that I do not have the same algorithms in more than one place. But, I am happy to explicitly check authorisation at the start of each servlet where I can see it. I do not consider this scaffolding or breaking the DRY principles – I am just explicitly telling the servlet what I expect.

Advertisements

Leave a Reply

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

WordPress.com Logo

You are commenting using your WordPress.com 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 )

Google+ photo

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

Connecting to %s