My thinking toolbox consists of the thoughts that I have when designing and coding. At a base level what I am concerned about is basically:
- Will this solve the issue?
- With others understand this?
- Can it be maintained and modified?
- Does this suit the issue?
- How can this effect other code or other developers?
No matter what one does, whether one's deeds serve virtue or vice,
nothing lacks importance. All actions bear a kind of fruit. - Buddha
nothing lacks importance. All actions bear a kind of fruit. - Buddha
Nothing that we do is without side effects and development is no different. When a piece of code is designed or written, does it belong to the engineer that wrote it? Will it ever effect anyone else? How and why code is written can have far reaching effects down stream of it's creation.
One of my concerns for any code that I write is if others can understand it. My test for this is:
- Is the code the right complexity for the issue at hand.
- Are there any hidden levels of indirection (think reflection, property files, references to references, etc) that are not required.
- Is all of the related code in as close proximity to each other as possible? (i.e., scattering like classes in different packages, etc).
- Is the code consistence with other code in the project. Does it look like, act like, does not include libraries that I like but are not really required to the issue?
All of these thoughts go through my mind when developing. When code is written it's not static, it's dynamic, always changing and mostly worked on by something other than the original creator. If I can worry about the downstream effects now, if even just a little bit, then my life is better for me and hopefully for someone else.
Comments
Post a Comment