62 lines
2.2 KiB
Markdown
62 lines
2.2 KiB
Markdown
# DevOps Guide
|
|
|
|
> DevOps is the practice of reducing friction between writing code and running it reliably in production — giving you **reproducibility**, **fast feedback**, and **confidence at scale**.
|
|
|
|

|
|
|
|
---
|
|
|
|
## Problem → Tool Category
|
|
|
|
| Problem | Tool Category |
|
|
|---|---|
|
|
| Code gets lost, no change history | [Version Control](docs/version-control.md) |
|
|
| "Works on my machine" | [Containerization](docs/containerization.md) |
|
|
| Dependency conflicts between projects | [Package Management](docs/package-management.md) |
|
|
| Style drift, bugs slip through review | [Linting & Formatting](docs/linting-formatting.md) |
|
|
| Type errors discovered at runtime | [Type Checking](docs/type-checking.md) |
|
|
| Regressions go undetected | [Testing](docs/testing.md) |
|
|
| Manual, repetitive dev commands | [Task Automation](docs/task-automation.md) |
|
|
| Nobody knows how to run the project | [Documentation](docs/documentation.md) |
|
|
| Slow, manual deployments | [CI/CD](docs/ci-cd.md) |
|
|
|
|
---
|
|
|
|
## Tool Matrix by Language
|
|
|
|
### Language-Agnostic
|
|
|
|
| Category | Tool(s) |
|
|
|---|---|
|
|
| Version control | Git + GitHub / GitLab / Gitea |
|
|
| Containerization | Docker |
|
|
| CI/CD platform | GitHub Actions, GitLab CI, Gitea Actions, Jenkins |
|
|
|
|
### Language-Specific
|
|
|
|
| Category | Python | JavaScript | Go | C++ |
|
|
|---|---|---|---|---|
|
|
| **Package management** | uv, pip, poetry | npm, pnpm, yarn | go mod | conan, vcpkg, cmake |
|
|
| **Linting / formatting** | ruff, pylint, flake8 | eslint, prettier, biome | golangci-lint, gofmt | clang-tidy, clang-format |
|
|
| **Type checking** | mypy, pyright | tsc, flow | built-in | built-in + clang-tidy |
|
|
| **Testing** | pytest, hypothesis | vitest, jest, mocha | testing (stdlib), testify | googletest, catch2 |
|
|
| **Task automation** | invoke, make, tox | npm scripts, turbo, nx | make, mage, task | cmake, make, ninja |
|
|
| **Docs** | mkdocs-material, sphinx | VitePress, Docusaurus | pkgsite, godoc | doxygen, sphinx |
|
|
|
|
---
|
|
|
|
## Minimal "Good Enough" Stack
|
|
|
|
If you strip it to essentials:
|
|
|
|
| Tool | Purpose |
|
|
|---|---|
|
|
| `git` + GitHub | History + collaboration |
|
|
| `uv` | Env + dependencies |
|
|
| `ruff` + `mypy` | Correctness |
|
|
| `pytest` | Confidence |
|
|
| `invoke` | Dev UX |
|
|
| Docker | Reproducibility |
|
|
|
|
Add a tool only when you feel the pain it fixes.
|