Question

Quels sont les principes, les qualités de code, pratiques, aproaches, les caractéristiques linguistiques ou cadre vous aider à réutiliser efficacement les fonctions, les classes etc dans plus large éventail de cas. Toutes les situations sont intéressantes: soit vous pouvez modifier à la fois la mise en œuvre et de l'interface du code pour activer / améliorer la réutilisation, ou seulement la mise en œuvre ou rien du tout. Les indicateurs clés de l'efficacité de la réutilisation sont (comme pour moi):

  • combien il réduit les efforts de mise en œuvre et maintanance
  • la qualité de l'application ne se dégrade
  • combien la complexité est réduite

(tous sont comparés à réimplémentant de niveau inférieur).

PS. Si possible s'il vous plaît spécifier un facteur par réponse à la description comment il aide dans votre cas.

Était-ce utile?

La solution

Test Driven développement. Pour le code d'être facilement testé unitairement il se doit:

1) faire une seule chose

2) ont aussi peu que possible dépendances

3) ont souvent les dépendances adoptées en (afin qu'ils puissent être émulés)

Par une coïncidence étonnante ces facteurs font également pour le code réutilisable. En fait, ce n'est pas un hasard - la meilleure façon d'avoir un code réutilisable pour vous assurer qu'il est utilisé par au moins deux appelants le plus tôt possible. Code créé avec TDD commence la vie avec deux parents -. Le code en cours de construction et les tests unitaires, il est réutilisé depuis le début

TDD a beaucoup d'autres avantages en dehors de la réutilisation - il vous donne des tests automatisés pour tout votre code, il agit à titre d'exemple la documentation pour savoir comment utiliser le code, et il rend refactoring plus sûr. L'écriture de code avec TDD peut prendre plus de temps à écrire du code sans tests, mais vous fera souvent par besoin beaucoup moins de temps de débogage.

Autres conseils

Il est un classique - couplage et une grande cohésion. Si un module ou fonction exécute une tâche spécifique et a peu ou pas de dépendances, il sera beaucoup plus réutilisable (car il s'intégrer dans une plus grande variété de situations) que si elle effectue des tâches multiples, a beaucoup d'effets secondaires, il faut d'autres modules , etc.

Le principal facteur est un être humain et ses compétences, l'expérience, le cerveau.
Toutes les meilleures pratiques sont sans valeur si une personne ne sait pas comment les appliquer.

Pour être plus précis et répondre à ce commentaire, je liste les compétences / attitudes personnelles suivantes qui contribuent à une réutilisabilité de code:

  • Discipline (copier coller est facile, bon réutilisabilité exige de la discipline)
  • Passion (vous devez veux faire du code réutilisable et être fiers)
  • Vision du projet (vous devez voir la grande image du projet, non seulement des instructions de code)
  • Sentiment du code (vous devez être en mesure d'attraper code odeurs , voir des pratiques et des modèles qui peuvent aider)
  • Seulement permettant Test-Driven-développement esprit peut assurer la qualité du code aux côtés réutilisabilité.

Il est semblable à devenir un bon mathématicien, scientifique ou artiste. Il existe de nombreuses pratiques que tout le monde peut lire et apprendre. Mais seuls ceux qui peuvent appliquer les pratiques peuvent maîtriser leur métier.

Le point principal est que la question de réutilisabilité est plus sur personnalité, plutôt que la technicité .

Fonctions ne devraient pas avoir d'effets secondaires, essentiellement. Ne pas utiliser des variables globales passe - Quelle fonction a besoin dans les arguments, et passer la sortie de fonction en tant que valeur de retour

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