web-dev-qa-db-fra.com

Existe-t-il des règles générales ou des meilleures pratiques pour la construction d'un nouveau cadre?

Je dois commencer la conception et le développement d'un nouveau cadre pour interagir avec une ECM source ouverte. Cela empêche un modèle de données personnalisé pour aider les développeurs de sites Web à interagir avec cette ECM, de sorte qu'ils n'ont pas besoin de se soucier des détails de la manipulation des nœuds et des autres détails de niveau bas. C'est juste un tas de classes et de méthodes pour développer.

J'ai des doutes sur la manière de gérer l'organisation et la gestion de ce projet: existe-t-il des règles générales à suivre, aux conseils, aux meilleures pratiques ou à quelque chose à garder à l'esprit pour développer ce type de projet?

Je suis sûr qu'il y a une différence entre le développement d'un cadre ou d'une bibliothèque et d'une application.

18
Andrea Girardi

Tout d'abord voici mes 2 règles pour éviter le syndrome de déchets de cadre:

  • L'absence d'un existant, couvrant 80% de mes besoins et extensible pour correspondre aux 20 derniers%
  • La quasi-certitude que je vais l'utiliser à nouveau, dans une autre application

Après avoir passé ces personnes, vérifiez ceci:

14
user2567

1) Les caractéristiques ne doivent être ajoutées qu'à un cadre lorsqu'ils sont extraits du code de travail. En d'autres termes, avant d'ajouter votre nouvelle idée cool à votre nouveau cadre cool, assurez-vous qu'il ajoute de la valeur et réduit la répétition dans une application de travail et réelle.

2) Documentation, documentation, documentation.

3) Documentation, documentation, documentation.

5
Adam Crossland

Une expérience douloureuse et beaucoup d'efforts gaspillés conduisent à ces conseils: extraire ou refacteur un cadre de logiciels de travail. Construisez ce logiciel en gardant à l'esprit que vous pensez que vous voudrez extraire un cadre à l'avenir, mais ne construisez pas le cadre d'abord.

3
Dennis S.

Je suggérerais le livre Directives de conception-cadre . Il fait quelques années, mais les principes restent vrais. Il a une tonne de schémas et explique le raisonnement des décisions que vous ferez lorsque vous construisez un cadre.

3
Ryan Hayes

1) Collez sur de bonnes conventions dès le départ, assurez-vous d'avoir documenté une convention très spécifique, les meilleurs cadres sont ceux qui sont cohérents en interne.

2) Assurez-vous que tout est hautement documenté, des bons commentaires du code tout au long de l'explication des fonctions les plus importantes requis et de produire, même si cela vous semble super simple, vous pourriez avoir quelqu'un l'utiliser à la 14ème heure droite et ils Juste besoin qu'une seule chose juste alors.

3) Définissez un mémoire de projet pour vous-même, avec ce que vous voulez que le cadre atteigne, des objectifs réalistes et des priorités globales.

4) Si cela sera disponible pour que les personnes utilisent, assurez-vous d'avoir une forme de processus de support/suivi des bogues en place. Il y aura des bugs, cela nous arrive à tous, mais si vous pouvez les gérer à partir du tout, cela facilitera votre vie.

Dans l'ensemble, une approche similaire pour construire n'importe quelle application, mais les développeurs sont encore plus gros que les utilisateurs et les meilleurs cadres sont ceux que nous pouvons ramasser, donner un sens à ce que nous n'avons pas à se battre.

2
Nicholas Smith

Je ne suis pas d'accord avec beaucoup de ce qui a été dit et j'estime que plus a été laissé non mentale, alors je vais commencer à partir de zéro.

Méthodologies Agiles

Adoptez des méthodologies agiles pendant votre développement-cadre afin que vous puissiez vous adapter au changement, réagir rapidement aux barrages routiers et assurer un produit final fonctionnel et de qualité. Les méthodologies agiles sont celles qui, selon le "manifeste agile", hiérarchisent:

Individus et interactions sur processus et outils
Logiciel de travail sur Documentation complète
Collaboration client sur Négociation de contrat
[.____] Répondre au changement sur suite à un plan

