Introduction

Introduction to Architecture Patterns.

Architectural Patterns are software design solutions to problems that exist at a higher, architectural level and affect the project as a whole.



Overview


In prior sections we have seen idioms which are like mini patterns that offer small and succinct solutions to specific language-related problems. Next are design patterns which work at the object level. They offer solutions to recurring problems that are related to objects and their interdependencies. Finally, architecture patterns are solutions to recurring software problems related to the higher-level structure and design of projects as a whole, i.e. the architecture of applications. Architecture patterns is the topic of this section.

Although not discussed in their own section, MV* Patterns also fall under the category of architecture patterns. They were designed to bring organization and structure to large scale applications. MV* is a large subject area, which is why they ended up in their own section, but, again, they are true architectural patterns.

JavaScript was not designed to build large-scale applications. Language features and facilities that are available to most modern languages are lacking. These include: namespaces, typing, classes, interfaces, modules, importing, exporting, and others. Fortunately, JavaScript is a very flexible language and today many solutions and support tools are available to build JavaScript apps that are standing on a sound architectural footing.

In this section we will touch on a variety of topics; these include script loading, modularity, AMD & require.js, JavaScript transpilers, error handling, and JavaScript testing. Most of these are relevant to all but the most trivial applications.