29 votes

Jusqu'où allez-vous avec YAGNI?

Je suis en train d'élaborer une nouvelle application web révolutionnaire pour le marché de l'entreprise. Bien sûr, bien d'autres avant moi ont dit que leur application web serait révolutionnaire, seulement pour découvrir qu'il ne l'est pas. (Ou c'est, mais l'entreprise n'est pas bonne de toute façon).

Donc, je suis de la pensée, afin de savoir si mon idée a tout de traction avec le plus bas coût, de suivre une extrême YAGNI:

  • Pas de fonctions de sécurité (c'est à dire, aucun des utilisateurs, etc). Pour tout nouveau client j'ai installer une nouvelle instance de base de données et une nouvelle webapp instance. Chaque webapp instance est protégé par un mot de passe du serveur http (digest ou d'autorisation de base, peut-être via le protocole https).

  • Pas de l'internationalisation. Seulement en anglais de la chaîne intégré dans le code source.

  • Pas de découplage. Juste des pages web qui parlent de la base de données.

  • Pas de performance astuces. Pas de files d'attente, les caches, les minuteries, les travaux en arrière-plan, des appels asynchrones, etc.

  • Aucune évolutivité. Pas de base de données de partitionnement, pas d'éclats, pas de clustering ou de réplication.

  • En outre, l'utilisation YAGNI au micro-niveau, chaque fois que des.

Je veux commencer le projet et d'atteindre aussi vite que possible à un point où je peux le vendre (ou de vendre) mon fonctionnalités innovantes avec un simple et agréable de l'INTERFACE utilisateur.

Si le plan échoue, je sais plus tôt. Si elle réussit, je vais voir ce que veulent les clients ensuite. Veulent-ils une version française? Ou veulent-ils des utilisateurs et des rôles au sein de l'organisation?

Est-ce que les gens veulent dire par YAGNI, ou est-ce un pathologiques et exagérée exemple de YAGNI?

32voto

Pekka 웃 Points 249607

Je suis entièrement d'accord avec le YAGNI principe, mais vous voulez toujours le plan de réussite. Si une application a besoin d'une réécriture complète quand il a soudainement plus de dix des utilisateurs, alors il est YAGNI prises de trop loin.

Certaines choses que Vous Êtes Va avoir Besoin. De mon point de vue, les deux points les plus importants:

  • Ne pas se tirer dans le pied en ne préparant pas votre application pour l'internationalisation. Si votre demande est tout bon, l'internationalisation va être sur la table un de ces jours. Aussi, la capacité de manipuler des caractères étrangers par l'utilisation de l'UTF-8 est une exigence absolue lors de la construction d'une application à partir de zéro en 2010. L'internationalisation peut sembler pas si important que cela pour un anglais natif, mais croyez-moi, il est indispensable et la douleur de l'internationalisation d'une application ultérieure est horrible.

  • Réfléchir à deux fois sur le pas de fonctionnalités de sécurité de la chose. Ce propos d'une organisation ou d'un groupe qui veut travailler avec votre application avec les utilisateurs sur les différents niveaux de sécurité. Il pourrait être que ce est une fonctionnalité que vous pouvez vraiment faire sans que j'ai un grain fin système de sécurité intégré dans la plupart de mes produits, qui n'a jamais été utilisé à son plein potentiel encore. Mais bien penser que votre application spécifique peut faire sans, même si c'est un succès.

16voto

S.Lott Points 207588

C'est ce qu'ils appellent le "prototypage". Aller pour elle.

Il y a une subtilité entre YAGNI et de prototypage.

  1. Quand c'est l'utilisateur a demandé featuritis, et vous dites non, c'est YAGNI.

  2. Quand elle est mise en œuvre (I18N, de "découplage"(?), les files d'attente, les caches, les timers, etc.) et vous dites non à vous-même. Ce n'est pas vraiment YAGNI. C'est le prototypage.

La plupart de ce que vous avez ici semble ne pas être orientée utilisateur, le plaquage en or. Je n'appellerais pas ça -- précisément -- YAGNI.

7voto

Seth Points 18568

YAGNI est là pour rappeler à vous de voir la différence entre ce que vous pouvez faire et ce que vous devez faire pour satisfaire vos besoins.

Par exemple,si votre exigence dit "laisser les gens créer des comptes et se connecter", il suffit d'utiliser votre cadre par défaut auth méthodes et de passer à la prochaine demande.

Votre application web peut soutenir OpenID, Active Directory, Base de données Locale, Fichier Plat, et d'une foultitude d'autres types de méthodes d'authentification, mais vous pouvez satisfaire à l'exigence de la mise en œuvre la plus simple. (Pour moi, YAGNI implique DTSTTCPW).

"Je ne peux rien faire, étant donné assez de temps"

- Chaque Programmeur, je n'ai Jamais Rencontré

6voto

Aaronaught Points 73049

Pas fan de la YAGNI principe moi-même; je le vois utilisé trop souvent, dans la justification de mal-conçu logiciel. Sur logiciel conçu est aussi un problème, bien sûr, mais "YAGNI" n'a pas vraiment d'laisse guère de place pour l'impact réel de l'analyse.

Il s'avère que, dans le monde du logiciel, la plupart des choses que vous pensez que vous n'allez pas avoir besoin, en fait vous allez avoir besoin. Et puis certains. Qui'dathunkit.

J'ai écrit un ou deux applications qui étaient censés être jetable d'applications ou de hold-overs qui sont toujours en production au bout de deux ans. Ils sont une douleur à maintenir.

Surtout quand il s'agit de quelque chose comme la sécurité - vous avez probablement sont en aurez besoin.

3voto

mattjames Points 898

YAGNI est un bon principe mais ce n'est pas le seul principe de conception. Bon nombre des éléments ci-dessus ont du sens pour mettre un produit devant les utilisateurs rapidement. Mais si, par exemple, les pages Web qui parlent directement à la base de données commencent à avoir du code en double, vous constaterez que la dépendance servile d'un principe (YAGNI) à l'exclusion des autres (dans ce cas, SEC) limitera votre capacité pour répondre à votre nombre croissant de demandes de fonctionnalités d'utilisateurs, espérons-le.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X