Pregunta

Soy un estudiante de informática y el diseño de un proyecto que he empezado a preguntarse qué son buenos ejemplos de software o hardware, o incluso que están acatando la línea entre ser rico en características con buenas características útiles para los usuarios regulares y ser demasiado intimidante para usuarios nuevos. También puede alguien recomendar cualquier buenos consejos / libros para el diseño de aplicaciones de buena calidad que son versátiles, pero no "hinchada"?

¿Fue útil?

Solución

  

"Hacer todo lo más simple posible, pero no más sencillo". - Albert Einstein

     

"La perfección no se alcanza cuando no hay nada más que añadir, sino cuando no hay nada que quitar." - Antoine de Saint-Exupéry


No estoy tratando de ser impertinente, pero estas citas realmente son los mejores consejos. La simplicidad del diseño debe ser su objetivo. No es que el logro de la simplicidad es fácil! Por el contrario, es muy difícil, pero es posible.

Trate de pensar en las cosas un poco diferente. En lugar de

  

¿Cuántas cosas puedo añadir antes de que este se convierte en hinchada?

try

  

¿Qué son el menor número de características y elementos puedo incluir sin dejar de ofrecer una experiencia superior para mis usuarios?

Otros consejos

Aquí hay un buen conjunto de diapositivas de una presentación sobre el tema: Rescue princesa 2,0 .

La primera orden del día solo se debe mantener la aplicación fácil de usar. Más allá de eso, todo lo que puedo decir es que tener cuidado con las características de la escritura de un usuario imaginario. Asegúrese de que alguien realmente lo necesita antes de empezar la codificación

Como respuesta directa a su pregunta: casi cualquier producto de Microsoft. Estoy mostrando mi sesgo aquí, pero Microsoft tiene una fuerte tendencia a mantener su código base, y añadir características en la parte superior de funciones hasta la funcionalidad original de la aplicación está a punto de perder por debajo de los montones de porquería acreción.

Mira MS Word, por ejemplo; mientras que todavía se puede simplemente abrirlo y empezar a escribir, Dios no lo quiera, si desea volver a numerar una sección del documento, dejando el resto solo. Dios no lo quiera, si desea generar una tabla de contenido que incluye referencias a un apéndice. Este tipo de cosas es algo que es de rigor para los procesadores de textos y Word lo soporta, que sólo apoya de una manera que no se puede lograr que se haga sin un manual, varias tazas de café, y vendajes para detener el sangrado de golpearse cabeza sobre el escritorio.

Microsoft no es el único en hacer esto; esto tiende a pasar todo el tiempo, con todo tipo de productos; pero están entre los peores delincuentes, que he encontrado.

1: ¿Qué hacen los usuarios necesitan y quieren, y

2: ¿Qué características va a tener tiempo para implementar

?

Su pregunta es muy general. ¿Qué características constituyen hinchar? Ese tipo de depende de si usted está escribiendo un escáner antivirus, un sistema operativo o un procesador de textos.

No hay una clara barrera entre "bueno" y "demasiado". Sin embargo, depende de lo que quiere hacer.

Si está desarrollando un SDK, recomiendo dividir su aplicación en varias bibliotecas pequeñas (en lugar de sólo una librería SDL grande, existe la SDL núcleo, SDL_Mixer, SDL_Image, etc.)

Si está desarrollando una aplicación, mantener un sistema basado en módulos y un mecanismo de plug-in. De esa manera, las nuevas características se pueden añadir más fácilmente y la hinchazón se puede detectar con mayor facilidad.

Es posible llegar a un punto donde va a añadir nuevas características algunos considerarán "grande" y otros "hinchar". De lo contrario, la aplicación puede llegar a un punto que algunos llamarán "característica de los pobres" y otros se llaman "suficiente".

Esto no es una cita exacta, pero la idea era algo como esto:

  

Una pieza de software es perfecto no cuando no hay nada más que añadir, sino cuando no hay nada más para desactivar.

En esencia, el más simple y más a-la-punto es un software, el mejor.

Para obtener ejemplos de buen diseño de software, echar un vistazo a los programas que son populares hoy en día. aplicaciones de Google sería un buen lugar para buscar. Skype tal vez. Je, incluso StackOverflow. :)

Si desea intimidante, ir al mundo de CAD. Salida por ejemplo Blender . Eso es un software de diseño 3D freeware. Buena herramienta me han dicho, pero la interfaz de usuario tiene tantos botones / paneles / menús / etc. que hace conejitos lloran. Por desgracia, no puedo decir si esto sería un buen ejemplo de un "malo" de interfaz de usuario. el diseño 3D es un muy proceso complejo y todas esas herramientas son, probablemente, en el lugar correcto. Pero es definitivamente intimidante. :)

Un mal diseño de la interfaz de usuario puede encontrarse a menudo con el software propieritary que viene con el hardware propieritary. Por desgracia no puedo dar ningún ejemplo de la parte superior de mi cabeza.

Siempre tiendo a diseñar mis proyectos de una manera que sólo son esqueletos que son tan extensible como sea posible. son factores que limitan el rendimiento, complejidad o de terceros-limitaciones.
De esta manera se podría añadir características adicionales después de terminar la estructura básica. Un usuario también puede añadir sus características necesarias.

Esto probablemente no funciona muy bien para las aplicaciones de interfaz gráfica de usuario que debe tener una buena capacidad de uso sin mucha configuración, pero me quedo bien con este enfoque para aquellas bibliotecas que desarrollo. (Son utilizados por otros codificadores que les gusta tener una pieza muy modifable de software)

No es muy difícil de desarrollar una aplicación / lib que es hinchado con las características. Pero es el desarrollo de una aplicación que se podría extender fácilmente por otros desarrolladores / usuarios para que coincida con sus propias necesidades.

Desarrollar un sistema de plug-in de gran alcance para que agregar y sacar cosas en cualquier momento. Problema resuelto. Si tan sólo que era tan fácil como escribir código espagueti. ;)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top