Correcciones en la documentacion y actualizacion de entradas en el blog

This commit is contained in:
2025-12-09 11:09:03 -05:00
parent 580736bc88
commit bad54d1c11
6 changed files with 473 additions and 203 deletions

View File

@@ -28,6 +28,8 @@
# Introducción
Actualmente Hay una entrada en el [blog interlan](https://interlan.ec/2021/09/08/el-juego-de-la-vida-una-reescritura-en-vainilla-javascript/) sobre este tema y el codigo se encuentra publicado en [GitHub](https://github.com/drk0027/juegodelavida) y mi repo [Gitea](https://git.interlan.ec/Drk0027/El-juego-de-la-vida)
Hace mucho tiempo, antes de intentar tomarme en serio la programación, publique [un post en mi blog sobre el juego de la vida](https://interlan.ec/2020/05/23/el-juego-de-la-vida-en-javascript/). Habiendo mejorado mucho mis capacidades para leer código y hacer muchas cosas mas, decidí retomar mi blog para llenarlo con nuevos contenidos que ayuden a otras personas a las que les interesen las mismas cosas que a mi.
Mientras exploraba mis escasos aportes a la red, me topé con el post original que hice sobre el juego de la vida. Estaba completamente en ruinas en cuanto a estar lleno de links rotos, imágenes faltantes y contenidos desactualizados.
@@ -93,51 +95,19 @@ Es raro que un código de 329 líneas de código requiera tanta atención, pero
Como deducir la tecnología utilizada en el código original
## Inicialización de un proyecto con npm init
uso del comando npm init y configuración de las opciones del proyecto
## Uso de clases en JavaScript
razones para utilizar clases en javascript, como se crean, inicializan y razón para usarlas al reescribir este código
Usar clases en JavaScript organiza el código, modela entidades complejas (POO), facilita la herencia y encapsula datos/comportamiento, haciendo el código más mantenible y legible, especialmente en proyectos grandes, y su sintaxis es familiar para desarrolladores de otros lenguajes orientados a objetos como C++. Permiten crear objetos con propiedades y métodos, reutilizar código con la herencia (extends), y controlar la visibilidad (público/privado).
## Implementación de un sistema de inicialización
**Razones Clave para Usar Clases:**
forma en la que se inicializan las clases, variables dentro de las clases y funciones que llaman métodos en clases
- Organización y Estructura: Agrupan datos (propiedades) y comportamientos (métodos) en un solo lugar, creando "plantillas" (clases) para objetos similares (ej. Animal, Usuario).
- Reutilización de Código (Herencia): El uso de extends permite que una clase hija herede y extienda funcionalidades de una clase padre, evitando duplicación de código.
- Encapsulación: Permiten ocultar detalles internos (propiedades privadas), exponiendo solo lo necesario a través de métodos públicos, lo que reduce dependencias y simplifica el mantenimiento.
- Legibilidad y Familiaridad: La sintaxis de clases (class, constructor, super) es más clara y similar a otros lenguajes POO, facilitando la comprensión para desarrolladores que vienen de Java, Python, etc.
- Manejo de Estado: Son ideales para modelar entidades que necesitan mantener un estado (datos) y realizar acciones (métodos), como un "Rectángulo" que recuerda sus dimensiones.
- Constructor: El método constructor especial inicializa el objeto automáticamente al crearlo con new, simplificando la configuración inicial.
## Implementación de un sistema de dibujado
Estudio de la clase gráficos, como funciona en lienzo canvas y la variable de contexto (ctx)
funciones de dibujado y como se reciclan
## Implantación de un sistema de funciones publicas
Funciones publicas que realizan tareas adicionales
## Uso de comentarios para jsdoc
Comentarios en jsdoc, como pueden ayudar a la documentación de un código y como se ven en Visual Studio Code.
## Compilando en JSDoc
Modificación del código de package.json para agregar comandos de jsdoc
opciones de configuración, y parámetros adicionales
## Service workers y PWA
### usos de pwa y app cache para trabajo offline
https://www.pwabuilder.com
## Web responsiva
## hosting http y https
Etiquetas que permiten a la pagina web adaptarse a los tamaños de pantalla
## Readme.md y otros archivos de documentación
# Conclusiones y trabajos futuros
@@ -165,11 +135,11 @@ Aunque he creado una función para iniciar y otra para parar la ejecución del t
Una vez terminado el proyecto me di cuenta de que seria genial que haya mas funciones, pero tal vez dejaría de ser didáctico si hago eso. Aun así destaco lo siguiente:
1. Seria genial si se pudiera generar un arreglo aleatorio para iniciar
2. Me gustaría agregar una lista de arreglos prediseñados para poder ver como funcionan los diferentes patrones ya descubiertos.
3. Me gustaría que se puedan configurar los colores
4. ¡Agregar publicidad! Bueno, es algo que siempre quise aprender a hacer y muchos de los códigos que he encontrado la agregan.
5. ¿Comentarios y sugerencias? Tal vez es muy optimista agregar un elemento así en una aplicación super simple, mas aun sabiendo que no creo que reciba algún comentario en mi propio blog.
1. Seria genial si se pudiera generar un arreglo aleatorio para iniciar
2. Me gustaría agregar una lista de arreglos prediseñados para poder ver como funcionan los diferentes patrones ya descubiertos.
3. Me gustaría que se puedan configurar los colores
4. ¡Agregar publicidad! Bueno, es algo que siempre quise aprender a hacer y muchos de los códigos que he encontrado la agregan.
5. ¿Comentarios y sugerencias? Tal vez es muy optimista agregar un elemento así en una aplicación super simple, mas aun sabiendo que no creo que reciba algún comentario en mi propio blog.