Como escribir código difícil de mantener en PHP

Muchas veces se nos llena la boca hablando de Clean code, de hacer código limpio, de seguir los principios SOLID, pero escribir ¿cómo podemos escribir código difícil de mantener en PHP? ¿cómo hacer que todo a tu alrededor dependa de nosotros? Eso no parece sencillo, pero siguiendo los siguientes consejos podemos conseguir el famoso vendor lock-in y así volvernos una pieza indispensable de nuestra compañía.

Este post está hecho en tono irónico/sátira. No nos tomemos al pie de la letra el contenido

Photo by Lukas on Pexels.com
Continúa leyendo “Como escribir código difícil de mantener en PHP”

TDD no sirve para todo pero ayuda

Soy un fiel defensor de hacer tests y sobre todo de hacerlos antes de escribir una linea de código, pero no todo lo que hacemos tiene que estar hecho con TDD. Quizás el título sea un poco clickbait,.. en este post me gustaría que reflexionásemos sobre algunos aspectos a tener en cuenta de por qué Test Driven Development no es una bala de plata aunque ayuda mucho al diseño y de algunos temas interesantes alrededor del testing, refactoring y software.

"Cuando la única herramienta que tienes es un martillo, todo problema comienza a parecerse a un clavo".

No todo lo que hacemos tiene que estar hecho con TDD. ¡Pensar antes de escribir es mucho más importante! Por esta razón, estamos seguro de que es posible hacer buen software sin TDD. Aunque creo que hacer software sin TDD es más complicado porque no todo el mundo es capaz de pensar antes de escribir. Además a veces las “circunstancias” nos empujan a ir rápido, a tenerlo listo ya, o incluso a pensar (ilusos de nosotros) esto lo arreglamos más adelante. Del mismo modo, podemos llegar a un lugar oscuro si no nos planteamos a probar el software lo más pronto posible. Seguro que alguna vez nos ha pasado que llegamos a un una clase, servicio o feature que es difícil de probar. ¡eso sin duda es un “mal olor”! Quizás en el futuro ese mal olor acabe en algo podrido que y nos dé algún que otro dolor de cabeza. En cualquier caso cuando usamos TDD este nos provee de un proceso para analizar los problemas, para comprender qué es lo que está pasando, qué casos se nos pueden presentar, qué casos son excepcionales,….. además nos proporciona un arnés de seguridad para ir mejorando(refactor). Sin este proceso de TDD: hacer un test, comprobar que falla, hacer código para pasar el test y refactorizar, Lo qué tenemos es un proceso custom, donde cada miembro del equipo crea de manera distinta y por quizás lleguemos a situaciones en las que modificar un código se nos haga un poco cuesta arriba.

Continúa leyendo “TDD no sirve para todo pero ayuda”

Técnicas para mantener al legacy code bajo control

Somos desarrolladores de software, tenemos que leer código gran parte de nuestro día, tenemos que usar código legado y tenemos que mantenerlo, incluso añadir nuevas funcionalidades. ¿Cómo lo hacemos? ¿Cómo abordamos cambios en legacy code de manera eficiente? Pues no tengo ni idea, pero sí sé que si tengo una buena caja de herramientas cerca mi trabajo será más sencillo. Por eso en este post vamos a llenar nuestra caja de herramientas con algunas técnicas que nos ayudarán a trabajar un poco mejor con legacy code. No se trata de usarlas todas siempre, sino de tenerlas a mano para cuando nos hagan falta. Continúa leyendo Técnicas para mantener al legacy code bajo control

Charlas interesantes 8 Marzo

Este post es una recopilación charlas sobre como mejorar como desarrolladores. En estas charlas nos cuentan consejos, experiencias,.. y al menos a mi me han ayudado a replantearme una serie de creencias para seguir aprendiendo y mejorando no solo como desarrollador sino también como persona. @ladybenko es una personal que trabaja haciendo las DevTools de … Continúa leyendo Charlas interesantes 8 Marzo

Aprendiendo VueJS sin hacer un TODO-List

El frontend cambia muchísimo, cada día salen frameworks nuevos, herramientas,… y por ello estar al día de todo es imposible. Pero eso no deja de lado que me apetezca mejorar mis habilidades de frontend y aprender un un poco como se trabaja con javascript más hallá de JQuery y de hacer Stackoverflow Driven Development.

37036473724_28163a121c_z
Matías Garrido – Flickr

Así que me he propuesto ir aprendiendo VueJS, porque creo que tiene una curva de aprendizaje bastante asequible y voy a ver resultados pronto sin demasiada frustración. Además hace tiempo que me encontré con este magnifico libro “Desarrolla aplicaciones con VueJS“, con el curso de CodelyTV sobre hacer TDD con VueJS y Jest y tuve la suerte de cruzarme con Dani Latorre de coding stones en la conferencia “Madrid Software Crafters” y charlar sobre VueJS, frontend actual y las charla que dieron en Codemotion.

Continúa leyendo “Aprendiendo VueJS sin hacer un TODO-List”

Code reviews: comunicación, comentarios y asertividad

Revisar el código de otros compañeros antes de una pull request o antes de pushear es una práctica bastante extendida. Pero ¿cómo hacerlo de manera efectiva? Hace tiempo escribí un post sobre “Cómo llevar a cabo una code review y qué puntos tener en cuenta “ pero después de la “Software Crafter Madrid” me puse a buscar información sobre como mejorar la comunicacióne como intentar disminuir la fricción en las code reviews.

La idea de este post no es escribir en piedra una serie de normas, sino comentar una serie de trucos que a mi han funcionado y por eso me gustaría que tú te animaras a contarme los tuyos. Abajo dejo una serie de referencias

4026722749_18a80f2690_z
Jaguar E-Type 4-2 – Chris Devers

Continúa leyendo “Code reviews: comunicación, comentarios y asertividad”

Algunos mitos sobre el testing

Ultimamente casi todo el mundo habla de testear, de hacer refactoring, de mejorar,.. parece que intentar hacer las cosas bien se está poniendo de moda. Y eso mola.

Hoy me gustaría hablar sobre mi experiencia haciendo testing unitario y sobre los mitos que creo que hay detrás de todo esto de los tests. Eso sí, esto son opiniones personales basadas en mi experiencia por lo que no pueden traducirse a todos los escenarios, por eso me encantaría conocer tu visión en los comentarios.

4905093544_8d1324d7f2_z
J. A. Alcaide

Vamos a por los mitos:

Continúa leyendo “Algunos mitos sobre el testing”

¿Qué hacemos para mejorar como equipo?

Soy una persona curiosa, me gusta aprender cosas nuevas, leer, investigar nuevas tecnologías, encontrar maneras de mejorar,… pero eso no puedo hacerlo solo. Necesito tener cerca información: buscar en Internet, tener a mano a compañeros y colegas que saben mucho más que yo a los que poder preguntar,… en definitiva, necesito un ecosistema que funcione para poder seguir mejorando.

Continúa leyendo “¿Qué hacemos para mejorar como equipo?”

Estrategias para escribir mejores test

Hace tiempo, odiaba escribir test, me resultaban una perdida de tiempo. Y si empezaba a escribirlos, rápidamente los dejaba de lado porque me resultaban lentos.

Y el problema era que no sabía como escribir tests. Ahora me encanta escribir test, es más, me siento un poco incómodo si no tengo unos pocos tests para ver si todo está funcionando bien (al menos el “happy-path”).

Voy a contarte algunos trucos que me ayudan a la hora de escribir test, ¿compartes tu también los tuyos?

Key Strategies For Ensuring Skillful Auto Repair Work

Continúa leyendo “Estrategias para escribir mejores test”