In this article we’ll briefly look at the strategy pattern, its benefits and how to apply it to a system design. The strategy pattern is classed as a behaviour pattern, it allows behaviours of a class to be changed at run time. To illustrate how to apply the strategy pattern, we’ll start with a simple class diagram which describes relationships between objects in a make believe system. Vehicle - an abstract class which details the properties and operations that child classes will inherit from it. The abstract class cannot be instantiated directly, only via a child class Car, Van, Bus - these are concrete ...

Read More

We’ll start by first asking the question “What is a design pattern?”. A design pattern is a kind of template that describes how to solve a problem, it can be used in many different situations and is used to solve common problems that occur in software design. I’ll attempt to put that definition into some context. Imagine you’re a kitchen designer and you design kitchens for restaurants. Years of experience may have taught you that in a professional kitchen, certain appliances are best positioned in certain places, pots and pans near stoves and ovens, or chopping boards near the sink. Every ...

Read More

Occassionally a client doesn't understand how complex web application development can be. What they believe is an easy application, or a simply addon can sometimes take much longer than the client anticipates. How do you get them to understand that there's a lot of finer details that need to be taken care of? I came across this answer on Quora earlier today that I thought was great way to explain; Ask your client them to explain in detail how to make a cup of coffee. After rolling their eyes their answer will probably go something like this: Pour water in the carafe Put a filter ...

Read More

Hosting, what is it? why do you need it? what are the different types of hosting and which is best suited to your project? Hopefully in this article I’ll answer those questions. What is hosting? Think of hosting like a drawer in a filing cabinet that’s shared with everyone in the world. You put your documents in the filing cabinet and everyone can easily access them. If you’re building a website, you need somewhere to put your website files so that they can be accessed by everyone. This is where hosting comes in. Hosting is a computer that acts like a filing cabinet, ...

Read More

I’ll start this article by first admitting that for years I had no idea whether or not we were making a profit on many of our projects, it’s only when we’ve sat down to re-organise parts of the business that we’ve started to look at profit margins. What is profit? Sorry, I don’t mean to teach you how to suck eggs but I feel it’s important to cover this. Profit is the amount of money you have left over after you’ve paid all of your bills. In terms of an individual project, profit is the amount of money you have left once ...

Read More

SIGNUP TO THE NEWSLETTER

Get useful tips on web application development and software engineering.