According to the Stack Overflow developer survey 2017 (https://insights.stackoverflow.com/survey/2017#developer-profile-specific-developer-types), full-stack web developer is the most popular developer title. The software industry defines a full-stack developer as someone who can work on different areas of an application stack. The term stack refers to different components and tools that make up an application.
In terms of web application development, the stack can be broadly classified into two areas—frontend and backend stack or client-side and server-side stack. Frontend generally refers to the part that is responsible for rendering the user interface, and backend refers to the part that is responsible for the business logic, database interactions, user authentication, server configuration, and so on. A full-stack Java web application developer is expected to work on both frontend and backend technologies, ranging from writing HTML/JavaScript for the user interface to writing Java class files for business logic and SQL queries for database operations as required.
With an ever-evolving software architecture landscape, the scope of technologies that a full-stack web developer is expected to work has increased tremendously. It is no longer enough that we can write HTML and JavaScript to build a user interface, we are expected to know client-side frameworks such as Angular, React, VueJS, and so on. It is also not enough that we are proficient in enterprise Java and SQL, we are expected to know server-side frameworks such as Spring, Hibernate, Play, and so on.
In this chapter, we will introduce the following topics:
- Modern full-stack web development
- Web architecture patterns
- Choosing the right pattern