What Makes A Good Code Review?

At Eagle Eye, where I work, the question came up as to what constitutes a good code review. In any large organisation, you get a wide variety of software engineers, and all of them have different standards when it comes to code reviews. I’ve written before about why we should do code reviews, so I thought it may be helpful to explore how I approach code reviews, based on personal experience and what I’ve learnt from working with others.

While we use primarily PHP for our code, I’ve tried to keep this generic enough that the same principles can apply for any language.

Continue reading “What Makes A Good Code Review?”

PHP Patterns: The Composite Pattern

A while ago, I covered The Observer Pattern, a really useful pattern, particularly when it comes to event-handling systems.

Today, I’m going to take a look at the Composite Pattern, another really useful pattern that allows you to treat individual objects and collections of those objects as if they were the same. That may sound a little strange, but we’ll look at a concrete example, which should help clarify things: a List-based system.

Continue reading “PHP Patterns: The Composite Pattern”

PHP Patterns: The Observer Pattern

The Observer Pattern is probably one of my favourite patterns.

It’s fairly straightforward, flexible, and best of all, the base classes you need to implement the Observer Pattern are available in the Standard PHP Library, so it should be available to all PHP5 applications.

Let’s jump straight in, and take a look at a possible scenario where we could use this pattern.

Continue reading “PHP Patterns: The Observer Pattern”

The Singleton Pattern Is Not Evil

At the recent PHP UK Conference in London, one speaker described the Singleton Pattern as being evil. The main point brought up was that it brought global variables in through the back door, including all the problems associated with them.

Well, this is true, but only to a point. Just like eating ice-cream or junk food all the time would be bad for you, so would relying on the Singleton Pattern. However, it is still a very good pattern when used in specific instances, and when used sparingly, with discipline.

So, when could we consider using it?

Continue reading “The Singleton Pattern Is Not Evil”