Colección de proyectos y recursos sobre desarrollo de aplicaciones distribuidas
Este repositorio aborda temas clave como comunicación entre procesos (IPC) usando pipes, fifos, sockets (TCP/UDP), y metodologías de desarrollo como TDD (Test-Driven Development) para garantizar software de calidad.
- 🧪 TDD (Test-Driven Development): Proyectos guiados por pruebas, como la Kata de Bolos, aplicando buenas prácticas desde el inicio.
- 🔧 Pipes y FIFOs: Comunicación entre procesos en sistemas Unix mediante pipes anónimos y fifos (pipes con nombre).
- 🌐 Sockets: Ejemplos de comunicación cliente-servidor en red usando sockets UDS (Unix Domain Sockets), TCP/IP y UDP.
/practicas/- Carpetas organizadas por tipo de proyecto (cada una con README específico)/apuntes/- Recursos teóricos y apuntes técnicos sobre IPC, redes, y TDD
- 🎯 Kata de TDD de Bolos
- 🔌 Cliente-Servidor mediante pipes
- 🔌 Cliente-Servidor mediante FIFOs
- 🔌 Cliente-Servidor mediante sockets UDS (Unix Domain Sockets)
- 🌍 Cliente-Servidor mediante sockets UDP de Internet
- 🌍 Cliente-Servidor mediante sockets TCP de Internet
- 💬 Cliente-Servidor de mensajería mediante sockets TCP de Internet
- Pipes/FIFOs: Usados para pasar datos entre procesos relacionados (pipes) o no relacionados (fifos), en sistemas tipo Unix.
- Sockets: Permiten la comunicación a través de la red, ya sea local (UDS) o global (TCP/UDP).
- TCP: Protocolo orientado a conexión, garantiza entrega de datos. Ideal para aplicaciones donde la fiabilidad importa.
- UDP: Protocolo sin conexión, rápido y ligero. Perfecto para aplicaciones en tiempo real (ej. juegos, streaming).
- Escribe primero las pruebas, luego el código → permite detectar errores temprano y mejora la arquitectura del software.
"Primero falla la prueba, luego escribe el código para pasarla, y finalmente refactoriza. Repite." – Ciclo TDD
| Capa OSI | Capa TCP/IP | Ejemplos de Protocolos |
|---|---|---|
| 7. Aplicación | Aplicación | HTTP, FTP, SSH, DNS |
| 6. Presentación | — | SSL/TLS |
| 5. Sesión | — | NetBIOS, RPC |
| 4. Transporte | Transporte | TCP, UDP |
| 3. Red | Internet | IP, ICMP |
| 2. Enlace de Datos | Acceso a Red | Ethernet, Wi-Fi, ARP |
| 1. Física | Acceso a Red | Cables, conectores, señales |
El modelo TCP/IP es el usado en redes modernas. El modelo OSI es más teórico pero ayuda a entender la separación de funciones.
Este repositorio busca consolidar prácticas esenciales en sistemas distribuidos y redes, desarrollando aplicaciones robustas con técnicas reales de la industria y fomentando el aprendizaje práctico con recursos teóricos.
Marta Canino Romero
@martacanirome4
GitHub 2023
MIT License – Libre uso con atribución
Ver licencia
