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.