Hi, I had some inconvenience to develop multiple systems over time on my computer. Mainly when I try to isolate each environment for each project and this is where my doubt / question lies.
What is the best way / technology / good practices to have an efficient and safe development environment?
I have been using Vagrant, but I doubted if I wanted to use Docker, after researching, I found that many articles that talked about Docker should not be used so much for a development environment, but for its implementation.
I would like to know how they have customized their development environments.
Mainly I develop web applications with Python / Django, JS, React, etc.
Top comments (3)
Well there are some tools you can use to keep a consistent experience that makes sense(these tips work for mac, windows and linux, I use them all), I keep my active projects in a 'code' folder and stuff I am testing is 'test', I use mostly jetbrains IDEs, so I use toolbox to keep everything up to date and synced, and I use git kraken to send signed commits to github.
I hope this helps
I mostly work with Django, and this is what i found most comfortable for my need.
I am using homebrew for installing and updating my python installation and others.
A workspace directory in the home directory for holding all projects.
Inside of that every project in their individual folder and sub folder if needed.
I use pipenv for package management, a local postgres, redis db for those db related needs and some bash aliases to start and stop the servers on command.
This setup is not anything flashy at all but the main goal was to start working as soon as possible with as less of pain points to cover.
I work with JS the most, I used to play around with Python but never got serious enough to run into the issues you talked about :)
I personally don't use Docker or anything more than nvm for JS/node development. I also don't lean on globally installed libraries, except a few that manage globally and locally installed dependencies well. (like the angular-cli as an example)
You can use Docker for local JS development, but I find the process rather cumbersome, abstract and slow. From my small amount of experience you don't save much if your just working on full stack apps. I can see the use-case for more complex applications that require interacting with more of the system, but I just don't see it with web apps.
If you really wanted to go into Docker focused development you usually have a specific Dockerfile for development (and other files like docker-compose) to setup your local environment to run the project. That's about all I know about that sort of approach, since I don't use Docker for development :)