Altenwald Blog
Blog sobre programación, software libre, redes, servidores, ...
Menú
Acerca de... ¿Quiénes somos? RSS
Categorías
sistemas (70) desarrollo (128) historias (25) productividad (49) seguridad (10) libros (25) noticias (45) opinión (35) humor (3)
Etiquetas
programación (111) desarrollo de software (79) erlang (75) opinión (37) noticia (36) libros (28) servidores (26) desarrollo web (24) base de datos (24) administración de sistemas (23) php (22) desarrollo ágil (22) empresa (21) otp (20) ruby (19) ingeniería de negocio (18) elixir (18) desarrollo profesional (16) redes (16) seguridad (14)
2012-03-05
1 min desarrollo
¿Qué es el Código Ravioli?
[ programación ]  [ antipatrones ]  [ código ravioli ]  [ código spaguetti ] 

Leyendo un documento sobre Erlang, en el que introduce el concepto de módulos parametrizados, encuentro un aviso que dice (traducido): cuidado con el código Ravioli. Por lo que llego a preguntarme... ¿qué es el código Ravioli?

Hasta ahora, yo conocía el código Spaguetti, que se basaba en la programación con saltos entre las líneas del código, vamos, el uso de la sentencia goto, que quedó obsoleta con la programación estructurada. Pero al adentrarnos en la programación estructurada, surge otro anti-patrón a tener en cuenta, que es el código Ravioli.

El código Ravioli se basa en que el código se refactoriza en demasiados trozos pequeños del mismo que llegan a ser difíciles o imposibles de seguir. Este caso se da también en la programación orientada a objetos, donde el origen del código ya no está disperso entre funciones o procedimientos, sino también entre clases y paquetes, haciendo que el código sea difícilmente trazable.

Los consejos que podemos seguir para no caer en este tipo de programación son:

...y sobre todo, mucho sentido común. Intenta escribir cosas lógicas, que llegando a un momento dado, olvidando que lo has escrito tú, al verlo, consideres que esa es la ubicación lógica donde lo encontraría cualquier persona que viese de nuevas el código.

Con todo eso, el código Ravioli no será más un problema para tus códigos ;-)

Autor
Manuel Rubio
Programación Concurrente & Erlanger