Posts on general development topics
[Click to print this article]
Here are the articles I've written on general development topics.
On-line interviewee testing
published: Tue, 28-Jun-2005
At work, we have
several openings for
talented C# and C++ developers, with various areas of expertise (ASP.NET,
multi-tier architectures, web services, compact framework, etc).
To help with the flow of résumés, HR are investigating using on-line testing services to sort the wheat from the chaff. Read more...
New thoughts on writing database applications
published: Wed, 18-May-2005
Over the past few weeks, we, the Architecture team at
Configuresoft, have been
involved in designing the Next Generation architecture for our
product. My area of responsibility is the "middle tier", which ranges
from the layer that accesses the data from the database engine, all
the way up to the presentation layer, the bit just under the UI. Yeah,
lotta work. Read more...
Using TDD when you don't know the technology
published: Mon, 2-May-2005
This came up in a discussion at work. "We need to write code to access
technology X, which uses COM. How do we do it using TDD?" Technology X
is very deep and rich and looking at the API is an exercise in
frustration: how to we get to where we want to be? The task seems
overwhelming. Read more...
Moving to an Agile process
published: Thu, 28-Apr-2005
Recently at work we've been in discussions about introducing a new
development process. We're growing fast enough that it's now time to
rethink how we develop it. The product's options and configuration has
increased in complexity so much that we're relying more and more on
automated testing to increase quality. Although the newer code has
unit tests, unfortunately a lot of the more mature (which actually
implies more thoroughly tested) code is still unit-test-free and is
only shown to work through rigorous acceptance and system tests by the
QA team. Read more...
Sql is so twentieth century
published: Sat, 16-Apr-2005
Sometimes I forget how quaint the SQL language can be. There I am
merrily coding away in C# and .NET within Visual Studio, Intellisense
guiding the way, the compiler saving me from the most egregious
mistakes, and then I have to write a bit of SQL as a stored procedure.
Suddenly it all comes to a screeching halt, not because I don't know
the language, but because there is so little real-time developer
support. Read more...
Exceptional rant
published: Mon, 28-Mar-2005
I found
an
interesting story about
a process-deficient software company this morning (via
Larkware).
The story itself was interesting for sure -- it's about the need for
developers to fix their compiler warnings and keep them fixed, a
proposition with which I heartily concur and follow -- but it was the
comments that got my goat. Read more...
Encapsulation is not Information Hiding
published: Thu, 17-Mar-2005
I came across this article by
Nat Pryce in the PlanetTW blog.
It came at the right moment.
(Update: it'd help if I gave the post a title.) Read more...
Specify IFormatProvider
published: Tue, 15-Mar-2005
This is one of the errors that FxCop spits out and it gets depressing, it happens so often. "Depressing, why?" I hear you ask. Mainly because I've never taken the time to understand what it's on about. Well, tonight I had time to work it out, not that it took a lot of working out. Just one of those things that if you took the time to understand it, it would hold no horrors. (Updated: 15-Mar-2003) Read more...
Unintentional Programming
published: Fri, 11-Mar-2005
We're having a minor discussion here in development about a bug I
found. The bug is completely benign at the moment (indeed, I only
found it through a code review, not through using the product), but
code could easily be written to fire it.
Read more...
Why interfaces?
published: Tue, 8-Mar-2005
Even for those developers who are expert in OOP design and programming principles seem to stumble the first time they come across interfaces. It's hard to see why interfaces are so important compared to, say, pure abstract classes. Read more...
What is good-enough software?
published: Tue, 8-Mar-2005
The problem with the term "good enough software" is that it seems to have a slightly grubby connection: software that's just good enough to pass muster. It isn't polished, it isn't clean, perhaps it isn't even maintainable (a one-off program, for example). Read more...
Business logic in the database
published: Wed, 2-Mar-2005
In my view of multi-tier architectures, the business layer resides in a separate layer from the data storage layer (a.k.a. the database layer), at least when thinking about logical layers rather than physical tiers. In fact, all that appears in the data storage layer are stored procedures to Create, Retrieve, Update, and Delete records (the CRUD procedures). This simple schema has worked pretty well for me in the past. (Updated 3-Mar-05) Read more...
It's all multi-tier, all the way down
published: Tue, 1-Mar-2005
I've been writing a bit recently on multi-tier architectures and the issues that arise when designing, developing, and testing them. Meanwhile, I've also been researching a couple of patterns for an article I'm writing for The Delphi Magazine: Inversion of Control and Dependency Injection. Read more...
Before the rush at Bespokeware
published: Wed, 9-Feb-2005
It was four o'clock in Bespokeware, our à-la-carte software and hardware shop, about an hour before the evening rush of tired-and-stuck programmers hit. It was always the same on a Thursday: they'd over promised at the beginning of the week and come Thursday afternoon realized that they only had one day left to complete their projects. And that meant more business for us as they came rushing in looking for help. Read more...
Testing in isolation
published: Fri, 28-Jan-2005
One of my current projects is writing unit tests for a body of code. It isn't germane to this discussion why these unit tests weren't written from the get-go; let's just accept that the code 'works' but that it's getting to the stage where it's becoming brittle. The client just wants proof that the code works. Read more...
Stateless Objects
published: Tue, 4-Jan-2005
The term "stateless object" came up in a conversation today, and although the term was familiar -- I'd definitely heard it before in relation to web applications -- I was not sure what exactly it meant. Read more...
Some answers on TDD
published: Wed, 24-Nov-2004
In which I answer a few general questions about how I use Test Driven Development (TDD) in my own work. Read more...
Design and Code Reviews
published: Thu, 26-Feb-2004
Of late, I've been thinking about design and code reviews. They're a natural part of much software development, but should be more prevalent.It's only through someone else reading your work and critiquing it that it gets better and you become a better developer. Read more...
A linker is needed for .NET
published: Wed, 28-Jan-2004
How many .NET applications do you run on average? Do you remember the first time you had to install the .NET Framework? If you're a developer, it probably was for Visual Studio for .NET. How about for the average Joe? Read more...