Exploring the Requirements of Efficient Development Environment

This lesson discusses the requirements of an efficient development environment and also shows the development environment for go-demo-6 project.

What do we need from a development environment?

Let’s discuss what we need from a development environment while considering the technology we have at our disposal.

Clone and execute

In an ideal situation, we should be able to clone a repository of a project and execute a single command that would set up everything we need. That setup should be as close to the production environment as possible. Otherwise, we’d risk discrepancies between local results and those deployed to staging, production, and other permanent environments.

Connection with registries

Since we need to cooperate with other people in our team, as well as with those working on other projects, such an environment would need to be connected with the registries from which we could pull container images and Helm charts.

Compiler and other tools

Finally, the development environment would need to have a compiler of the language used in the project and all the tools we need (e.g., skaffold, Helm, Docker, etc.).

Automated build, testing and deployment

As a bonus, it would be great if we didn’t need to run commands that build, test, and deploy our application. Every time we change a file, the environment itself should build a binary, run the tests, and deploy a new version. That way, we could concentrate on coding, while letting everything else happening in the background.

Get hands-on with 1200+ tech skills courses.