stringtranslate.com

Anti-patrón

Un antipatrón en ingeniería de software , gestión de proyectos y procesos de negocio es una respuesta común a un problema recurrente que suele ser ineficaz y corre el riesgo de ser altamente contraproducente. [1] [2] El término, acuñado en 1995 por el programador informático Andrew Koenig , se inspiró en el libro Design Patterns (que destaca una serie de patrones de diseño en el desarrollo de software que sus autores consideraron altamente confiables y efectivos) y se publicó por primera vez. en su artículo en el Journal of Object-Oriented Programming . [3] Otro artículo presentado en 1996 por Michael Ackroyd en la Conferencia Object World West también documentó antipatrones. [3]

Sin embargo, fue el libro AntiPatterns de 1998 el que popularizó la idea y amplió su alcance más allá del campo del diseño de software para incluir la arquitectura de software y la gestión de proyectos. [3] Otros autores lo han ampliado aún más desde entonces para abarcar antipatrones ambientales, organizacionales y culturales. [4]

Definición

Según los autores de Design Patterns , hay dos elementos clave de un antipatrón que lo distinguen de un mal hábito, una mala práctica o una mala idea:

  1. El antipatrón es un proceso, estructura o patrón de acción de uso común que, a pesar de parecer inicialmente una respuesta adecuada y eficaz a un problema, tiene más consecuencias malas que buenas.
  2. Existe otra solución al problema que el antipatrón intenta abordar. Esta solución está documentada, es repetible y ha demostrado ser eficaz donde el antipatrón no lo es.

Una guía de lo que se usa comúnmente es una "regla de tres" similar a la de los patrones: para ser un antipatrón, debe haber sido presenciado al menos tres veces. [5]

Usos

Documentar antipatrones puede ser una forma eficaz de analizar un espacio problemático y capturar conocimiento experto. [6]

Si bien algunas descripciones de antipatrón simplemente documentan las consecuencias adversas del patrón, una buena documentación del antipatrón también proporciona una alternativa o un medio para mejorar el antipatrón. [7]

Antipatrones de ingeniería de software

En ingeniería de software, los antipatrones incluyen la gran bola de barro (falta de) diseño, la Clase Dios (donde una sola clase maneja todo el control en un programa en lugar de que el control se distribuya entre múltiples clases), números mágicos (valores únicos con un significado inexplicable o apariciones múltiples que podrían reemplazarse con una constante con nombre) y Poltergeists (clases de controlador efímeras que solo existen para invocar otros métodos en las clases). [7]

Gran bola de barro

Esto indica un sistema de software que carece de una arquitectura perceptible. Aunque no son deseables desde el punto de vista de la ingeniería de software, estos sistemas son comunes en la práctica debido a las presiones comerciales, la rotación de desarrolladores y la entropía del código .

El término se popularizó en el artículo homónimo de 1997 de Brian Foote y Joseph Yoder, que define el término:

A Big Ball of Mud es una jungla de código espagueti desordenadamente estructurada, extensa, descuidada, con cinta adhesiva y alambre para embalar . Estos sistemas muestran signos inequívocos de crecimiento descontrolado y de reparaciones oportunas y repetidas. La información se comparte promiscuamente entre elementos distantes del sistema, a menudo hasta el punto en que casi toda la información importante se vuelve global o se duplica.

Es posible que la estructura general del sistema nunca haya estado bien definida.

Si lo fuera, es posible que se hubiera erosionado hasta quedar irreconocible. Los programadores con una pizca de sensibilidad arquitectónica evitan estos atolladeros. Sólo aquellos que no se preocupan por la arquitectura y, tal vez, se sienten cómodos con la inercia de la tarea diaria de tapar los agujeros de estos diques defectuosos, se contentan con trabajar en tales sistemas.

—  Brian Foote y Joseph Yoder, Gran bola de barro. Cuarta Conferencia sobre patrones de lenguajes de programas (PLoP '97/EuroPLoP '97) Monticello, Illinois, septiembre de 1997

Foote y Yoder han acreditado a Brian Marick como el creador del término "gran bola de barro" para este tipo de arquitectura. [8]

Antipatrones de gestión de proyectos

Los antipatrones de gestión de proyectos incluidos en el libro Antipatterns incluyen Blowhard Jamboree (un exceso de expertos de la industria), parálisis del análisis , Viewgraph Engineering (demasiado tiempo dedicado a hacer presentaciones y poco al software real), Death by Planning (de manera similar, demasiado planificación), Miedo al éxito (miedos irracionales cerca de la finalización del proyecto), La mazorca (dificultades con las personas), Violencia intelectual (intimidación mediante el uso de jerga o tecnología arcana), Gestión irracional (malos hábitos de gestión), Humo y espejos (uso excesivo de demostraciones y prototipos por parte de los vendedores), Throw It Over the Wall (imponer prácticas de ingeniería de software de moda a los desarrolladores sin aceptación), Fire Drill (largos períodos de monotonía interrumpidos por crisis breves), The Feud (conflictos entre gerentes) y e -mail Is Dangerous (situaciones resultantes de mensajes de correo electrónico desacertados). [4]

Ver también

Referencias

¿Qué apoya qué?

  1. ^ Presupuesto 2003, pag. 225.
  2. ^ Ambler 1998, pág. 4.
  3. ^ abc Neill, Laplante y DeFranco 2011, p. 4.
  4. ^ ab Neill, Laplante y DeFranco 2011, pág. 5.
  5. ^ Neill, Laplante y DeFranco 2011, pág. 6.
  6. ^ Jiménez 2006.
  7. ^ ab Demeyer 2008, pag. 102.
  8. ^ Foote, Brian; Yoder, Joseph (26 de junio de 1999). "Gran bola de barro". laputan.org . Consultado el 14 de abril de 2019 .

Fuentes

Otras lecturas

enlaces externos