Automatizando para pensar en el problema y no en recordar comandos cuando programamos en PHP

¿Cuantas veces te ha pasado que hecho una pull request y aparecen 300 cambios porque el code style es distinto? ¿O qué nos ha faltado añadir un tipado en los parámetros de una función? ¿Cómo saber si tenemos alguna librería vulnerable? A mí estas cosas me han ocurrido más de una vez por eso intento tener todas estos temas automatizados, ya sea por medio de librerías, teniendo plantillas o atajos.

La idea que hay detrás de automatizar es tener un feedback loop lo más rápido posible y poder darnos cuenta de esos errores/mejoras cuanto antes. Quien me conoce sabe que más de una vez he contado la metáfora de la mochila: mientras estamos desarrollando llevamos una mochila con varios temas: la carga cognitiva intríniseca que hay en programar, ver ese trozo de código que habría que modificar, no perder el norte porque la idea es añadir X feature, los tests, el code style, si hay que añadir un caso nuevo a los tests, si los test son legibles, si el código lo entenderé dentro de 2 semanas, como afecta ese cambio al resto de la aplicación… tenemos que mantener la mochila lo más “vacía” posible para de verdad centrarnos en lo importante.

Photo by Tim Samuel on Pexels.com

Por todo eso, en este post vamos a contar una serie de librerías, plantillas,etch para automatizar todo lo posible un pryecto en PHP y hacer que podamos dedicarle más tiempo a pensar y menos a recordar cómo era ese comando que tienes que lanzar o si la llave iba en la misma linea o en la siguiente. Vamos a hablar solo de librerías y de nuestro entorno local, pero debemos de tener en cuenta que todo lo que vamos a contar podríamos llevarlo a nuestro pipeline de Integración Continua con tan solo rellenar un YML

Continúa leyendo “Automatizando para pensar en el problema y no en recordar comandos cuando programamos en PHP”

Modernizando aplicaciones PHP: antipatrones más comunes

A lo largo de mi carrera he tenido la oportunidad de “meter las narices” en unas cuantas aplicaciones… a algunas de ese aplicaciones podríamos llamarlas “legacy” en el sentido de que son aplicaciones que necesitan algo de “cariño”. Recuerdo una pregunta en una ¿Y tu cómo te enfrentas a aplicaciones legacy? mi respuesta fue Con paciencia. Así que hoy escribiremos sobre antipatrones más comunes cuando nos enfrentamos a una aplicación legacy. Este artículo no vamos a reescribir todo en <el fancy framwork que sea>,sino que veremos como hacer nuestras aplicaciones un poco más mantenibles.

Si quieres profundizar más sobre el legacy este artículo titulado “Mi código en producción ya es legacy” de Fran Iglesias es genial.

Continúa leyendo “Modernizando aplicaciones PHP: antipatrones más comunes”

consejos y trucos de composer PHP

¿Conoces composer? Seguro que ya lo utilizas desde hace tiempo en tus proyectos de PHP. Composer es un manejador de dependencias y paquetes en PHP, si quieres empezar, hace ya bastante tiempo que hablé de como sacarle partido a composer y de cómo hacer una libreria utilizando composer. Hoy voy a dar una lista de consejos y trucos.

Partimos de que ya utilizas composer, sabes sus comandos básicos y quieres subir al siguiente nivel. Quieres saber qué más puedes hacer, quieres conocer la diferencia entre ~ y ^, quieres saber qué hacer con el composer.lock,…

Lo primero, lee la documentación. Es el mejor consejo que puedo darte, en la documentación de composer está todo y seguro que hay otras muchas funcionalidades que pueden serte útiles en tu proyecto. Continúa leyendo “consejos y trucos de composer PHP”

Iniciando un proyecto en Laravel con Docker

Laravel es un framework de desarrollo PHP muy potente y cada vez más utilizado. Además tiene una comunidad impresionante, donde muchas personas contribuyen a crear un ecosistema genial. Hoy vamos a ver como empezar un proyecto Laravel y además añadirle Docker para así no tener que instalar nada de software en nuestro ordenador y hacerlo todo usando contenedores de Docker.

16717763124_62fdc893e5_z
Laravel | Sotaro OMURA

Creando el proyecto Laravel

En la documentación de Laravel (bastante buena por cierto), nos indican las mejores maneras de comenzar. Como la idea es utilizar Docker para todo, lo que haremos será clonar el proyecto de Laravel:

$ git clone https://github.com/laravel/laravel webapp

A mi me gusta utilizar git, sobre todo para poder ir commiteando los cambios que están bien y poder volver atrás si nos equivocamos, así que en este punto lo que vamos a hacer es iniciar un repositorio de git en la carpeta del proyecto

Continúa leyendo “Iniciando un proyecto en Laravel con Docker”

Mejorando la kata FizzBuzz

Hace unos días hicimos nuestro primer video haciendo la kata FizzBuzz, esto fue un primer acercamiento de como empezar con TDD y buenas prácticas. Ahora reflexionamos sobre la solución de la kata y veremos que introducimos ciertos code smells que en una segunda iteración intentaremos ir solucionándolos para hacer llegar a un código más robusto.

Enunciado de FizzBuzz

Escribe un programa que imprima los números del 1 al 100, pero aplicando las siguientes normas:
Devuelve Fizz si el número es divisible por 3.
Devuelve Buzz si el número es divisible por 5.-
Devuelve FizzBuzz si el número es divisible por 3 y por 5.

fizzbuzz.png
FizzBuzz in CSS

El código de la primera iteración es este.

Continúa leyendo “Mejorando la kata FizzBuzz”

Kata FizzBuzz

De la misma forma que un futbolista entrena cada día, un programador también tiene que “entrenar” para desarrollar mejor software. Creo que la mejor manera de practicar código es hacer una kata.

Para empezar, he escogido una kata sencilla, como es FizzBuzz y solo he realizado una primera iteración de 25 minutos.

Kata FizzBuzz

Escribe un programa que imprima los números del 1 al 100, pero aplicando las siguientes normas:

  • Devuelve Fizz si el número es divisible por 3.
  • Devuelve Buzz si el número es divisible por 5.
  • Devuelve FizzBuzz si el número es divisible por 3 y por 5.

Continúa leyendo “Kata FizzBuzz”

Sacando partido a PHPStorm

¿Cómo ser un supersaiyan en PHPStorm? La verdad es que tener un buen IDE para desarrollar es bueno, pero mejor aún es sacarle partido y tenerlo “tuneado” para que nuestra productividad escribiendo código sea mucho mayor. El hacer tareas repetitivas, hace que perdamos la concentración y el foco en lo que estamos haciendo por eso vamos a recopilar aquí una serie de trucos y mejoras que podemos llevar a cabo para desarrollar más rápido.

Continúa leyendo “Sacando partido a PHPStorm”

Como refactorizar utilizando PHPStorm

Ya llevamos tiempo hablando de refactorizar, de mejorar nuestro código y de que tengamos testado todo nuestro código para que así podamos hacer cambios y resolver bugs de manera más sencilla. Como dice Martin Fowler: “Refactorizar es una técnica para mejorar el diseño de una base de código existente”. Todo este tiempo hemos estado utilizando PHPStorm como IDE, creo que tenemos claro que es una gran herramienta, que nos ayuda a que seamos ma´s productivos, por eso hoy escribiremos una pequeña guía sobre Como refactorizar utilizando PHPStorm.

Empezaremos por lo más simple renombrar una variable e iremos mostrando distintos atajos para que podamos hacer refactoring de manera sencilla

Continúa leyendo “Como refactorizar utilizando PHPStorm”