¿Cuáles son algunos ejemplos de diseño de software realmente malo que tienes que usar?

Una vez tuve la desafortunada suerte de tener que trabajar con un motor de flujo de trabajo / formulario basado en PHP 4.

El software generaría formularios de varios pasos basados ​​en diagramas de flujo que podría editar a través de una interfaz web.

Al principio, esta brillante pieza de ingeniería de software hizo un gran trabajo. Pero, como siempre, los requisitos se hicieron más complejos con el tiempo.

Una vez que comencé a trabajar con él, se había convertido en un monstruo: las desecaciones de flujo estaban por todo el lugar. Verdadero código de espagueti. Las decisiones de flujo se tomaron de 3 maneras:

  • Propiedades en el modelo.
  • Código en la aplicación PHP
  • Código PHP ingresado en el modelo

La última forma fue el principal problema que tenía el software. El modelo fue almacenado en una base de datos SQL e interpretado por la aplicación PHP. Sin embargo, el modelo también contendría código PHP que se almacenó en la base de datos como un BLOB.

No solo el flujo y el procesamiento fueron decididos por el código PHP en el sistema de archivos, ooh no, sino que también se controlaron a través de pequeños scriptlets de PHP que se extrajeron de la base de datos y se evaluaron.

No había forma de depurar adecuadamente ese desorden e incluso la solicitud más simple de cambio o la corrección de error más pequeña costaría días como mínimo y solo podría ser realizada por aquellos desarrolladores que habían estado presentes el tiempo suficiente para saber en qué se estarían metiendo.

En algún momento lo reemplazamos con una aplicación MVC usando Zend Framework. Esto funcionó mucho mejor.

La parte divertida: un tiempo después de reescribirlo, nuestro cliente nos pidió que le proporcionáramos al ‘nuevo’ proveedor una idea del software, les mostramos la versión anterior del curso. En pocas palabras, el nuevo vendedor nunca se convirtió en el nuevo vendedor.

No sé si AVG intentó alentarme a comprar una licencia profesional, pero este es un ejemplo de mal diseño de software. Dichos errores confunden a los usuarios y no tienen sentido. Si está diseñando un software, asegúrese de que todo tenga sentido.

Utilicé este software antes y me decepcionó mucho. Todo está deformado, fuera de lugar y confuso. Muchos usuarios no están satisfechos con este software.

Estos son algunos de mis consejos que siempre sigo cuando hago mi propio software:

Lo simple es más. Muchos programadores piensan que hacer una aplicación avanzada significa llenar la pantalla con menús, cuadros de texto de botones y otras cosas que no son necesarias. Los usuarios prefieren una GUI simple, que oculta características avanzadas pero las hace fáciles de encontrar.

Mantén el estilo. Siga las reglas de la GUI de la plataforma de destino. Por ejemplo, asegúrese de que sus botones ‘Cancelar’ se muestren a la derecha en Windows y a la izquierda en una Mac. Use menús, botones y casillas de verificación comunes y asegúrese de que su aplicación se ajuste a otro software.

Recuerda la GUI. El mayor error que cometen los programadores es que se preocupan por la estructura del código y se olvidan de la GUI hasta el final. Preocuparse por el código es excelente, pero recuerde que el usuario ve el software a nivel de superficie, que es la GUI.

Microsoft Visual Sourcesafe (tuvo que usarlo en el pasado). Es realmente una de las peores piezas de software jamás creadas. Algún software es una implementación defectuosa de una buena idea. Algún software es una buena implementación de una idea defectuosa. VSS fue una implementación horrible de una idea terrible. No me refiero principalmente al dolor que infligió directamente a sus desafortunados usuarios, sino a cómo los forzó a un desarrollo deficiente y prácticas de control de fuente, causando un daño enorme. La siguiente cita puede ser una leyenda urbana, pero sin embargo expresa perfectamente mi opinión sobre VSS: “Visual SourceSafe? Sería más seguro imprimir todo su código, ejecutarlo a través de una trituradora y prenderle fuego “.(Atribuido a un empleado de Microsoft no identificado) .