A pattern is a reusable solution that can be applied to commonly occurring problems in software designâin our case, in writing JavaScript web applications. Another way of looking at patterns is as templates for how we solve problemsâones that can be used in quite a few different situations.
So, why is it important to understand patterns and be familiar with them? Design patterns have three main benefits:
- Patterns are proven solutions.
They provide solid approaches to solving issues in software development using proven techniques that reflect the experience and insights the developers that helped define them bring to the pattern.
- Patterns can be easily reused.
A pattern usually reflects an out-of-the-box solution that can be adapted to suit our own needs. This feature makes them quite robust.
- Patterns can be expressive.
When we look at a pattern, thereâs generally a set structure and vocabulary to the solution presented that can help express rather large solutions quite elegantly.
Patterns are not exact solutions. Itâs important that we remember the role of a pattern is merely to provide us with a solution scheme. Patterns donât solve all design problems, nor do they replace good software designers, however, they do support them. Next, weâll take a look at some of the other advantages patterns have to offer.
Reusing patterns assists in preventing minor issues that can cause major problems in the application development process. What this means is when code is built on proven patterns, we can afford to spend less time worrying about the structure of our code and more time focusing on the quality of our overall solution. This is because patterns can encourage us to code in a more structured and organized fashion, avoiding the need to refactor it for cleanliness purposes in the future.
Patterns can provide generalized solutions, documented in a fashion that doesnât require them to be tied to a specific problem. This generalized approach means that, regardless of the application (and in many cases the programming language), we are working with, design patterns can be applied to improve the structure of our code.
Certain patterns can actually decrease the overall file-size footprint of our code by avoiding repetition. By encouraging developers to look more closely at their solutions for areas where instant reductions in repetition can be madeâe.g., reducing the number of functions performing similar processes in favor of a single generalized functionâthe overall size of our codebase can be decreased. This is also known as making code more dry.
Patterns add to a developers vocabulary, which makes communication faster.
Patterns that are frequently used can be improved over time by harnessing the collective experiences other developers using those patterns contribute back to the design pattern community. In some cases, this leads to the creation of entirely new design patterns, while in others it can lead to the provision of improved guidelines on how specific patterns can be best used. This can ensure that pattern-based solutions continue to become more robust than ad hoc solutions may be.
Get Learning JavaScript Design Patterns now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.