This general design principle does not mean to never change anything, but to consciously create a paradigm where the same things have the same names and are accessed in the same way as much as possible. Continue reading
Tag Archives: design
Abstraction and Encapsulation
Abstraction and encapsulation are opposite sides of the same coin, and essential to good object oriented software design. Why the, is there a tendency of some programmers to go in exactly the opposite direction? This trend and its implication is discussed below. Continue reading
When are “best practices” less than best?
A “best practice” is a heuristic which is used to guide early stages of a project, in order to set some patterns. When should you use them? More important: when are you justified in ignoring a best practice? Continue reading
Incremental Development
I happened across this excellent and perfect depiction of incremental development. The image addresses on of the key flaws in thinking that lead some agile projects to fail. So let’s discuss a bit. Continue reading
Don’t Fear the Lowly Static Method
When people first learn object oriented programming (is there any other way) they seem to want to abandon all non-member methods (such as static methods) as being anti-object-oriented. This is foolish. There are times for objects, and times for static methods. Continue reading
Specifying Business Hours
Long ago I worked on a project where we needed to specify the hours that a business was going to be open, and to account for all the various difficulties around holidays and other special days. This is what we came up with and it still stands today. Continue reading
Security Absolutism is the Enemy of Security Improvement
Security is an important topic and everyone knows it. This post is about a curious social behavior around implementing security procedures that often works against incremental improvement of security. Continue reading
Robust Web Application Initialization
When a web based application starts up, it should do so carefully to avoid a number of problems. This post outlines the problems you might run into, and a list of coding preparations that can be made to avoid these problems. Continue reading
Error Message should be clear, plain, and direct
This post is about a real error message I received and puzzled through. Luckily, because I was working with open source code, I was able to see a copy of the source, and only then did I understand what the message meant. An error message should not require you to know and understand the source, in order to understand the message, and I think this is the root of the mistake that many programmers make. Continue reading
Usability Means Well-Behaved, even when the User Isn’t
Users of a program found that sometimes, when they went to log in, they did not get a place to enter the username & password. Instead of the normal login prompt, they got a blank screen, and it was completely impossible to login. Sounds like a bad bug that needs to be fixed immediately, but the development team response was even more surprising: this was the user’s fault! Continue reading