Publicidad

RSS Metodologías de programación

Metodologías de programación: Entendiendo la inmutabilidad: Qué es, para qué sirve y cómo usarla .Cómo plantarle cara al Legacy Code.To...

Entendiendo la inmutabilidad: Qué es, para qué sirve y cómo usarla

9 Comentarios
Entendiendo la inmutabilidad: Qué es, para qué sirve y cómo usarla

En estos años en los que los lenguajes funcionales están empezando a convertirse en alternativas reales en casi todos los ámbitos, uno de los conceptos que suele venir asociado a ellos es el de la inmutabilidad.

Si bien es cierto que la inmutabilidad es una idea que no es exclusiva de la programación funcional, sí que cobra una importancia vital en este tipo de lenguajes.

La programación funcional se asienta sobre muchos conceptos matemáticos que requieren de la inmutabilidad para seguir siendo válidos.

Aún así, creo que es un concepto que es interesante de entender independientemente del tipo del paradigma de programación que utilices.

Leer más »

Cómo plantarle cara al Legacy Code

12 Comentarios
Cómo plantarle cara al Legacy Code

Aunque podemos tener una discusión muy profunda sobre lo que es y lo que no es Legacy Code, hay un aspecto concreto que para mi puede marcar la diferencia y es la confiabilidad con la que somos capaces de realizar cambios sobre nuestro producto a medida que estos son requeridos por negocio.

En una base de código en la que ciertas tarjetas de nuestro panel Kanban se eluden sistemáticamente por parte del equipo de desarrollo haciendose los disimulados, este es un claro síntoma de que hay una porción importante de nuestro sistema sobre la que nadie quiere asumir los riesgos que comporta su modificación. Cuando esto sucede, siempre se repiten algunas situación que son verdadores spots a detectar: Controladores o clases muy grandes, pocos tests y/o malos tests, acoplamiento, código duplicado, etc.

Ante esta situación, es muy probable que lleguemos a sentir la presión de negocio cuando no somos capaces de incorporar nuevas funcionalidades lo suficientemente rápido o cuando, plantear un test A/B sobre el producto parece como una gran locura que llevaría semanas de planificación.

Leer más »
Publicidad

To throw or not to throw o para que sirven las excepciones

13 Comentarios
To throw or not to throw o para que sirven las excepciones

En el mundo impuro en el que vivimos se producen situaciones inesperadas que escapan a nuestro control. Es por ello que los programas necesitan un mecanismo mediante el cual poder controlar dichos casos excepcionales, al más común de esos mecanismos se le llama Exception handling. Sin embargo, el uso de excepciones tiene consecuencias en la calidad de nuestro código haciéndolo más frágil. ¿Podemos hacer algo al respecto?

Leer más »

Retos de la agilidad en empresas grandes

4 Comentarios
Retos de la agilidad en empresas grandes

Son las 20:13, sonido en el móvil y el correspondiente mensaje de WhatsApp. Es de Marta. Ella trabaja con el rol de responsable de proyectos y, entre varios mensajes, quiere compartir conmigo que, después de meses de trabajo, el comité de dirección de su empresa, una de las que en el sector llamaríamos “grandes”, ha cancelado lo que allí llamaban la “transformación ágil” de su proyecto.

Marta me comenta que la dirección de su empresa ve demasiado grandes los cambios organizativos, estructurales, contractuales, etc., necesarios para poder acometer, realmente, el cambio que requiere trabajar de manera ágil.

Leer más »

BDD, Cucumber y Gherkin. Desarrollo dirigido por comportamiento

5 Comentarios
BDD, Cucumber y Gherkin. Desarrollo dirigido por comportamiento

BDD es uno de los términos de moda en el desarrollo de software en los últimos años. A pesar de ser un término muy utilizado, no todo el mundo sabe exactamente qué es eso de BDD, más allá del significado de esas siglas, Desarrollo Dirigido por Comportamiento (Behaviour Driver Development), ni cómo puede BDD ayudarnos en nuestro trabajo diario como desarrolladores.

