Technical Book Club: Code Complete – High-Quality Routines

I first encountered routines in QBasic, around the time I started high school. I had been using GOTO and GOSUB commands in GW-BASIC for quite some time, but in QBasic, you had the ability to separate the code out from your main program, and to isolate variables from each other. Once I got the hang…


Technical Book Club: Code Complete – Beyond Classes: Packages

Separating classes into groups allows for a further level of abstraction than classes alone. In C#, this is done by the use of namespaces, in Java, this is done using Packages. The end result in either case is that you can ignore the internal details of the contained classes, and focus on the details you…


Technical Book Club: Code Complete – Language-Specific Issues

If you drop a good developer into a project being written in any language, they’ll still be a good developer. The foundations are the same, regardless of the language, but there are some differences that can trip you up if you aren’t careful. These aren’t simply differences in what gets capitalized, or how you import…


Technical Book Club: Code Complete – Reasons to Create a Class

When I started programming in an Object Oriented language, I was of the impression that everything should be a class. If something wasn’t inherently obvious as to how it should be implemented as a class, it must have been because I didn’t understand OOP well enough. It wasn’t until much later that I became comfortable…


Technical Book Club: Code Complete – Design and Implementation Issues

I like the idea of rules of thumb for coding. People a lot smarter than me have done a lot of research to figure these things out, so I figure it’s the least I can do to reap the benefits that come from them. One I heard a while back, and have found to be…


Technical Book Club: Code Complete – Good Class Interfaces

If you haven’t seen a good number of the suggestions in this section being violated, rest assured that you will. I actually cringed at a couple of them, remembering times where I had struggled with overly exposed classes and eroded class interfaces. (and yes, I’m guilty of taking a shortcut that ended up making things…