Design Patterns Reviewed - Part 2: Structural

25 October

This is the second post in a series in which I’m reviewing software design patterns. This time out I’m taking a look at structural patterns. These are all strategies for defining and managing relationships between classes and interfaces.

Continue reading

Hybrid CI

The company I work for uses GitLab to host our Git repositories. Along with GitHub more recently, it provides a way to build your projects directly within the service without relying on an external build server like Jenkins or Travis. The general reaction here seems positive, and most people seem happy to rely on it for their only automated build now. I can see the benefits but I’m hesitant to fully commit. Hybrid CI is an approach I came up with so I could have my cake and eat it too.

Continue reading

SOLID: the 'SO' stands for Snake Oil

13 September

SOLID is possibly the most over-hyped concept in all of software engineering. You can throw away that jar of Sudocrem because we’ll have no fence-sitting today, no sir.

Continue reading

Next month StackOverflow will pass a catastrophic point in its history

I’ve used StackOverflow a lot. I’m not just talking about landing there from Google; I’ve been regularly participating for about four years.

Continue reading

Design Patterns Reviewed - Part 1: Creational

25 August

This is the first post in a series in which I’ll be reviewing software design patterns, giving my opinions on which you should use and which you should avoid. I’ve grouped them into the same categories as they are in the Gang of Four’s Design Patterns. The first group I’ll be covering are creational patterns. These are all strategies that you can choose when deciding how to instantiate an object.

Continue reading

Stop Using Maven Deploy

mvn deploy is the final phase of Maven’s build lifecycle. It’s responsible for uploading the artifacts produced by the previous phases of the build to an artifact repository like Nexus where they can be stored and accessed by other dependent projects, or used as part of an automated deployment.

Continue reading