« Rants | Refactoring Archives | Reprints »

C++ Tools - JetBrains ReSharper C++ - purchased...

| 0 Comments
I've been looking at Resharper C++ by JetBrains for a while now and the trial period has finally run out. I immediately bought a license which shows how my feelings have changed about the product during the trial.…
I've been looking at Resharper C++ by JetBrains for a while now and I expect I'm nearing the end of the trial period. Initially I found it got in my way but slowly I think it's training me to ignore the niggles and I'm finding the functionality quite compelling.…
Following on from my rant about C++ tooling and its follow up. I've been looking at JetBrains ReSharper for C++. This isn't a review, more just my initial thoughts. TL;DR I'd like to like it. It does some good things but it also gets in my way and slows me down. ReSharper is a Visual Studio addin. In general I don't like addins but this comes from my years working short contracts and multiple clients where it was easiest to be at home in a clean Visual Studio installation as no two clients would have the same addins installed. ReSharper's…

A single responsibility, please

| 0 Comments
Having got the CMessageProcessor under test in the last posting. I added a few easy tests for the object and then I came to another hard to add test. The reason that it was hard to add was that the object is doing a little too much.…

More Socket Server Refactoring

| 2 Comments
I'm currently working on a simple auction server for a client using The Server Framework. You can think of it as a specialised chat server, of sorts. One of the things it must do is broadcast messages from one user to a set of users. This is relatively easy to implement in a crude way in The Server Framework but it's not nice. Time to refactor towards niceness...…

They're learning

| 0 Comments
I'm back with the guys on the refactoring project for a couple of days. I got to my desk, updated my CVS tree and started to check my email. The first mail was from the boss man of the team; "I fixed a bug in the FX code earlier in the week, we need to write a test for it so it doesn't happen again", followed by "by the way, this time all the tests still run, I checked them all myself on Monday". This is considerably better than last time I visited them.…
I've got one of those 'please dig us out of this hole before we ship on Friday' gigs this week. I'm back with the refactoring project for a few days and, well, when the cat's away... So, we're 80% done but none of it seems to work, no tests, and the design seems a tad overly complex and it just must go live by Friday... Our task is simple, just clean things up, make it work right and finish the other 80%. The code is the usual mess of highly coupled, overly complex, unrestricted, unplanned, half understood, thought droppings; at…

Back with the refactoring project

| 0 Comments
I spent a little time with the guys on the refactoring project last week. Of course, as is the way, pressure from the business for more functionality has reduced the amount of clean up work that they've been able to do. The good news is that the builds are still repeatable and most of the tests pass. The bad news is only most of the tests pass.…

Admitting that your baby's ugly

| 0 Comments
I have a couple of days to myself. We've just shipped some code to a client a couple of days ahead of schedule and we're waiting to recieve a purchase order from another client so I find myself without any client work to do. I've decided to try and refactor The Server Framework code that we're using a lot right now. Whilst working on the code that we've just shipped I realised that the new code I was writing was much easier to test than the socket server library that formed a major part of the project, so now that I have…

End of the refactoring project

| 0 Comments
My time working on the refactoring project has come to an end; at least for a while. Here's a little look back over what we achieved.…

Bug hunt on the refactoring project

| 0 Comments
The refactoring project rolls on. Mostly it's been more of the same so I haven't bothered boring my reader with the details. This week we had an interesting bug to fix. The bug had appeared in a much earlier version, way back in July, but it had only been reported by one user and we could never duplicate the problem. This week we managed to duplicate it, and then we needed to work out what it was and when it was added to the source...…

Back to the refactoring project

| 0 Comments
I've spent the last couple of days back with The Refactoring Project. They've done well in my absence. They managed 3 releases; all correctly tagged and repeatable. They started some refactoring of their own and, at first glance, it looks like they've taken on board lots of the suggestions I've been making over the last months. They've fixed a couple of new bugs in the FX code and whilst doing so found that a) the bugs were easy to locate, b) they were easy to fix with very localised changes, and c) the new code was much easier to work…

You'll tick when I say so and not before!

| 0 Comments
Today we wrote some complicated FX business logic tests. Things like making sure that the FX library can calculate a EURUSDCAD 1M rate - it can; or a USDCAD ON rate - it can't and nobody had spotted the fact that it was out because it's way down in the 0.00001's of the rate.…

The first FX test

| 0 Comments
On Friday we got to the point where the FX buiness logic code was suitably decoupled from the display logic that we could write our first test for the business logic. In the words of Homer Simpson, "Woo hoo!".…

FX refactoring

| 0 Comments
Bleugh! You are lost in a maze of crapy code, all alike (and much of it copy and pasted!). The last few days have been deep in the heart of darkness. Gently teasing the business logic and the display logic of the FX code apart so that we might one day be able to write tests for the business logic.…

It's important who's driving

| 0 Comments
I'm a firm believer that software rots unless you're very careful; and like apples, once one piece starts to go bad the rest quickly follows. The Pragmatic Programmers talk about Software Entropy and The Broken Window Theory and, unfortunately, this week the refactoring project showed how true this is...…

Developer buy in

| 2 Comments
The refactoring project rolls on and the code gets better. This week saw a marked change in attitute from some of the developers on the team...…

We came. We saw. We did a little testing.

| 0 Comments
Another week another release. Well, almost. The plan was to release today. The plan ignored the fact that most of the team are at a wedding this weekend and nobody was around today and nobody's around on Monday...…

One step closer to sanity

| 0 Comments
Now that the refactoring project has tests it's worth having a daily build so that it's easy to spot if someone checks something in that breaks a test.…

Refactoring project: Joel Test, reprise

| 0 Comments
Last week we were a 5.5, now we're an 8. Not bad progress, but there's still a long way to go until the project can get a 'SaneMark'...…

Dawn of the dead

| 0 Comments
One of the problems with the code base that we're refactoring is that it's full of dead code. This week we dealt with it...…

On Cringely On Refactoring

| 0 Comments
Bob Cringely has been upsetting some programmers with his comments on refactoring. Initially, he had this to say: "Cleaning up code" is a terrible thing. Redesigning WORKING code into different WORKING code (also known as refactoring) is terrible. The reason is that once you touch WORKING code, it becomes NON-WORKING code, and the changes you make (once you get it working again) will never be known. It is basically a programmer's ego trip and nothing else. Cleaning up code, which generally does not occur in nature, is a prime example of amateur Open Source software. He then followed it up…

The Joel Test

| 0 Comments
Joel Spolsky has a quick test to rate how good your software development process is. I thought it would be useful to see how the refactoring project scores.…

Understanding bad code

| 0 Comments
I always used to think that there was probably a good reason behind things I didn't understand. Now I'm far quicker at deciding that the reason is that the person who created the thing didn't understand either.…
« Rants | Refactoring Archives | Reprints »

About this Archive

This page is an archive of all entries in the Refactoring category.

Rants is the previous category.

Reprints is the next category.

I usually write about C++ development on Windows platforms, but I often ramble on about other less technical stuff...

Find recent content on the main index or look in the archives to find all content.

I have other blogs...

Subscribe to feed The Server Framework - high performance server development
Subscribe to feed Lock Explorer - deadlock detection and multi-threaded performance tools
Subscribe to feed l'Hexapod - embedded electronics and robotics
Subscribe to feed MegèveSki - skiing