07_BuenasPracticas - vhcontre/inventario-2025 GitHub Wiki
✅ Buenas prácticas de desarrollo
🎯 Objetivos
- Adoptar prácticas profesionales de trabajo en equipo con control de versiones.
- Integrar herramientas de calidad y automatización (CI/CD).
- Comprender el valor de la documentación y la organización del código.
🧼 Código limpio y mantenible
Un buen proyecto no solo funciona, también es:
- Legible: nombres claros, comentarios útiles.
- Organizado: estructura coherente de carpetas y archivos.
- Modular: cada parte tiene una responsabilidad clara.
- Probado: incluye pruebas automatizadas para evitar errores futuros.
✍️ Seguí el principio “Código que otro pueda entender sin explicaciones”.
🧪 Pruebas automatizadas
- Escribí tests desde el principio (test-driven o como verificación).
- Usá
pytest
o el framework de tu stack. - Separá los tests en carpetas (
tests/unit/
,tests/integration/
, etc.). - Automatizá la ejecución con GitHub Actions.
pytest tests/
🔁 Control de versiones con Git
- Usá ramas para nuevas features o arreglos (
feature/
,fix/
, etc.). - Commit frecuente, claro y atómico.
git commit -m "fix: validación de stock mínimo"
- Pull requests para revisar el código antes de integrar a
main
. - Resolvé conflictos con diálogo y buena comunicación.
🧠 Estilo de código
- Seguí guías de estilo (PEP8 en Python).
- Usá linters y formatters (por ejemplo,
flake8
,black
,isort
). - Automatizá el chequeo de calidad con GitHub Actions.
# .github/workflows/lint.yml (ejemplo básico)
name: Lint
on: [push, pull_request]
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: 3.11
- name: Install flake8
run: pip install flake8
- name: Run flake8
run: flake8 .
🛠️ CI/CD (Integración continua)
- Automatizá pruebas, chequeo de estilo y documentación en cada push.
- Usá workflows simples en GitHub Actions.
- Podés simular despliegues locales con Docker y workflows que verifiquen que el proyecto corre sin errores.
📘 Documentación clara y útil
-
El
README.md
debe explicar:- Qué hace el proyecto.
- Cómo ejecutarlo.
- Cómo contribuir.
- Tecnologías usadas.
-
Agregá comentarios y docstrings en el código.
def calcular_total(productos):
"""
Calcula el total de una lista de productos.
Cada producto es un dict con clave 'precio'.
"""
return sum(p['precio'] for p in productos)
📂 Estructura de proyecto recomendada
app/
├── main.py
├── db/
├── models/
├── schemas/
├── routes/
└── templates/
tests/
.github/
docs/
README.md
🔚 Cierre
"Las buenas prácticas no son opcionales: son lo que convierte un trabajo de estudiantes en un proyecto profesional."
Recordá: tu código habla por vos.