Software development is a complex process. We can't just start writing some code and expect that we will reach our goal. We need to plan and define the base of our application. In other words, before you dive into actual scripting, you have to architect the project. In this chapter, we will cover the following:
The basic layers of a Node.js application
Using the task runner and building system
Test-driven development
The Model-View-Controller pattern
The REST API concept