Web Development Tools & Terminology – Back End

Web Development Tools & Terminology – Back End

In this post series we’ll be talking about the nuts and bolts that make web development easier, but there’s a catch…

The catch is that, at first, you will be overwhelmed by the myriad of tools out there that you can use for different purposes.

There are such tools that do one thing and then there are the ones that serve two or more jobs thus needing you to make decisions about what you’ll be using in order to streamline you project.

I went through such overwhelming situations, quite frankly I still am, but the good news is that if you press on you’ll get the hang of it.

These tools can help you in more than one way. For example there are tools that help you write simpler and better code and tools that transform the code you write into code with maximum compatibility.

We’ll be breaking down the web development tools into 3 categories in order to better grasp what exact purposes they serve.

The Three Main Categories Of Web Development Tools Are:

  • Back – End Tools
  • Front – End Tools
  • Miscellaneous Tools

Let’s look at the first category and see what web development tools come in handy for those jobs. Two more posts will follow for the other categories.

Back – End Web Development Tools & Terminology

Apache, NGINX

The term “web server” refers to both a physical computer and a piece of software. The goal of both is to get the requested files to the end user. The web server software is, of course, hosted on the web server computer.

So, when a user requests a page from a website, the DNS and IP system forwards that request to the right computer which “serves” that page back to the user’s browser.

In order to achieve this task, the server computer needs a server application. Such programs are Apache and NGINX which analyze the requests and send back the right files that make up the requested content.

Depending on your configuration, Apache & NGINX can be used together or interchangeably as they both have strong and weak points.

back to top

NoSQL, GraphQL

NoSQL stands for “not only SQL” and is a move away from the classic structured design of relational databases due to more complex storage needs.

NoSQL is used for storing unstructured data which is growing rapidly in today’s modern web applications. Such unstructured data can be: user data, product data, chat and messaging, videos and images.

Some popular NoSQL databases include MongoDB and CouchDB.

GraphQL is a powerful and flexible language for interrogating data. It can be thought of as a query language for APIs, not databases thus making it database agnostic.

back to top

Node JS, Express JS, Typescript

Node.js is a run-time environment for executing JavaScript outside of the web browser. This means it comes with everything you need to execute a JavaScript program.

The simplest example would be that you can run JavaScript code in the command line of your operating system. Node.js is mainly used for running Javascript code on servers.

Express.js is a web framework for Node.js. It is built on top of Node.js and allows for creating web applications, manage a server and routs and respond to HTTP requests, among others.

Typescript is a superset language of Javascript which includes a set of features, such as types, that allow for catching bugs and enhanced IDE support.

back to top

JSON

JSON stands for JavaScript Object Notation and it is a file format for storing and transmitting data. As the name implies, it is based on the way objects are created in JavaScript.

It consists of key – value pairs and array structures and it is a language independent data format.

Nowadays it is used as an XML replacement for transporting serializable data.

back to top

MEAN Stack

A full stack web developer is someone who can develop both client and server software.

MEAN is a full stack software bundle based on JavaScript with which you can develop dynamic web applications, that is you can program the client, the server and the database.

The MEAN Stack consists of four technologies:

  • MongoDB – A NoSQL database system
  • Express JS – A Node JS based web framework for developing web applications
  • Angular JS – A JavaScript based front-end web framework
  • Node JS – A Javascript based server side environment

back to top

CRUD

CRUD is the acronym for Create, Read, Update, Delete and represents the four most basic operations that can be performed on data.

These four operations are used in APIs and relational database systems as applications need to perform these operations on the requested data.

back to top

API

API stands for Application Programming Interface.

Let’s take the “interface” and think of a book catalog in a library.

The catalog shows you a list of books with certain information about each book like the field of study, author, number of pages, the shelf number you find it on and maybe a little description.

In order to get the book you want you may need to provide some details about your request like an author or field of study.

From here you know exactly where to find the book you are looking for as well as some details about it.

You don’t need to know where the books came from, how they got there, how much it cost the library to purchase the books or how they take care to keep the books in good shape.

Another good example is a restaurant menu.

Such is an API for web application development. It is a “catalog” of things you need or “operations” you can get from another application and use to build your own functionality.

I like to think of APIs as a form of communication. Like the things you say in a conversation.

back to top

REST, SOAP

There is a lot of communication going on the internet that is done through APIs. Basically, devices and application communicate with each other for different purposes.

This communication can be categorized into two types:

  • Representational State Transfer or REST, which is an architectural style
  • Simple Object Access Protocol or SOAP, which is obviously a protocol

REST being a “style” is more liberal than SOAP which is a “protocol”. REST APIs can use multiple standards like HTTP, JSON, URI, and XML while SOAP APIs are based on HTTP and XML

In fact, a REST API (communication) can be accessed (made) using the SOAP protocol.

I like to think of them as a painting and a technical drawing. They both convey their content really well but they employ different means of doing it.

To take it even further the painter can use a “protocol” (SOAP) to achieve the end result.

Also, if you need to alter the communication, it is much easier to so with a REST API than a SOAP API.

Nowadays, the internet is largely based on REST communication.

back to top

MVC

MVC stands for Model – View – Controller and is a software design pattern in which the data, the presentation and the functionality are kept separate in order to have better control over the whole process of creating applications.

For a better understanding let’s think of the following scenario: ordering a cocktail.

What are the most important parts of that process?

  • the ingredients – this is the model, also known as data
  • the bartender – this is the controller which handles the logic or functionality
  • the cocktail itself – this is the view or what the end user sees

I think you’re starting to get it.

The bartender (controller) takes the order from the customer (user), takes care of the assembling (functionality, logic) of ingredients (model, pieces of data) and presents back the customer with the cocktail (view).

back to top

Composer, npm

Composer and npm are package managers or dependency managers.

They are tools that automate the process of installing, upgrading, configuring, and removing other helper tools that your application may depend on.

Composer is a manager of PHP packages.

npm is a manager of Node JS packages.

As an example, let’s take jQuery. You can include it the old way by pasting the links in your applications or by using npm which can also take care of updating the included packages.

Each package manager has it’s own repository where you can find the tools you need.

back to top

OAuth

OAuth is an internet protocol that allows secure authorization for applications.

So, when an application needs to use another to perform some sort of task, instead of providing a password to the requesting app, you provide it with a token through the OAuth protocol.

A simple example is an app that uses PayPal to make a payment to a third party. Instead of giving that app your PayPal password, the OAuth protocol provides a safer way of achieving the task.

Another scenario would be an app that requests access to your Facebook account to post some updates. You don’t give it your Facebook password. Instead, the OAuth protocol uses authorization tokens between the your Facebook account and whatever service requests authorization.

back to top

At The End

These, I think, are the most relevant back – end web development tools and terms.

I’ll be updating the list along the way as I find more useful tools.

In the meantime, feel free to comment with your thoughts on the matter or web development tools and terminology.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.