BDD es una evolución de TDD (Test Driven Development o Desarrollo Dirigido por Pruebas). De hecho, el concepto de BDD fue inicialmente introducido por Dan North como respuesta a los problemas que surgían al enseñar TDD.

Leer más »
Publicidad

EDD: Error Driven Development. Volviendo a los inicios. Digamos adiós al postureo

10 Comentarios
EDD: Error Driven Development. Volviendo a los inicios. Digamos adiós al postureo
Actualización: Evidentemente, este texto inventa un nuevo concepto, pero lamentablemente no somos ni Martin Fowler ni Kent Beck para acuñar nuevas metodologías. Todo formaba parte de una broma del día de los Inocentes (28 Diciembre) en España. Aunque es un sátira es un texto que invita a la reflexión de cómo programamos ¿O no lo pensáis?.

TDD is dead. Esta afirmación fue la punta de lanza que me llevó a comenzar este manifiesto. Pensando en esos innumerables desarrolladores que no dejan de repetir con cierto postureo implícito que practican TDD, BDD e, incluso, se atreven a definir sus despliegues a producción como CI. Reconozcamos que todo esto nos impide disfrutar de la programación como tal. Y, sobre todo, frustran a nuestros compañeros que no conocen el significado de esas siglas (oh, wait).

Volvamos a los orígenes de nuestro desarrollo software. Allí dónde nos sentíamos libre sin tanta metodología ágil que sólo aporta burocracia vacía a nuestro código. Más código inservible en producción y ocupa espacio en nuestros repositorios: paquetes de test, librerías para hacer mocks, stubs, componentes dummies, etc..

El Test Driven Development ha muerto, demos la bienvenida a EDD (Error Driven Development). Dejémonos guiar por el mayor motivador para un programador el error de sintaxis, error de compilación, el error al arrancar la aplicación, el error 500, los logs en el Apache, etc..

Leer más »

Unas cuantas buenas prácticas cuando hablamos de APIs REST

30 Comentarios
Unas cuantas buenas prácticas cuando hablamos de APIs REST
De una A, dame una P, dame una I, APIIIIIIII... si, venga, va, la imagen es totalmente gratuita, lo reconozco.

Las APIs están de moda y las APIs REST ya ni digamos. Es por eso que navegamos mucho buscando bibliografía y referencias para realizar buenas APIs RESTful y no esas chustas que muchas veces nos encontramos y con las que otras tantas tenemos que luchar y bregar. Hace unos días nos topamos con las sugerencias de un desarrollador de APIs llamado Pierre-Olivier Bourgeois para construir buenas APIs, y como las suscribo al 100% pues nada mejor que compartirlas aquí, en Genbeta Dev.

Leer más »

Patrones de diseño: Decorator

13 Comentarios
Patrones de diseño: Decorator

En el anterior artículo sobre patrones de diseño, hablábamos del patrón Adapter. Y con la intención de seguir aumentando nuestro catálogo de patrones, continuamos hoy con otro patrón sencillo. Sencillo de entender y sencillo de aplicar, pero igualmente útil. Se trata del patrón Decorator.

Así que como siempre, vamos a describir el patrón y a través de un ejemplo práctico, demostrar como se implementa.

Leer más »

Patrones de Análisis

Comentar
Patrones de Análisis

Muchos días me encuentro con artículos o comentarios sobre los patrones de diseño. Son algo que se usa en el día a día. Nos podemos encontrar con Factorías, Singletons o Proxies de forma muy habitual programando. Ahora bien estos no son los únicos patrones que existen. Otros de los patrones importantes a la hora de trabajar son los patrones de Análisis. Estos patrones están más orientados a la fase de análisis y toma de requerimientos. Cuando uno trabaja como Analista, realiza una toma de requerimientos apoyandose en los casos de uso que el Cliente nos comunica. Todo esto parece en un primer momento idílico. Con el paso del tiempo y la experiencia uno se da cuenta que la mayoría de los negocios son mucho más complejos de lo que parecen de entrada.

Leer más »
Publicidad

Ver más artículos