CLAUDE.md - Memorias de un Backend
Descripción del Proyecto
Memo Backend es un blog/sitio web estático sobre desarrollo de software backend en español, creado por Alejandro Urrestarazu. El proyecto está construido con Jekyll y sirve como biblioteca de conocimientos sobre principios de desarrollo backend, patrones de diseño y arquitectura de software.
- URL: https://memobackend.com.ar/
- Repositorio: https://github.com/urrestarazu-alejandro/memo-backend
- Template base: Beautiful Jekyll por Dean Attali
- Idioma principal: Español
Tecnologías
- Jekyll (v4.x): Generador de sitios estáticos basado en Ruby
- Markdown: Formato de contenido para posts y páginas
- Kramdown: Motor de procesamiento Markdown
- Rouge: Syntax highlighter
- Disqus: Sistema de comentarios
- Google Analytics: Analíticas web (gtag: G-G4VYTYZNY0)
Estructura del Proyecto
memo-backend/
├── _config.yml # Configuración principal de Jekyll
├── _data/ # Datos estructurados (YAML/JSON)
├── _includes/ # Componentes reutilizables (HTML parciales)
├── _layouts/ # Plantillas de página (post, page, default, etc.)
├── _posts/ # Artículos del blog (formato: YYYY-MM-DD-titulo.md)
├── _site/ # Sitio generado (no editar, en .gitignore)
├── assets/ # Recursos estáticos
│ ├── css/ # Estilos personalizados
│ ├── img/ # Imágenes (incluye posts/)
│ └── js/ # JavaScript
├── pages/ # Páginas estáticas
│ ├── solid.md # Introducción a principios SOLID
│ ├── bibliografia.md # Referencias y bibliografía
│ ├── mapamental.md # Mapa mental de conceptos
│ ├── tutorial/ # Tutoriales
│ └── draft/ # Borradores
├── aboutme.md # Página "Acerca de mí"
├── index.html # Página principal (feed de posts)
├── tags.html # Página de etiquetas
├── Gemfile # Dependencias Ruby
└── README.md # Documentación del proyecto
Convenciones de Código
Formato de Posts
Todos los posts en _posts/ deben seguir esta estructura:
Nomenclatura de archivo:
YYYY-MM-DD-titulo-del-post.md
Front Matter (YAML obligatorio):
---
layout: post
title: Título del Post
subtitle: Subtítulo descriptivo (opcional)
thumbnail-img: /assets/img/posts/nombre-imagen.png
tags: [tag1, tag2, tag3]
comments: true
author: Alejandro Urrestarazu
footer-extra: cafecito.html # Opcional
---
Contenido:
- Usar Markdown (Kramdown)
- Imágenes en
/assets/img/posts/ - Sintaxis para cajas de información:
{: .box-success} Texto destacado en caja verde {: .box-warning} Texto de advertencia en caja amarilla {: .box-error} Texto de error en caja roja
Tags Comunes
Los tags se usan para relacionar artículos. Tags frecuentes:
solid,SRP,OCP,LSP,ISP,DIP(principios SOLID)patrones-diseño,design-patternsarquitectura-softwarejava,backendclean-code,refactoring
Páginas Estáticas
Las páginas en pages/ usan:
---
layout: page
title: Título de la Página
---
Comandos Útiles
Desarrollo Local
# Instalar dependencias
bundle install
# Servir el sitio localmente (con auto-reload)
bundle exec jekyll serve
# Servir con drafts visibles
bundle exec jekyll serve --drafts
# Build del sitio (genera _site/)
bundle exec jekyll build
Git
# Ver estado
git status
# Commit
git add .
git commit -m "feat: descripción del cambio"
# Push
git push origin master
Flujo de Trabajo para Nuevo Contenido
Crear un Nuevo Post
- Crear archivo en
_posts/con formato:YYYY-MM-DD-titulo.md - Agregar front matter completo
- Escribir contenido en Markdown
- Agregar imágenes a
/assets/img/posts/si es necesario - Probar localmente con
bundle exec jekyll serve - Commit y push a master
Crear una Nueva Página
- Crear archivo
.mdenpages/ - Agregar front matter con
layout: page - Actualizar navegación en
_config.ymlsi es necesario:navbar-links: Nombre: "pages/archivo"
Configuración Importante
_config.yml
Configuraciones clave que NO deben modificarse sin revisar:
url-pretty: “memobackend.com.ar”timezone: “America/Argentina/Cordoba”permalink: “/:year-:month-:day-:title/”disqus: ID de comentariosgtag: ID de Google Analytics
Navegación
La barra de navegación se define en _config.yml:
navbar-links:
Acerca de mí: "aboutme"
Recursos:
- Principios SOLID: "pages/solid"
- Mapa mental: "pages/mapamental"
- Bibliografía: "pages/bibliografia"
Contenido Temático
Temas Principales
El sitio cubre principalmente:
- Principios SOLID: Los 5 principios fundamentales del diseño orientado a objetos
- Patrones de Diseño: Gang of Four y combinaciones de patrones
- Arquitectura de Software: Estilos arquitectónicos, casos de uso
- Clean Code: Objetos inmutables, modelos anémicos vs enriquecidos
- Buenas Prácticas: TDD, BDD, pre/post condiciones
Recursos Clave
- Mapa Mental: Visualización de conceptos interconectados (usa Mermaid)
- Bibliografía: Referencias y libros recomendados
- SOLID: Página índice con enlaces a todos los principios
Notas para Claude
Al Crear Nuevo Contenido
- Mantener el estilo técnico pero accesible en español
- Usar ejemplos de código cuando sea relevante
- Incluir imágenes ilustrativas (generalmente en
/assets/img/posts/) - Agregar tags apropiados para relacionar con otros posts
- Mantener consistencia con el tono editorial existente
Al Modificar Configuración
- Revisar que los cambios en
_config.ymlno rompan la navegación - Probar localmente antes de hacer commit
- No modificar configuraciones de analytics o comentarios sin consultar
Al Trabajar con Git
- Branch principal:
master - Commits en español preferentemente
- Usar prefijos convencionales:
feat:,fix:,chore:,docs:
Archivos que NO Modificar
_site/: Generado automáticamente, ignorado en gitbeautiful-jekyll-theme.gemspec: Configuración del tema base.jekyll-cache/: Caché de JekyllGemfile.lock: Gestionado automáticamente por Bundler
Enlaces Útiles
- Jekyll Documentation
- Beautiful Jekyll Theme
- Kramdown Syntax
- Mermaid Diagrams (usado para mapas mentales)
Soporte
- Cafecito (donaciones Argentina): https://cafecito.app/urrestarazu
- LinkedIn: https://www.linkedin.com/in/urrestarazualejandro/
- GitHub: https://github.com/urrestarazu-alejandro