Sometimes learning all the things feels quite overwhelming. This is a streamlined (minimalist) guide to software development with Python. As such it must be opinionated. One tool is chosen over another, not necessarily because it is better but because we need a path forward.
For Linux and Mac machines this is pretty easy. If you are using a Windows machine, you’ll need to install Windows Subsystem for Linux (WSL). For our purposes we’ll be using Ubuntu.
Python Version Management
A language version manager provides a simple way to install and use multiple versions of a language. Node.js has nvm, Ruby has rvm, Python has pyenv.
Python Environment and Dependencies Management
We’ll be using Poetry (the other big player is pipenv).
Black is an opinionated and popular code formatter.
Call me old-fashioned (or is it new-fashioned these days) but I prefer explicitly declaring my variables types over them being dynamically deduced. To this end we’ll use mypy.
We’ll use pytest.
- Mocking – Built into pytest.
- Code Coverage