Clase 2

Martes Noche, 2025, Segundo Cuatrimestre

Video

Link al video de la clase

Código de acceso: J73aV#s8

Resumen

En esta clase hablamos de:

Cualidades de diseño

  • Independientes de Tecnología
  • Dependientes de Tecnología
  • SOLID

Git Avanzado

Repaso

  • Repositorio
  • Commit
  • Pull
  • Push
  • Merge
  • Conflictos

Branching

  • Puntero a un commit
  • Usadas para desarrollos divergentes
    • Ejemplo: Feature Branches
    • Ejemplo: Branches por ambiente

Merge Strategies

Fast-Forward

  • Branch destino sin cambios
  • Me pone los commits después
  • Sin Merge Commit

Recursive

  • Branch destino con cambios
  • Me intercala los commits
  • Tiene Merge commit
  • Conflictos
Sin conflictos
  • Merge commit vacío
Con conflictos
  • Me pide resolver
  • Hace Merge commit con la resolución

Alternativas al Merge

Rebase & Merge

  • Coloca los commits de la branch fuente atrás de los de la branch destino
  • Cambia el ancestro común
  • Aplica sucesivamente cada commit y detiene en conflictos
  • Resultado: fast forward más prolijo

Squash & Merge

  • Combina todos los cambios en un solo commit
  • Historial más conciso pero menos detallado
  • A lo sumo un solo conflicto

Cherry-pick

  • Aplica de a un commit sobre una branch
  • Combinado con squash puede equivaler a un rebase más conciso

Pull Requests (o request-pull)

  • Herramienta de QA (mejora de proceso)
  • Revisión de pares
  • Consolida criterios
  • Abre debates
  • Permite supervisar
  • Varios ojos ven más que uno

Plataformas

Javascript

  • Lenguajes compilados vs Interpretados:
  • Node Interpreter
  • Concepto de VM/Runtime

Armando mi primera app

Server Node pelado

  • Es de muy bajo nivel
  • Mejor usar un framework
Biblioteca vs Framework
Biblioteca
  • La llamo yo
  • Menos decisiones pre-tomadas
Framework
  • Me llama a mí
  • Da estructura
  • Metáfora del esqueleto/carne
  • Muchas decisiones pre-tomadas

Dependencias

  • Manejadores:
    • Maven
    • NPM
    • Gradle
    • Gemfiles
    • Etc.
NPM
  • Metadata del proyecto:
  • Dependencias/DevDependencies

Ejemplo práctico con Express

  • Creamos un “Hola Mundo” que se puede acceder desde el navegador

Material