IA Limpia
Artículos
Cómo programar con IA sin que el código se vuelva imposible de mantener: tests, buen diseño y revisión humana, explicados para que se entiendan.
Empieza aquí
IA LimpiaLos seis principios para programar con IALa base de todo lo que se publica aquí: que el código se entienda, esté probado y sea fácil de cambiar.Lo más leído
- HerramientasMatar Proceso en un Puerto determinado en Windows
- HerramientasAtajos de Teclado, ShortCuts para IntelliJ IDEA
- HerramientasRefrescar web sin caché
- HerramientasGit Flow
Archivo 2018–2025
234 artículos escritos antes de este enfoque. Algunos pueden estar desactualizados.
TDD y katas 30
- Algoritmo TDD
- TDD, Test Driven Development, Desarrollo Dirigido por Test
- Kata Stubs Spies, Carlos Blé
- Koans Kotlin
- Katas para Pruebas
- Inside-out TDD, Outside-in TDD, arquitectura y diseño de software
- Kata Codewars, Devolver el cuadrado de cada dígito de un número
- CodeWars
- ¿Qué es una Kata y un Koan?
- Pasos para Aplicar TDD en nuestros proyectos
- Koan es6katas, 57: Default parameters - basics
- Koan es6katas, 8: block scope - const
- Koan es6katas, 7: block scope - let
- Koan es6katas, 6: arrow functions - binding**
- Koan es6katas, 5: arrow functions - basics
- Koan es6katas, 21: spread - with-strings
- Koan es6katas, 20: spread - with-arrays
- Koan es6katas, 19: rest - with-destructuring
- Koan es6katas, 67: object-literal - setter
- Koan es6katas, 66: object-literal - getter
- Kata Roman Numerals Javascript
- Koan es6katas, 18: rest - as-parameter, Argumentos ...rest,
- Koan es6katas, 16: object-literal - computed properties
- Koan es6katas, 9: Object Literal -basic
- Koans de ES6
- Composición de un Test en TDD y sus métodos
- Instalar JEST en un proyecto de Javascript
- Libro TDD Carlos Ble
- Koans Js - Carlos Ble
- Instalación Jasmine Standalone (a pelo)
Código limpio y diseño 13
- Diseño Simple y Emergente, Código Limpio
- Pruebas de Unidad, Código Limpio
- Clases en Código Limpio
- Objetos y Estructuras de Datos, Código Limpio
- Formato del Código en Código Limpio
- Comentarios, Código Limpio
- Funciones, Código Limpio
- 10 Reglas Heurísticas de Usabilidad, Jakob Nielsen
- Validación Inline
- Números Mágicos
- God Object
- Usabilidad Dedo Gordo teléfonos moviles
- Nombres con Sentido
Agilidad y equipos 19
- Adiós Tarjetas de Visita . Hola Código QR Vcard
- Direcciones de Correos para Humanos
- Digitalización Vs Transformación Digital
- Desarrollo Dirigido por Tests de Aceptación (ATDD)
- ¿Es Ágil lo que hago?
- Flow de Desarrollo, Diseño Ágil
- Roles dentro de un Equipo Ágil
- Técnicas para un Equipo Ágil
- Agilismo
- Manifiesto por el Desarrollo Ágil de Software
- Principios del Manifiesto Ágil
- Newsletter Especializado en BDD
- Juego Ranas Flexbox CSS
- Juego Return True to Win, PHP
- Desarrollo Continuo de Software
- Plataformas de Cursos de Programación
- Historias de Usuario en SCRUM
- CSS Grid Layout
- Practicar Grid en CSS
Herramientas 55
- Diodon. Programa Historial de Portapapeles Ubuntu
- Configurar Importación y optimización automática en IntelliJ
- Configurar ejecución de todos los test del proyecto Java a la vez en IntelliJ
- Matar Proceso en un Puerto determinado en Windows
- Generador de código mailto
- Añadir a la barra de Ubuntu el Consumo de CPU y Memoria RAM
- PWA, Aplicaciones Web Progresivas
- Refrescar web sin caché
- CLOC, Contador de Lineas de Código
- Juego para Aprender VIM
- EditiX, Editor XML
- Ejecución de Comandos del Sistema desde Ruby
- Conexión a Base de Datos MySql desde Consola
- Git Flow
- Google sabe mucho sobre nosotros...
- Simbolos en Ruby
- CRUD desde Consola en Ruby On Rails
- Reparación Base Bisagra de Pantalla Acer E1-571
- Error al conectar con Usb en PlatformIO
- Matar un Proceso en Linux
- Añadir Busqueda en nuestro Wordpress a Google Analytics
- Pagina de Inicio y Pagina de Entradas en Wordpress
- Evolución del Escritorio
- Mocktail Mixer, Cocktelera Open Source
- Open Source Ecology, el pueblo Open Source
- Manual de Supervivencia Maker
- Utilidades para Expresiones Regulares
- Viñeta de Expresiones Regulares
- Compartir código, notas y fragmentos. Gist de GitHub
- Git Commitizen, Estandarizar Mensajes Commit en Git
- Mapa de Ruta de Desarrollador React
- Distribución del teclado Querty, Dvorak y Colemak
- ¿Qué es la Deuda Técnica?
- ¿Qué es un QA Tester?
- Complejidad Ciclomatica
- Chrome DevTools
- Manifiesto The Twelve-Factor App
- Material Design
- Nos espían desde la CIA
- Push API
- Probar Apps en dispositivos virtualizados con Firebase Test Lab
- Blog Emezeta de José Román
- MVC (Modelo Vista Controlador) y sus derivados
- Blog de Martin Fowler
- Características y valoración actual de los dispositivos Apple
- Algoritmos de Ordenación
- Canal de Youtube del profesor Tiburcio Cruz Ravelo
- Permisos en Linux
- Conectarse via SSH desde Linux
- Cambiar el número de entradas por Página en Wordpress
- Reparar Botón editar en Shutter con Ubuntu 18.04
- Añadir Node, Jest, Chai a IntelliJ
- Atajos de Teclado, ShortCuts para IntelliJ IDEA
- Git Kraken
- Activar Zoom con Ctrl+Rueda Ratón en IntelliJ Idea y Android Studio
JavaScript y web 27
- NVM, Node Version Manager
- Learn CSS Layout the pedantic way, Mikito Takada
- Máxima Performance de Pintado en el Front, JS y CSS
- Cheatsheet JavaScript
- Códigos de Teclas para Eventos
- Programacion asincrona con JavaScript. Introduccion a AJAX y testing asincrono, Carlos Blé
- Refactoring Legacy CSS, Carmen Ansio
- Asignación por destructuring en Javascript
- Problema Resuelto con Jest: No encuentra el token Import en test con Jest
- Exportar e Importar Funciones entre documentos en Javascript
- Los 10 mayores errores en proyectos de Javascript
- Reinicio Automático del Servidor Node al hacer cambios en el código
- Instalacion ExpressJs
- Instalar Nodejs en Ubuntu
- Recursos Javascript en Español
- Convención Block-Element-Modifier (BEM) para nombramiento de clases en CSS
- Clonado de Objectos en Javascript
- Clonado de Arrays en Javascript
- Paso por Referencia y Paso por Valor en Javascript
- This en Javascript, Carlos Ble
- ¿Que es un Objeto en Javascript?
- Métodos de Arrays en Javascript
- Video Explicativo Conceptos Javascript en Inglés
- Comportamiento Array JavaScript
- Diferencias entre == y === en Javascript
- Juego Preguntas Javascript
- Juego Selectores CSS
Java, Android y Kotlin 25
- Java Stream
- Ciclo de Vida de Activities en Android
- Picasso, Libreria Gestion Imagenes para Android
- Interfaces en Kotlin
- Eventos Clicks en Android
- Botón Back y Handler en Android
- Modificadores de Acceso, Public, Protected, Private en Kotlin
- Control Flow, Flujo de Control en Kotlin
- ¿Ha quedado Java obsoleto con Kotlin?
- Kotlin vs Java
- ¿Por qué usar Kotlin?
- Companion Object en Kotlin
- Igualdad Referencial (===) e Igualdad Estructural(==) en Kotlin
- Kotlin Android Extensions
- ScrollView en Android
- Toast y SnackBar en Android
- Documentacion para las versiones de las librerias de Soporte en Android
- Variables y Tipos en Kotlin
- Ligatures, mejorar la legibilidad Android Studio
- Gradle en Android
- Hola Mundo con Android Studio y Kotlin
- ¿ Qué es Kotlin?
- Versiones Android
- Fallo al instalar Android Studio en Ubuntu kvm
- Kotlin frente a Java
Ruby 49
- Paginación en Ruby on Rails
- Scopes en Ruby on Rails
- Máquina de Estados en Ruby on Rails con AASM
- Concerns en Ruby on Rails
- PaperClip, Subir Archivos en Ruby on Rails
- Callbacks en Ruby on Rails
- Gestión de Usuarios con la gema devise, Ruby on Rails
- Validación de un campo Booleano en Ruby on Rails
- Strong Params, Seguridad de parámetros en las peticiones en Ruby on Rails
- Diferencias entre link_to, redirect_to y render en Ruby on Rails
- Introducción al Testing en Ruby
- Incluir otros Archivos en Ruby
- Excepciones en Ruby
- Métodos de Clase en Ruby
- Variables de Clase en Ruby
- Expresiones Regulares en Ruby
- Diferentes Formatos para Validar Campos en Ruby on Rails
- Asociaciones en Ruby on Rails
- Active Record Validations, Validadores de campos de Ruby on Rails
- Diferencia entre text y string en Ruby on Rails
- Diferencia entre <% %> y <%= %> en Ruby on Rails
- Ejemplos de Mixin en Ruby
- Trabajar con Ficheros en Ruby
- Time en Ruby
- Ejercicio Práctico Módulos en Ruby
- Módulos en Ruby
- Configurar BBDD en Ruby on Rails
- Crear Modelos en Ruby on Rails
- Edicion de Vistas en Ruby on Rails
- Migraciones en Ruby on Rails
- Consola de Ruby on Rails
- Resource ó Recursos en Rails
- Crear y Arrancar un Nuevo Proyecto en Ruby on Rails
- Sinatra para Ruby
- Clases en Ruby
- Bloques en Ruby
- Bucles e Iteradores en Ruby
- Hashes en Ruby
- Arrays en Ruby
- Condicionales en Ruby
- Operadores en Ruby
- Métodos en Ruby
- Obtener informacion del Usuario en Ruby
- Interpolacion de Cadenas en Ruby
- Configurar Intellij con Ruby
- Variables en Ruby
- Hello Word en Ruby
- Instalación Ruby en Ubuntu
- ¿Qué es Ruby?
Más temas 16
- La meta es ser mejor que ayer, no mejor que nadie
- IDENTIFICATION DIVISION, COBOL
- Usos y Reglas de Cobol
- Estructura Programa Cobol
- Hoja de Codificación Programa Cobol
- Frase Cobol, Bill Gates
- Historia de Cobol
- 1º Formación Lean Mind en el ITER
- Alimentación para discos de 2.5'' en la Raspberry Pi
- Botón Encendido/Apagado para Raspberry Pi 2
- Multitarea con Máquina de Estados
- Regla del Boy Scout en el Código Limpio
- Esp8266 con Tira Led WS2812B
- Comprobar Transformador de Corriente
- Libros Consulta JavaScript, You-Dont-Know-JS
- Libro Javascript Allongé
Quién escribe
Rubén Tejera, desarrollador de software en Lean Mind. Ha trabajado en proyectos para Inditex, Wolters Kluwer y Voxel, una empresa de Amadeus.