https://github.com/r8vnhill/dibs
Curso sobre diseño e implementación de bibliotecas de software. Incluye sistemas de construcción, testing, OOP, genéricos, programación funcional y más, con Kotlin y Docusaurus.
https://github.com/r8vnhill/dibs
bdd build-systems clean-code course docusaurus functional-programming functors generic-programming gradle kotlin monads oop open-source property-based-testing software-design software-engineering software-libraries static-analysis teaching testing
Last synced: about 1 month ago
JSON representation
Curso sobre diseño e implementación de bibliotecas de software. Incluye sistemas de construcción, testing, OOP, genéricos, programación funcional y más, con Kotlin y Docusaurus.
- Host: GitHub
- URL: https://github.com/r8vnhill/dibs
- Owner: r8vnhill
- Created: 2024-09-06T05:46:33.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2025-04-01T16:49:02.000Z (about 1 month ago)
- Last Synced: 2025-04-01T17:50:02.963Z (about 1 month ago)
- Topics: bdd, build-systems, clean-code, course, docusaurus, functional-programming, functors, generic-programming, gradle, kotlin, monads, oop, open-source, property-based-testing, software-design, software-engineering, software-libraries, static-analysis, teaching, testing
- Language: TypeScript
- Homepage: https://dibs.pages.dev
- Size: 3.07 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Diseño e Implementación de Bibliotecas de Software (DIBS)
Este repositorio contiene el sitio web del curso **Diseño e Implementación de Bibliotecas de Software** (DIBS), desarrollado con [Docusaurus](https://docusaurus.io/). El curso está orientado a estudiantes de ciencias de la computación con conocimientos previos en programación orientada a objetos y cubre principios, herramientas y técnicas para diseñar e implementar bibliotecas de software robustas y reutilizables.
## 📚 Temario
Este curso tiene una duración sugerida de **15 semanas**, con una carga de trabajo de **10 horas semanales** (3 horas de cátedra + 7 horas de trabajo autónomo).
### Contenidos del curso
#### Unidad 1: Introducción (1.5 semanas)
- Introducción a bibliotecas de software
- Principios de código limpio y mantenible
- Sintaxis de lenguaje de programación
- Void-safety
- Repaso de programación orientada a objetos#### Unidad 2: Build Systems (3 semanas)
- Introducción a build systems
- Manejo de dependencias
- Automatización de tareas
- Compilación y empaquetado de aplicaciones
- Compilación y empaquetado de bibliotecas
- Publicación de bibliotecas#### Unidad 3: Testing (3 semanas)
- Behavior-driven development (BDD)
- Data-driven testing (DDT)
- Aserciones avanzadas
- Property-based testing (PBT)
- Generadores arbitrarios
- Desarrollo de propiedades
- Reducción de casos de prueba#### Unidad 4: Programación Genérica (1 semana)
- Polimorfismo paramétrico
- Varianza en sitio de declaración
- Varianza en sitio de uso
- Borrado de tipos
- Reificación de tipos#### Unidad 5: Programación Orientada a Objetos (2 semanas)
- Problema de la base débil
- Métodos de extensión
- Tipos anónimos
- Sobrecarga de operadores
- Variables y funciones estáticas
- Herencia múltiple
- Soluciones al problema del diamante#### Unidad 6: Programación Funcional (3.5 semanas)
- Funciones puras y efectos secundarios
- Funciones de alto orden
- Funciones lambda
- Tipos de datos algebraicos
- Functores
- Mónadas#### Unidad 7: Colecciones (1 semana)
- Iterator pattern
- Colecciones inmutables
- Colecciones mutables
- Operaciones sobre colecciones---
## 🚀 Tecnologías utilizadas
- [Docusaurus 2](https://docusaurus.io/)
- [Markdown](https://www.markdownguide.org/)
- [Mermaid](https://mermaid.js.org/) para diagramas## 📦 Instalación local
```bash
npm install
npm run start
```## 🌐 Sitio web
Puedes acceder al sitio del curso en: [https://dibs.pages.dev](https://dibs.pages.dev)