What is Full Stack Web Development?.
Let me clarify to you a few terms so that we start with a common understanding
of full stack web development as applied in this specialization.
We often hear people talking about the front end and the back end.
The front end is where we are delivering the content to the user,
typically in a browser where the user accesses the information.
This is where we use technologies like HTML,
CSS and JavaScript to render the content for the user.
This information delivery is supported behind the scenes by
a back end support which is typically implemented these days using technologies like PHP,
Java, ASP.NET, Ruby, Python or NodeJS.
We often hear people talking about the three-tier architecture for web development.
In this approach, the entire web application is organized into three different layers.
The presentation layer which is concerned with delivering the information to the user.
So, this is usually the UI related
concerns that are dealt with at the presentation layer.
The business logic layer on the other hand is concerned
more about the data, the data validation,
the dynamic content processing and generating the content to be delivered to the user.
This is backed up behind the scenes
with the data persistence layer or the data access layer.
So, this is concerned with how we store and interact with the data,
typically in the form of a database and access this data through an API.
Exploring this further, let us see what is implemented
typically in the traditional web development in each of these three layers.
The business logic layer is usually implemented these days using technologies like Ruby,
Python, PHP, Java, C++ or ASP.NET.
This business logic layer is interacting behind the scenes with
the persistent data typically stored in
a relational database and accessed by the business logic layer.
The business logic layer is also concerned
with the rendering of information to the front side,
typically, in the form of server-side rendering this case.
So, the HTML, CSS and JavaScript is generated on
the server-side and then sent over to the client-side in the form of a web page.
In this approach, we need specialists in each of these three layers.
So, a front-end specialists typically would be well-versed in HTML, CSS and JavaScript.
The business logic specialist would be
well-versed in one of the technologies that is used for
implementing the business logic and then you need
a data specialist who will be well-versed in the relational database management system.
There is an increasing trend towards using a single language
to implement the entire stack, this being JavaScript.
So, you could have the front-end implemented, for example,
as a single page application using frameworks like Angular or React.
You have the server-side or
the business logic layer being implemented using technologies like NodeJS,
which is also dependent on JavaScript.
Then you have the data storage itself being implemented using technologies
like MongoDB which stores data in the form of JSON documents.
The information exchange between the server-side and the client-side is usually done
using JSON as the format and the server-side supports a REST API endpoint.
We will cover all these technologies as part of this specialization.
So, as you go through this specialization,
you will see that on the presentation layer side,
we will cover Bootstrap 4,
an Angular or React for implementing front-end applications.
Then on the business logic layer,
we will be using NodeJS and NodeJS modules
and Express for implementing the business logic layer.
We'll also consider back end as a service and then
the data support implemented using MongoDB.