Tools for local development
Chema Oct. 30, 2018
docker mailhog virtualbox localhost git local serveo.net
Normally in the development of full stack solutions there are usually several execution environments. In most of the projects we apply a scheme of 3 environments: local, testing and production. Initially it is in local mode where the developers breathe life into the project. Today we present the main tools that help us develop when we are in the local environment.
Working in local
A development environment based on two environments for client / server solutions has already been implemented: development and production.
For the development environment was mounted on a VPS server (there was no "cloud" as such) and developers agreed to work in a "synchronized". The first version controls like CVS and then Subversion were used.
This caused a wide range of conflicts when two or more programmers worked simultaneously on the same code area. This seems unlikely today, but it was a common practice.
Today we have tools that allow us to work locally simulating to a large extent the functionalities and restrictions that we will find when our software is in the cloud.
The tools
Here is the list of the main utilities and software that we use for local work.
- Docker / Docker Compose
In the same machine, a developer can be working on several projects at the same time. Each project has its own software configuration (Python 2 or Python 3, Django 1.11 or Django 2.1, ...). To treat this in projects based on Python, VirtualEnv was created. Another alternative was to create virtual machines with VMWare or Virtualbox.
But these solutions were not very flexible. Then Docker arrived with his containers to solve this. Each container behaves like a light virtual machine where you have an environment completely isolated from the host operating system.
With docker compose we can define a configuration for each environment so that containers are created and configured quickly and easily. It is undoubtedly the premier tool for local work.
- GIT
Version control with GIT is spread all over the planet. His concept of distributed repository has been key. Now we can have locally a copy of the repository totally foreign to a central server. When it is considered appropriate, you can upload the commits to a remote parent repository and doing the integration from there.
- VirtualBox
There are situations where Docker does not arrive. If our host is a GNU / Linux system and we have to develop and test a solution for Windows, it is highly recommended to use VirtualBox and install a copy of Windows to work with it.
- Chrome Developer Tools
It is the Swiss army knife of the front-end development. It comes standard with Chrome and with each update, many features are included. It includes tools to test even Progressive Web Apps. You can also add extensions to do accessibility audits or debug app made with Vue, for example.
One of its main functionalities is to be able to debug websites that run on Android devices. In this way you can test in native that an app works correctly even if it is local (If you access the local network IP of the computer).
- SSL for localhost
Normally, for local development, https is not usually necessary, but just in case you need it, you can self-generate and self-sign SSL certificates. Here is explained by Let's Encrypt.
- Serveo.net
Related to the above, Serveo.net or other utilities such as ngrok, allows us to map our local server under a web address even under https. This is very useful when we depend on third party services that must connect with our backend (payment gateways, social networks, etc). What we like about serveo.net is that you do not need to be logged in, nor is there any data limit a priori.
- MailHog
When you develop systems with sending email it is important to be able to test, see and test how emails are, what headers are sent, etc. MailHog behave with a fake email server that collects all emails that are sent and displayed under a local web address. By this way, you can check if your email code behaves as it should. It can be included as Docker-compose service easily.
Surely there are more tools that help local development. Which are yours? We encourage you to share them with us.
Do not miss anything!
Subscribe to our mailing list and stay informed