C'est exact. J'ai dit que la documentation est plus importante que la documentation. Notez que le "Manifeste Agile" mentionne que les priorités de droite sont toujours importantes, juste moins que celles de gauche.

La communication

Quiconque fait que le cadre doit savoir:

  1. Comment il sera utilisé: le application cible
  2. Quel problème il est destiné à résoudre: le problème ciblé
  3. Qui l'utilisera: le Audience cible

Par exemple, si une entreprise avait l'intention de développer une application finale avec ASP========= Il serait stupide de dire à ses programmeurs "faire ce cadre" sans leur dire ce qui précède. Si les programmeurs disaient " t connaître l'application cible qu'ils ne pourraient pas le rendre web. S'ils ne connaissaient pas le problème, ils pourraient faire un cadre pour un but différent. S'ils ne connaissaient pas le public, ils pourraient programmer le cadre en C++. de ces circonstances rendraient le cadre résultant inutile.

Style

Inutile de dire, établir un style/format de programmation et coller avec elle.

Le e est

  1. Modularité: Réutiliser le code de manière programmatique, pas littéralement.
  2. Efficacité: Votre code est destiné à la réutilisation. Toute détrimentage à la vitesse est multipliée.
  3. Maintenabilité: Vous souhaitez pouvoir modifier le cadre pour mettre à jour plusieurs programmes, sans avoir à modifier lesdits programmes.
  4. tilisabilité: Les applications peuvent-elles utiliser réellement votre cadre sans sauter à travers des cerceaux?
  5. praticité: Ne réinventez pas la roue si vous ne devez pas le faire. Votre cadre peut dépendre d'autres cadres.
  6. redondance: Prises d'accueil/Erreurs. Partout. Gérer eux. Partout. Ne faites confiance à aucun code mais que dans la portée locale pour gérer les erreurs, même si vous savez que cela fait.
2
Zenexer

Je suis sûr qu'il y a une différence entre le développement d'un cadre ou d'une bibliothèque et d'une application.

Les processus de développement sont essentiellement les mêmes. Les différences peuvent aboutir aux problèmes de marketing et de déploiement, même si je constate que les différences les plus importantes sont généralement en termes de portée et de définition du projet. N'oubliez pas qu'une demande peut inclure ou utiliser un cadre ou une bibliothèque, un cadre peut être une collection de bibliothèques.

J'ai des doutes sur la manière de gérer l'organisation et la gestion de ce projet: existe-t-il des règles générales à suivre, aux conseils, aux meilleures pratiques ou à quelque chose à garder à l'esprit pour développer ce type de projet?

L'organisation et la gestion du projet sont à nouveau la même pour tout projet de développement. Encore une fois, cela revient à la portée. En ce qui concerne l'écriture d'un cadre, il est toutefois de voir une vision très claire sur ce que vous essayez d'atteindre et de passer des règles de conception strictes sur l'interface publique avec le cadre afin de garantir la cohérence de la présentation de l'API. Si vous autorisez chaque développeur de faire leur propre chose, vous vous retrouverez avec un désordre compliqué et une design de l'API très inélégant.

Je ferai deuxièmes de Ryan Hayes ' Recommandation à lire directives de conception-cadre Même si le livre lui-même vise à développer des cadres basés sur .NET, car le conseil général est applicable quel que soit le Technologies de mise en œuvre spécifiques que vous pourriez choisir d'utiliser.

À partir de l'expérience, je vous conseillerais d'abord de coller au principe classique de Yagni en mettant en œuvre d'abord les interfaces publiques les plus simplistes, puis en développant une plus grande commande et une plus grande profondeur plus tard, mais faites attention à utiliser des noms utiles pour montrer pourquoi les méthodes ou les classes sont en train d'être élargies. Je n'ai jamais été un fan d'ajout d'un "ex" ou d'autres suffixes similaires aux noms de méthodes, ou d'ajouter des chiffres aux définitions d'interface étendues. Différenciez sur la fonctionnalité et vos noms d'interface/de méthode devraient devenir plus clairs et, espérons-le, moins obscurcés et déroutants.

0
S.Robins