“Clean Code” sin escribir una linea de código

Como desarrolladores nuestro trabajo es escribir código que ayude a resolver problemas, ni más ni menos que eso. Resolver problemas. Leemos libros como Clean Code, Software Craftmanship,… estamos al día de las últimas tendencias sobre programación, conocemos lenguajes, frameworks, en definitiva intentamos cada día hacerlo un poco mejor.

Pero, ¿es todo escribir código? da igual que sea PHP, Python, Javascript o Java nuestro día a día es resolver problemas y hacerlo bien. Una de las razones podría ser no generar demasiada deuda técnica y que nuestro código tarde más en convertirse en legacy code.

8314862395_bfef0bb766_z
One Shell Square

Además debemos luchar contra los deadlines,  así que en este post vamos a ver una serie de consejos para escribir mejor código sin escribir código.

Seguir leyendo ““Clean Code” sin escribir una linea de código”

Refactorizando legacy code en PHP Parte 8 – Inyección de dependencias

Volvemos otra vez a la carga refactorizando nuestra aplicación php legacy. Esta es la serie de posts más larga que he hecho hasta el momento, pero creo que el tema lo merece.

Esta entrega empezaremos ha plantear la arquitectura de la aplicación, o al menos una separación lógica de clases que irá evolucionando. Nuestra arquitectura debe centrarse en la lógica de negocio. Alrededor de esta tendremos varios módulos “auxiliares” que tienen diversos fines.

Por ejemplo conectar al usuario con la aplicación, en nuestro caso será la linea de comandos. Por otro lado tenemos la persistencia, que en nuestro caso no nos afecta ya que no utilizamos nada de este tipo. También tenemos las factorías y constructores y por ultimo están las clases que representan la entrada al sistema. En nuestra aplicación de Trivial podría considerarse la clase GameRunner de este tipo.

Seguir leyendo “Refactorizando legacy code en PHP Parte 8 – Inyección de dependencias”

Refactorizando legacy code en PHP Parte 7 – Capa de presentación

La capa de presentación

Ya llevamos 7 entregas de como refactorizar una aplicación PHP legacy. Ahora llega el momento de empezar a separar responsabilidades, de ir creando distintas clases y sobre todo de ir mejorando nuestra aplicación legacy en PHP.
Hemos visto a lo largo de los posts que la capa de presentación juega un papel fundamental en nuestro juego de Trivial. Vamos a tratar de identificar todos los sitios donde se haga “presentación” y trataremos de empujar esa “reponsabilidad de representar la salida de la aplicación” a un solo lugar. Para ello nos basaremos en los principios SOLID.

Fundamentos SOLID

Cuando comenzamos una refactorización y empezamos a cambiar código debemos guiarnos por unos principios. Estos principios nos ayudarán a ir tomando decisiones en cada paso de la refactorización. Si hablamos de programación orientada a objetos, los principios que debemos tener en mente son entre otros SOLID. Según la Wikipedia SOLID es un acrónimo mnemotécnico introducido por Robert C. Martin “Uncle Bob” que representa cinco principios básicos de la programación orientada a objetos y el diseño. Cuando se aplican estos principios en conjunto es más probable que un desarrollador cree un sistema que sea fácil de mantener y ampliar en el tiempo.

Seguir leyendo “Refactorizando legacy code en PHP Parte 7 – Capa de presentación”