Simply put: try to make your conditions as flat as possible. This makes them generally easier for the humans to parse and understand. Continue reading
Monthly Archives: March 2016
Individual Exception Classes are Monstrously Overweight
My last post was you can avoid a lot of waste in a project by recognizing program logic errors, and keeping the exception being thrown very lightweight. In this post I talk about a particularly heavy exception, the individual exception class, which is constructed to communicate just one thing. They are just too heave for most use, and here is why. Continue reading
Two Kinds of Exceptions
An exception is a message from the system to the user about something that the program can not handle. There are a couple of main categories of exceptions: environmental and program logic. They warrant quite different treatment. Continue reading
Resetting Passwords the Right Way
Never send a password through the email. There is never any need to do so. If your program does this for any reason, it is not following the best practice. Continue reading
Constant Abuse
Constants can be useful, but constants can also be abused making code hard to read because you always have to go look somewhere else in the code just to understand what you are reading. This post is about a clear example of how constants can be used to make code much harder to maintain, particularly when they are arbitrary symbolic representations of something that is already supposed to act as a constant symbolic value. Continue reading
Brainless Getters & Setters are a Waste
Someone long ago set a pattern that all members should have a getter and setter method. Some are persuaded that this is OO and this is encapsulation, so a lot of inexperienced programmers do this by default. But this is a problem. Continue reading
Don’t Baby Your Builds
In a conversation this week, one developer insisted that a special build machine should be built to assure that the build is always comes out the same. My response: if your project is building differently on different machines, then you have a much deeper problem. Continue reading