Code should be pretty too
Everyone who has sat down for web development has done some sort of brainstorming beforehand, a.k.a. strategy. Whether it’s writing out your goals for the project, (which I highly recommend) or just getting some basic ideas and functionality bullet-points, you are strategizing.
Put simply, you are creating a design of your development phase. This is a very important part of the process.
I repeat, this is a very important part of the process – and deserves more attention than it currently pulls.
The more detail and cohesion in your strategy the better off you’ll be when you actually get in the code. Think of it as a blueprint of your coding architecture. There are many reasons you should spend some time laying out the strategy – mainly, designing your development will save you a lot of dev time in the end – but what else?
The first is functionality. Writing the functionality out on paper helps identify bugs, flaws or just bad ideas. Listing out exactly how something is supposed to function will help alleviate those, “wait, I can’t do that yet, not until this part is loaded” issues. The more detailed you can be about what your code needs to do, the more problems you can solve before you even begin coding.
Another reason for designing your development is re-usability. Understanding what you need to do in your code before you start coding, allows you to see where you are going to need to reuse code. This is the way to avoid the, “oh wait I already wrote that, now I need to rewrite it as a function” time sink. Which by the way, the more simply you write your functions, the more you will be able to reuse them.
The last main reason is speed. Understanding what each part of the code needs to do based on your overall strategy allows you to code faster and logically comment your code. This allows your code to be structured, easier to understand, and quicker to reuse. Basically, the code is faster to read and write, which can come in handy if you ever have to modify what you wrote.
Remember, design isn’t only for the front-end.