Question

Je suis un étudiant en informatique la conception d'un projet et j'ai commencé à me demander ce sont de bons exemples ou des logiciels, ou même du matériel qui toeing la ligne entre être riche en fonctionnalités avec de bonnes caractéristiques utilisables pour les utilisateurs réguliers et d'être trop intimidant pour 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 « pléthorique »?

Était-ce utile?

La solution

  

« Faire tout aussi simple que possible, mais pas plus simple. » - Albert Einstein

     

« La perfection est atteinte non quand il n'y a plus rien à ajouter, mais quand il n'y a plus rien à enlever. » - 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. Non pas que la réalisation de la simplicité est facile! Au contraire, il est assez difficile, mais il est possible.

Essayez de penser à des choses un peu différemment. Plutôt que

  

Combien de choses puis-je ajouter avant cela devient pléthorique?

essayer

  

Quels sont les moins grand nombre de caractéristiques et éléments que je peux inclure tout en offrant une expérience supérieure à mes utilisateurs?

Autres conseils

Voici une bonne série de diapositives d'une présentation sur le thème: Princesse Rescue 2.0 .

Le premier ordre du jour devrait juste être garder l'application facile à utiliser. Au-delà, tout ce que je peux dire est, méfiez-vous des fonctions d'écriture pour un utilisateur imaginaire:. Assurer qu'une personne dont il a besoin réellement avant de commencer à coder

En réponse directe à votre question: à peu près tous les produits Microsoft. Je montre mon parti pris, mais Microsoft a une forte tendance à garder leur base de code, et ajouter des fonctionnalités au-dessus des caractéristiques jusqu'à ce que la fonctionnalité d'origine de l'application est presque perdue sous des monticules de crud accrétion.

Regardez MS Word, par exemple; alors que vous pouvez toujours juste ouvrir et commencer à taper, à Dieu ne plaise, si vous voulez numéroter une section de votre document tout en laissant le reste seul. A Dieu ne plaise, si vous voulez générer une table des matières qui comprend des références à une annexe. Ce genre de choses est quelque chose qui est de rigeur pour les processeurs Word, et Word prend en charge, il supporte d'une manière que vous ne pouvez pas le faire sans un manuel, plusieurs tasses de café, et des bandages pour arrêter le saignement de cogner la tête sur le bureau.

Microsoft n'est pas seul à le faire; cette chose tend à se produire tout le temps, avec toutes sortes de produits; mais ils sont parmi les pires délinquants, je l'ai trouvé.

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

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

?

Votre question est assez générale. Quelles sont les fonctionnalités constituent ballonnements? Ce genre de dépend si vous écrivez un scanner antivirus, un système d'exploitation ou un traitement de texte.

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 développez une application, gardez un système basé sur des modules et un mécanisme de plug-in. De cette façon, de nouvelles fonctionnalités peuvent être plus facilement ajoutée et ballonnement peut être plus facilement détectée.

Vous pouvez arriver à un point où vous allez ajouter de nouvelles fonctionnalités certains considérerons « grand » et d'autres « ballonnement ». Dans le cas contraire, votre application peut atteindre un point que certains appelleront « fonction-pauvres » et d'autres vont l'appeler « juste assez ».

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 supprimer est rien de plus.

En substance, la plus simple et plus à la pointe est un logiciel, mieux.

Pour obtenir des exemples de conception de logiciels, jetez un oeil à des programmes qui sont populaires aujourd'hui. applications Google serait un endroit agréable à regarder. Skype peut-être. Heh, même StackOverflow. :)

Si vous voulez intimidante, allez dans le monde de la CAO. Consultez par exemple Blender . C'est un logiciel gratuit logiciel de conception 3D. Bon outil on me dit, mais l'interface utilisateur a tant de boutons / panneaux / menus / etc. qu'il fait lapereaux pleurer. Malheureusement, je ne peux pas dire si ce serait un bon exemple d'une interface utilisateur « mauvais ». la conception 3D est un très processus complexe et tous ces outils sont probablement au bon endroit. Mais il est certainement intimidante. :)

Une mauvaise conception de l'interface utilisateur se trouve souvent avec le logiciel propieritary qui vient avec le matériel propieritary. Malheureusement, je ne peux pas vous donner des exemples du haut de ma tête.

J'ai toujours tendance à concevoir mes projets d'une manière qu'ils sont juste des squelettes qui sont aussi extensible que possible. Les facteurs limitants sont la performance, la complexité ou ThirdParty-limites.
De cette façon, vous pouvez ajouter des fonctionnalités supplémentaires après avoir terminé la structure de base. Un utilisateur peut également ajouter ses fonctionnalités nécessaires.

Cela ne fonctionne probablement pas très bon pour les applications de l'interface graphique, qui devrait avoir une bonne facilité d'utilisation sans beaucoup de configuration, mais je suis coller bien avec cette approche pour les libs que je développe. (Ils sont utilisés par d'autres programmeurs qui aiment avoir un morceau très modifable du logiciel)

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

Mettre en place un vaste système plug-in afin que vous ajoutez et prenez des trucs à tout moment. Problème résolu. Si seulement cela était aussi facile que le code spaghetti d'écriture. ;)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top