A common analogy for the relationship between the front-end and back-end are customers and employees at a restaurant (representation of the front-end):
- The customer places their order (or “request”) with the waiter/waitress (or server).
- The order is then taken to the kitchen (representation of the back-end).
- There, the order is prepared (or “processed”) with the necessary ingredients (or “data”) to produce the expected food item (or “response”).
- Finally, the food item is brought back out to the dining area for the customer.
Back-end web development can involve a variety of tasks, including:
- Creating, integrating, and managing databases.
- Using back-end frameworks to build server-side software.
- Validating data to make sure it’s formatted correctly before being sent to the database.
- Integrating user-facing elements with server-side elements to make sure that information is being sent to the right place so the server can retrieve it.
Back-End Developers use a range of technologies and software, many of which fall into three categories: databases, programming languages, and frameworks.
Databases are used to storing important data such as user information. Popular database management systems and relational databases include:
Back-End Developers normally query their databases with various programming languages such as the following:
- SQL, which is ideal for working in relational databases.
- Ruby is a beginner-friendly language that has an enthusiastic programming community behind it.
- Python is a great choice with a concise, human-readable syntax.
- PHP is an open-source language that is great for server-side scripting.
- Java is a popular choice still widely used today.
Frameworks make all aspects of web development smoother and seamless. This saves developers time they would otherwise spend writing code. Popular frameworks include:
- Sinatra, a lightweight Ruby framework for building web apps.
- Ruby on Rails, a more robust Ruby framework that follows the model-view-controller standard.
- Django, a Python framework that offers dynamic HTML pages.
- Flask, a lighter Python framework meant for rapid development.
- Spring, a Java framework that can be used to build back-end APIs.