Bienvenida
¡Hola!
Ésta página corresponde a la primera clase, y habrá una por cada encuentro. Acá encontrarás apuntes y ejercicios que desarrollamos en clase, además de contenido recomendado para que profundices (o amplíes) lo visto después. Si bien está pensado para que puedas seguir lo visto estés donde estés, es importante aclarar que éstos contenidos no reemplazan a la cursada, aunque son una buena guía, en especial en el caso de las clases dadas en modalidad virtual.
¡Buen comienzo!
Quiénes Somos
- Franco Bulgarelli
- Débora Fortini
- Gastón Prieto
Temario
Resumen
En este encuentro hablamos de:
- Cuestiones administrativas: sobre los parciales y trabajos prácticos.
- Algunos conceptos fundamentales sobre arquitectura:
- Distribución: existen arquitecturas centralizadas en las que todo está en una única computadora, y arquitecturas en descentralizadas en las que los componentes software están distribuidos en una red a lo largo de múltiples computadoras (nodos)
- Arquitecturas de a pares (P2P) y Arquitecturas Cliente-Servidor (estas últimas son las que trabajaremos en la materia)
- La arquitectura Web: un tipo particular de Cliente-Servidor en que utilizamos el protocolo de comunicación HTTP (nuevamente, la materia versará sobre ésta)
- Persistencia: su motivación y la existencia de diferentes paradigmas de persistencia. En otras materias se trabajará el modelo relacional, mientras que aquí trabajaremos con el modelo documental (un tipo de paradigma de persistencia no-relacional)
- Contextos organizacionales en los que construimos software
- El diagrama de despliegue UML, que en su versión más sencilla se compone de:
- Nodos: agentes de cómputo, interconectados a través de una red, como pueden ser computadoras de escritorio, celulares, dispositivos embebidos, supercomputadoras, servidores instalados en un rack de un centro de cómputos, etc.
- Componentes: piezas de software que nuestro sistema ejecuta, como pueden ser scripts y programas de procesamiento en lote, programas interactivos, procesos de larga duración, demonios, procesos servidores, etc
- Actores: agentes que se comunican y disparan interacciones con los nodos del sistema, que pueden ser personas físicas o jurídicas, otros sistemas informáticos o hasta incluso otros seres vivos.
- Bases de datos
- Redes
- La diferencia entre Internet (una red global y pública de computadoras) y la Web (un servicio que permite consular páginas hipervinculadas)
- Las principales tecnologías y protocolos de la Web: HTTP, HTTPS, HTML, CSS, JS.
- Algunas clasificaciones de las arquitecturas:
- Procesos de vida corta (scripts, comandos, etc) vs de Vida larga (aplicaciones de escritorio, servidores,
REPLs
/intérpretes, etc) - Centralizadas (también llamadas monolíticas) vs Distribuídas
- Lógicas vs Físicas
- Arquiteturas Web de cliente liviano vs cliente pesado
- Dentro de cliente pesado: Frontend vs Backend
- En general: arquitecturas web “monolíticas” vs “distribuidas”
- Procesos de vida corta (scripts, comandos, etc) vs de Vida larga (aplicaciones de escritorio, servidores,
- Una introducción a HTTP, como protocolo cliente servidor basado en texto plano, el cual define operaciones en términos de verbos, cabeceras, rutas, recursos, etc.
- Una mención a tecnologías misceláneas que veremos a lo largo del cuatrimestre como DOM, Mongo y Docker.
- Una brevísima mención a las arquitecturas lógicas comunes en el mundo de la programación backend.
Material
Tarea
- ¡Repasá Objetos!
- Si aún no usaste Git, es importante que leas ésta introducción
- Obligatorio:Instalar Visual Code y git
- Opcional: