Before we dive into the basics of SQL it is pertinent to give a little background on it's origins. SQL was originally coined SEQUEL by IBM in about...
Read more
Thursday, 24 January 2008
How to find out what's running on your PC (and why this is important)
In order for modern, multi-tasking, PC operating systems to run in a stable manner. Every program that runs does so within it's own process, alloca...
Read more
Read more
Thursday, 10 January 2008
Web Writing
I have often felt the call to write more stuff. I'm definitely not cut out to be a novelist or anything like that, but I do like throwing together the odd poem. Mostly I like to just get out ideas I have in my head or debrief myself over some experience I've had or some issue that challenged or got my interest at work.
I recently discovered Helium, it's a bit like myLot but more up-market. I haven't done a great deal there yet but I have published a handful of articles. The titles are preselected and I came across one that was right up my street "A day in the life of web developer" so of course I couldn't pass that up!
I recently discovered Helium, it's a bit like myLot but more up-market. I haven't done a great deal there yet but I have published a handful of articles. The titles are preselected and I came across one that was right up my street "A day in the life of web developer" so of course I couldn't pass that up!
Friday, 4 January 2008
Hairy Code
I have been in my latest hacker post for a couple of years now. I am still maintaining one of the key projects there that I was introduced to on my very first day. Yeah my first day! A new post and I was reading code dating back to the 'Classic ASP' days, migrated to 'ASP.NET Framework 1.1.' It was already about three years old. So the code was big fat and very very hairy. I recalled in my mind someone mentioning that classic phrase "..hit the ground running." In my interview only a month previously. The relevance of that sentence was beginning to dawn on me.
The code violates just about every principle going! particularly DRY (Don't repeat yourself) There are, for example: a total of three Data Layer tiers each of varying complexity and each reflecting the tastes of it's creator. One is abstract, the second is just a light layer that executes in-line SQL and the third (my own contribution) sits somewhere between the two and shows my preference for stored procedures as opposed to concatenated SQL. This... 'thing' is a monster! But, it works it's been out in the wild for half a decade being battered by it's users everyday. It's been down just twice for a handful of hours in the last two years and that was due to network hardware issues not the application.
There are days when I hate the monster and can barely face it, then there are days like today as I bolt on yet another module/feature that I feal in awe of this mighty labyrinth of C# code. I have managed to slowly refactor large parts of this monster's code mop, combing wayward hairs of C# into neat re-usable classes. I read once on Joel Spolskey's blog throwing away code and starting again is something you should never do. My monster stands testament to that ethos.
The code violates just about every principle going! particularly DRY (Don't repeat yourself) There are, for example: a total of three Data Layer tiers each of varying complexity and each reflecting the tastes of it's creator. One is abstract, the second is just a light layer that executes in-line SQL and the third (my own contribution) sits somewhere between the two and shows my preference for stored procedures as opposed to concatenated SQL. This... 'thing' is a monster! But, it works it's been out in the wild for half a decade being battered by it's users everyday. It's been down just twice for a handful of hours in the last two years and that was due to network hardware issues not the application.
There are days when I hate the monster and can barely face it, then there are days like today as I bolt on yet another module/feature that I feal in awe of this mighty labyrinth of C# code. I have managed to slowly refactor large parts of this monster's code mop, combing wayward hairs of C# into neat re-usable classes. I read once on Joel Spolskey's blog throwing away code and starting again is something you should never do. My monster stands testament to that ethos.
Subscribe to:
Posts (Atom)



