Piense en primer lugar en el problema en cuestión. Si aplica ciegamente los principios de YAGNI o SOLID, puede lastimarse más adelante. Algo que espero que todos podamos entender es que no existe un enfoque de diseño "único" que se adapte a todos los problemas. Puede ver evidencia de eso cuando una tienda vende un sombrero anunciado como "talla única", pero no se ajusta a su cabeza. Es demasiado grande o demasiado pequeño.
En cambio, es mejor comprender los principios y problemas que SOLID intenta abordar; así como los principios y problemas que YAGNI intenta abordar. Descubrirá que uno está relacionado con la arquitectura de su aplicación y el otro está relacionado con el proceso de desarrollo en su conjunto. Si bien puede haber superposición en algunos casos, son problemas claramente diferentes.
YAGNI (No lo vas a necesitar [siglas estadounidenses pintorescas]) se preocupa por ahorrar tiempo al desarrollador agregando cimientos de hormigón reforzado con acero a un puente que solo está destinado a atravesar un arroyo de 3 pies de ancho cuando un puente de madera más simple multa. Si estamos atravesando un río de una milla de ancho y necesitamos soportar varios remolques de tractores, por supuesto, necesitaríamos ese trabajo de base adicional. En esencia, YAGNI le está diciendo que mire la imagen más grande y el diseño para las necesidades actuales . Está abordando el problema de hacer algo demasiado complicado porque anticipamos una serie de necesidades potenciales que el cliente aún no ha identificado.
SOLID se preocupa por cómo nos aseguramos de que las piezas del puente encajen correctamente y puedan mantenerse a lo largo del tiempo. Puede aplicar principios SÓLIDOS al puente de madera, así como al puente de hormigón armado de acero.
En resumen, estos dos conceptos no están necesariamente en conflicto entre sí. Cuando te encuentras con una situación en la que crees que están, es hora de echar un vistazo al panorama general. Dependiendo de su conclusión, puede decidir eliminar una parte de los principios SÓLIDOS o puede decidir que realmente lo necesita.
SOLID principle vs YAGNI
?