2009-04-28 8 views
2

Je suis un étudiant en informatique qui conçoit un projet et j'ai commencé à me demander quels sont les bons exemples ou logiciels, ou même le matériel qui se situent entre riches fonctionnalités avec de bonnes fonctionnalités pour les utilisateurs réguliers et trop intimidant pour les nouveaux utilisateurs. Aussi pourrait-on recommander de bons conseils/livres pour la conception d'applications de bonne qualité qui sont riches en fonctionnalités, mais pas "gonflé"?Bloat Feature - combien est trop?

Répondre

8

"Rendez tout aussi simple que possible, mais pas plus simple." - Albert Einstein

"La perfection n'est pas atteinte quand il n'y a plus rien à ajouter, mais quand il n'y a plus rien à emporter." - Antoine de Saint-Exupéry


Je ne veux pas être irrévérencieux, mais ces citations sont vraiment les meilleurs conseils. La simplicité de la conception devrait être votre objectif. Pas que la réalisation de la simplicité est facile! Au contraire, c'est assez difficile mais c'est possible. Essayez de penser aux choses un peu différemment. Plutôt que

Combien de choses puis-je ajouter avant que cela ne soit gonflé?

essayer

Quels sont le moins de caractéristiques et éléments que je peux comprendre, tout en offrant une expérience supérieure pour mes utilisateurs?

1

Voici un bon ensemble de diapositives d'une présentation sur le sujet: Rescue Princess 2.0.

La première chose à faire est de garder l'application facile à utiliser. Au-delà de cela, tout ce que je peux dire est, méfiez-vous d'écrire des fonctionnalités pour un utilisateur imaginaire: assurez-vous que quelqu'un en a vraiment besoin avant de commencer à coder.

0

1: Qu'est-ce que vos utilisateurs ont besoin et veulent, et

2: Quelles sont les caractéristiques vous le temps de mettre en œuvre?

Votre question est assez générale. Quelles caractéristiques constituent le ballonnement? Cela dépend si vous écrivez un scanner antivirus, un système d'exploitation ou un traitement de texte.

0

Il n'y a pas de barrière claire entre «bon» et «trop». Cependant, cela dépend de ce que vous voulez faire.

Si vous développez un SDK, je recommande le fractionnement de votre mise en œuvre dans plusieurs petites bibliothèques (plutôt qu'une seule grande bibliothèque SDL, il est le noyau SDL, SDL_Mixer, SDL_Image, etc.)

Si vous re développer une application, garder un système basé sur un module et un mécanisme de plug-in. De cette façon, de nouvelles fonctionnalités peuvent être ajoutées plus facilement et la météorisation peut être plus facilement détectée.

Vous pouvez arriver à un point où vous ajouterez de nouvelles fonctionnalités que certains considèreront comme «géniales» et d'autres comme «ballonnements». Sinon, votre application peut atteindre un point que certains l'appellent "pauvre en fonctionnalités" et d'autres l'appellent "juste assez".

0

Ce n'est pas une citation exacte, mais l'idée était quelque chose comme ceci:

Un logiciel est parfait pas quand il n'y a plus rien à ajouter, mais quand il est plus pour enlever rien.

En résumé, plus un logiciel est simple et précis, mieux c'est.

Pour obtenir des exemples de bonne conception de logiciels, jetez un oeil aux programmes qui sont populaires aujourd'hui. Les applications Google seraient un bon endroit pour regarder. Skype peut-être. Heh, même StackOverflow. :)

Si vous voulez intimider, allez dans le monde de la CAO. Découvrez par exemple Blender. C'est un logiciel de conception 3D gratuit. Bon outil on me dit, mais l'interface utilisateur a tellement de boutons/panneaux/menus/etc. ça fait pleurer les bébés lapins. Malheureusement, je ne peux pas dire si ce serait un bon exemple d'une "mauvaise" interface utilisateur. La conception 3D est un processus complexe très et tous ces outils sont probablement au bon endroit. Mais c'est définitivement intimidant. :)

Une mauvaise conception de l'interface utilisateur peut souvent être trouvée avec un logiciel propriétaire fourni avec du matériel électrique. Malheureusement, je ne peux pas vous donner d'exemple du haut de la tête.

1

En réponse à votre question: à peu près tous les produits Microsoft. Je montre mon biais ici, mais Microsoft a une forte tendance à garder leur base de code, et ajouter des fonctionnalités sur le dessus des fonctionnalités jusqu'à ce que la fonctionnalité originale de l'application est presque perdue sous des monticules de crud accreted.

Regardez MS Word, par exemple; alors que vous pouvez toujours l'ouvrir et commencer à taper, que Dieu vous en préserve si vous voulez renuméroter une section de votre document tout en laissant le reste seul. Dieu vous en préserve si vous voulez générer une table des matières qui inclut des références à une annexe. Ce genre de choses est quelque chose qui est de rigueur pour les traitements de texte, et Word le supporte, il le supporte de manière à ce que vous ne puissiez le faire sans un manuel, plusieurs tasses de café et des pansements pour empêcher le saignement de frapper. tête sur le bureau.

Microsoft n'est pas seul à le faire; cette chose a tendance à arriver tout le temps, avec toutes sortes de produits; mais ils sont parmi les pires criminels, j'ai trouvé.

0

J'ai toujours tendance à concevoir mes projets de manière à ce qu'ils ne soient que des squelettes aussi extensibles que possible. Les facteurs limitants sont la performance, la complexité ou les limitations de tierces parties.
De cette façon, vous pouvez ajouter des fonctionnalités supplémentaires après avoir terminé la structure de base. Un utilisateur pourrait également ajouter ses fonctionnalités nécessaires.

Cela ne fonctionne probablement pas très bien pour les applications graphiques qui devraient avoir une bonne facilité d'utilisation sans beaucoup de configuration, mais je reste fidèle à cette approche pour les bibliothèques que je développe. (Ils sont utilisés par d'autres codeurs qui aiment avoir un logiciel hautement modifiable)

Il n'est pas très difficile de développer une application/lib qui est gonflée avec des fonctionnalités. Mais il s'agit de développer une application qui pourrait facilement être étendue par d'autres développeurs/utilisateurs pour répondre à leurs propres besoins.

0

Développez un système de plug-in de grande envergure pour pouvoir ajouter et supprimer des éléments à tout moment. Problème résolu. Si seulement c'était aussi simple que d'écrire du code spaghetti. ;)

Questions connexes