1.2 Anatomy of a Software Application
You should now have a broad understanding of what software is and how it might benefit us in our daily lives. Let's take a closer look at the levels you'll encounter as a Full Stack developer. We'll investigate their features as well as the technologies and tools you'll be using.
Front End / Client
This is the layer with which the majority of consumers will engage directly. There are various approaches to developing the front end. A web-based front end might take the shape of a website or a web application. Using our bank as an example, this is what the banking assistant will be interacting with in order to retrieve all of the information required to provide you with a service. This will primarily be a desktop application, which means that they will connect to the back end via a different program placed on their desktop. Desktop programs are often written in programming languages such as C++, C#, Java, and others. They're comparable to a computer game, except instead of battling, you'll be able to
A front-end application is also the mobile or web application that you use to check your balance or perform an online fund transfer. In this case, unlike with the banking assistance, you may interact directly with the front end. There are several languages available for developing these kind of apps. For example, a web page/application may be created using HTML, CSS, JavaScript, Node, and so on. If it's a mobile app, you may utilize technologies like Ionic, Swift, or Kotlin.
Back End / Server
The back end, often known as the server, is the system's backbone. It is in charge of handling and catering to all of the user's demands. Even though the user interacts with the front end, all of the work is done in the backend. Consider this to be a restaurant's kitchen. The waiters are the front end, with whom you communicate and inform what you wish to order. The waiter then proceeds to the kitchen, which is equivalent to the backend. This is where the chefs prepare the veggies for serving by cutting them, cooking them, and arranging them on a dish with some embellishments. When your order is ready, the waiter will pick it up and bring it to you.
Abstraction is a highly strong notion used in software engineering. As a user, you don't need to know how your request is handled or what other features are required to complete it. The back end, like the cooks, does all of these responsibilities. Assume that you wish to withdraw money from your account in the banking system we mentioned. You insert the card, enter your PIN, and withdraw the appropriate amount. The backend should validate your identification, access a central database to check your balance, authorize the transaction, and update your current balance in order to complete these duties. The server abstractly performs all of these activities. Languages for programming, such as.
Database
For the bank to provide you services, it should have access to information about you. For example, they would need to perform a security check on you to make sure you are the holder of a certain account. When you register with the bank you provide your details by filling out a form and this information gets stored on a database at the time of your account creation. A database can hold various kinds of data. It can hold string data such as your name and address, integer and float data such as date of birth, account balance and telephone number, and even image data such as your signature or photo.
Databases are classified into numerous categories. Relational databases are the most generally used database type, and you will learn more about them in subsequent lectures. These databases are made up of a series of tables. A record is a single row in a table. The backend will connect to the database and use queries to obtain the necessary information. A query is a command or request to the database that returns a set of data points that meet a set of criteria. Queries can also be used to perform database updates. MySQL is a well-known database management system (DBMS). Other DBMSs include PostgreSQL, Cassandra, SQLite, and MongoDB. This was merely a rudimentary overview of the technologies that are available.









0 Comments