The source code for this blog is available on GitLab.

Wiregate Blog

Development Instruments Explained

Cover Image for Development Instruments Explained
Mikhail Shevtsov
Mikhail Shevtsov

πŸ“ Note: Thumbnail was generated using Flux Schnell model with help of ComfyUI;
This article was written with help of NI - Natural Intelligence
πŸŽ₯ Don't have time to read? - Watch the video we created: Avoid GitHub Actions

Development instruments πŸ› οΈ

While it’s possible to write applications using pencil and paper in practice it’s very inconvenient. The developer has to check syntax all the time, control changes that were made during the development process. To simplify this work - instruments are used.

Version Control System βž•/βž–

Complex applications contain millions of lines of code spread across hundreds of files. To keep track of the changes a Version Control System (VCS) is used. It helps to see the difference between releases and to revert to the previous version if needed.

Git Commit Diff

Most popular VCS on the market right now is GIT - developed by Linus Torvalds. It’s distributed - meaning that for its normal operation no server is required.

Integrated Development Environment πŸ“„

To simplify navigation inside of the complex project source code Integrated Development Environment (IDE) is used. Basically it’s an advanced text editor that understands and highlights syntax of the programming language on which the application is written. It allows developers to quickly navigate inside of the source code and debug the application. IDE

Debugger 🐞

Debugger is an app that allows developers to control the execution process of the application and monitor each variable and command that is being executed. A Step-by-Step debug of the application helps to find flaws in the execution and business logic.

Usually the debugger app is integrated directly into IDE.

Linter βœ…

Source code that is written by the developer is not required to be pretty and easy to read, however it is highly recommended to. It simplifies the work of the team members who maintain the projects source codes. To avoid the tedious process of aligning code according to the project standards the Linter app is used. It enforces rules to keep the code clean by either showing a warning message or automatically fixing the code.
An example of most common rules for the linter are:

Linter

  1. Line length should not exceed 80 characters;
  2. Open curly bracket for the function should be on the next line after the function definition;
  3. The body of the loop or conditional statement should be indented by 4 characters ;

Linter can work as a standalone application or as a module in IDE.

Frameworks πŸ—οΈ

Like with libraries a lot of functions in the applications are very common and can be reused between applications. Framework - is a foundation for building the application by focusing on the important parts such as business logic without thinking about boring stuff such as user auth or file storage. Frameworks drastically simplify and increase the speed of the development.

Example of a popular framework - Laravel. Out of box it includes a lot of good features such as:

  1. User authentication and authorization;
  2. Database migrations;
  3. Job queues;
  4. File Storage;
  5. Notification & email;
  6. Events & WebSockets;

A good framework always comes with extensive documentation.

Kubernetes βš“οΈ

Writing a working application is only 50 percent of success. Next 50 percent comes with app distribution and hosting. To solve the problem of hosting web applications, smart people from Google invented Kubernetes.
Kubernetes is a framework. Its purpose is to host your web application and actively monitor that app replies to the incoming requests. If it stops responding Kubernetes forcefully restarts the application. Kubernetes also handles horizontal and vertical scaling of the application according to the workload.

Conclusions πŸš€

Understanding the instruments that you are working with is the first step towards success. So the next time you start next project collect and use correct tools for the job.