stringtranslate.com

No te repitas

" No te repitas " ( DRY ) es un principio de desarrollo de software destinado a reducir la repetición de información que probablemente cambie, reemplazándola con abstracciones que tienen menos probabilidades de cambiar o utilizando la normalización de datos que evita la redundancia en primer lugar. .

El principio DRY se establece como "Cada conocimiento debe tener una representación única, inequívoca y autorizada dentro de un sistema". El principio ha sido formulado por Andy Hunt y Dave Thomas en su libro The Pragmatic Programmer . [1] Lo aplican de manera bastante amplia para incluir esquemas de bases de datos , planes de prueba , el sistema de compilación e incluso documentación . [2] Cuando el principio DRY se aplica con éxito, una modificación de cualquier elemento individual de un sistema no requiere un cambio en otros elementos lógicamente no relacionados. Además, todos los elementos que están relacionados lógicamente cambian de manera predecible y uniforme y, por lo tanto, se mantienen sincronizados . Además de utilizar métodos y subrutinas en su código, Thomas y Hunt confían en generadores de código , sistemas de compilación automática y lenguajes de secuencias de comandos para observar el principio DRY en todas las capas.

Principio de elección única

Un caso particular de DRY es el principio de elección única . Bertrand Meyer lo definió como: "Siempre que un sistema de software deba admitir un conjunto de alternativas, uno y sólo un módulo del sistema debe conocer su lista exhaustiva". [3] Se aplicó al diseñar Eiffel .

Alternativas

HÚMEDO

La visión opuesta a DRY se llama WET, un backronym comúnmente utilizado para escribir todo dos veces [4] (alternativamente escribir cada vez , disfrutamos escribiendo o hacemos perder el tiempo a todos ). Las soluciones WET son comunes en arquitecturas de varios niveles donde un desarrollador puede tener la tarea de, por ejemplo, agregar un campo de comentario en un formulario en una aplicación web. La cadena de texto "comentario" puede repetirse en la etiqueta, la etiqueta HTML, en el nombre de una función de lectura, una variable privada, DDL de base de datos, consultas, etc. Un enfoque DRY elimina esa redundancia mediante el uso de marcos que reducen o eliminan todas esas tareas de edición excepto las más importantes, dejando la extensibilidad de agregar nuevas variables de conocimiento en un solo lugar. [5] Esta conceptualización de "WET" como una alternativa a la programación "DRY" ha existido desde al menos 2002 en el mundo Java, aunque no se sabe quién acuñó el término. [6]

AHA

Otro enfoque de las abstracciones es el principio AHA. AHA significa evitar abstracciones apresuradas , descrito por Kent C. Dodds como optimizar primero para el cambio y evitar la optimización prematura. [7] y fue influenciado por "preferir la duplicación a la abstracción incorrecta" de Sandi Metz . [8]

La AHA se basa en el entendimiento de que cuanto más abstraen los ingenieros de inversiones de una pieza de software, más perciben que el costo de esa inversión nunca podrá recuperarse ( falacia del costo hundido ). Por lo tanto, los ingenieros tienden a continuar iterando sobre la misma abstracción cada vez que cambia el requisito. La programación AHA supone que tanto las soluciones HÚMEDAS como las SECAS crean inevitablemente un software rígido y difícil de mantener. En lugar de comenzar con una abstracción, o abstraer en un número específico de duplicaciones, el software puede ser más flexible y robusto si la abstracción se realiza cuando es necesaria, o cuando la duplicación misma se ha convertido en la barrera y se sabe cómo necesita la abstracción. funcionar.

La programación AHA fue originalmente denominada "código húmedo" por Dodds, más tarde nuevamente por Daniel Bartholomae, [9] y originalmente Matt Ryer la denominó DAMP ( No abstraiga los métodos prematuramente ). [10] Había un principio de programación diferente ya llamado DAMP ( frases descriptivas y significativas ) y descrito por Jay Fields, [11] y la comunidad rechazó el uso de MOIST, debido a la aversión cultural a la palabra húmedo . [12] Dodds pidió alternativas en Twitter y sugirió DATE como alternativa antes de decidirse por la sugerencia de Cher Scarlett de AHA. [7] [13] [14]

Ver también

Referencias

  1. ^ Caza, Andrés; Tomás, David (1999). El programador pragmático: de oficial a maestro (1 ed.). Estados Unidos: Addison-Wesley. págs.320. ISBN 978-0201616224.
  2. ^ Dave Thomas, entrevistado por Bill Venners (10 de octubre de 2003). "Ortogonalidad y el principio DRY" . Consultado el 1 de diciembre de 2006 .
  3. ^ Construcción de software orientado a objetos, segunda edición, página 63
  4. ^ Pai, Praseed; Xavier, Brilla (31 de enero de 2017). Patrones de diseño .NET. Packt Publishing Ltd. ISBN 978-1-78646-186-5.
  5. ^ Justin Lee (8 de marzo de 2006). "DRY es para perdedores" . Consultado el 31 de agosto de 2013 .
  6. ^ Zig Zichterman (8 de agosto de 2002). "JavaOne 2002: Notas de Zig" . Consultado el 9 de enero de 2024 .
  7. ^ ab Kent C. Dodds (1 de abril de 2019). "Programación AHA" . Consultado el 8 de mayo de 2021 .
  8. ^ Sandi Metz (20 de enero de 2016). "La abstracción equivocada" . Consultado el 8 de mayo de 2021 .
  9. ^ Bartholomae, Daniel (21 de agosto de 2020). "Código húmedo: por qué el código no debe estar completamente SECO". El CTO de startups . Consultado el 11 de noviembre de 2021 .
  10. ^ Haus, Ev (24 de diciembre de 2020). "Usando el código SECO, HÚMEDO Y HÚMEDO". Medio . Consultado el 11 de noviembre de 2021 .
  11. ^ Campos, Jay. "Código SECO, DSL HÚMEDOS". Pensamientos de Jay Fields . Consultado el 11 de noviembre de 2021 .
  12. ^ Resnick, Brian (28 de abril de 2016). "¿Por qué a tanta gente no le gusta la palabra" húmedo "? Este científico tiene una teoría". Medios Vox . Consultado el 11 de noviembre de 2021 .
  13. ^ Dodds, Kent (27 de marzo de 2021). "3 minutos con Kent: primero escriba el código y luego haga la abstracción". Calzoncillos . Consultado el 11 de noviembre de 2021 .
  14. ^ Dodds, Kent; Bostian, Emma; Nisi, Nick (30 de julio de 2021). "JS Party - Episodio n.° 186: Engancharse a React". El registro de cambios . Consultado el 11 de noviembre de 2021 .

enlaces externos