The C# code-base I work on has hundreds of places where I have felt a boolean expression could have been used to simplify the code substantially.
…or “How to improve your appalling ADSL speeds to what they told you you’d get speeds”
…or “How I split my ADSL and telephone signals and shoved them down a Cat5e cable”.
I’ve just worked on a little support problem that was quite interesting – although not in a good way – as unfortunately it demonstrates failures at so many stages of the specification and development process that I am quite disappointed to be associated with it. Associated, but not the cause of it, to be clear
Yesterday I covered the implementation details of DateTime and SmallDateTime datatypes in SQL Server 2005. I approached the issue of testing dates to see if they fell on a particular date… but then stopped-short of some fairly useful (but arcane) stuff about rounding dates.
Today I am enthused to write about the DateTime and SmallDateTime datatypes in SQL Server 2005 (and possibly this also applies to 2008, although that has additional date and time types). I am driven to write this because I have seen a number of issues relating to their use in queries and one in particular that is a real annoyance to me – even if I have to admit that it is completely and utterly pedantic (most of the time).
A few months ago, our client had a ‘Compliance’ team visit. It was a nightmare. Worse than the general guff Marketing / Sales Departments come up with… or those nasty little changes that are all designed to improve the user experience (you know the ones; where you have to turn some design or code on its head, just because the users are apparently totally unable to understand ‘X’ or ‘Y’*). Anyway, I’m not exactly sure what we were meant to be complying to, but some of the changes were so arbitrary that we could not think of a single justification for them.
A very personal note this time. Last week I released a project that was pretty-much the largest single release that I’ve worked on for my current employer.
Like many systems, the history of this one is that as customer applications made their way through the relevant processes, the system recorded various information about the processes that happened and how they worked out. The system then used the presence or absence of those success / fail records to decide what needed to be done next.
Recently, I’ve noticed that some developers, while fully understanding what a lookup table is for in terms of normalising data, miss opportunities to use them in additional ways. This post is therefore about those further uses for lookup tables that will really give you an opportunity to streamline your code.
‘Lookup Tables’ are commonly created in relational data models and databases as part of the normalisation process. For example, instead of having address rows in an address table that continually repeat the words ‘HOME’ or ‘WORK’ to indicate if this is a customer’s home or work address, we might introduce an ‘AddressType’ table, with a primary key of ‘AddressTypeId’. Our AddressType table may look like this:
AddressTypeId Name 1 Home 2 Work