Cette question est apparue d'une application Web, bien qu'elle soit aussi valable pour d'autres types d'applications. J'utilise MVC. P>
J'ai à la fois un code d'application (modèles, vues, contrôleurs, formulaires, aides, etc.) et code de bibliothèque (bibliothèques externes et bibliothèque interne avec mappeurs de base de données auto-écrites, convertisseurs JSON, etc.). P>
Je me demande où vous dessinez habituellement la ligne entre l'application et le code de la bibliothèque (lorsque les deux sont écrits en interne)? P>
Une partie du code de la bibliothèque devient plutôt spécifique au projet, mais reste un peu résumé. P>
3 Réponses :
Ma règle générale est la suivante: tout ce qui pourrait être utilisé dans un autre projet et peut être effectué pour ne pas dépendre facilement d'un code spécifique à la demande (et il y a toutes sortes de techniques de faire cela) devrait entrer dans un une bibliothèque. Donc, si cela est potentiellement réutilisable, cela entre dans une bibliothèque. P>
Le code de la bibliothèque est destiné à être réutilisable, le code de l'application n'est généralement pas. Gardez le code dans une bibliothèque lorsqu'il n'est pas attaché spécifiquement à l'application. p>
En cas de doute, essayez de répondre à cette question: P>
Si j'écris une autre application, ce code restera-t-il? P> blockQuote>
face à ces types de questions de catégorisation, je veux connaître une chose: les conséquences de la mauvaise stratagature. P>
Ce code est "Bibliothèque", ce code est "Application" ... pour la prestation de laquelle cette distinction est-elle faite? Que se passerait-il si nous mettons du code dans la mauvaise catégorie? P>
Une réponse possible: p>
Il affecte la réutilisation du code. Supposons que nous ayons une stratégie: le code de la bibliothèque est disponible dans une DLL avec les en-têtes requis, etc. Le code d'application est juste déployé dans une .exe. P>
Mettez une belle routine pour effectuer un calcul difficile dans l'application, pas la bibliothèque, alors il ne peut pas être facilement réutilisé. p>
Peut-être d'autres choses suivent de cette ligne de pensée ... Questions de Versioning s'appliquent. Avons-nous besoin de produire une meilleure documentation? [Même avec un seul développeur, nous pourrions prendre plus de soin?] Avons-nous besoin d'externaliser des informations de configuration, maquillez-nous de manière doublement sûre de ne rien dire du code difficile? P>