Je fais des applications métier où tous les autres développeurs sont habitués à faire des applications CRUD de base ou se concentrent uniquement sur la création d'interfaces jolies / fonctionnelles et j'obtiens beaucoup les éléments suivants.
"Avec la façon dont nous le faisons, l'employé aurait tout ce que vous pourriez faire avec un employé." Et c'était vrai. Cette «classe» avait des milliers de lignes de code et tout ce que vous pouviez faire avec un employé était là. Ou, pire encore, il y avait un tableau de données sur les employés et chaque développeur a compris comment faire ce qu'il voulait faire dans le gestionnaire d'événements.
Toutes les mauvaises choses de cette approche étaient vraies, mais au moins le développeur utilisant l'employé pouvait, sans aller vers d'autres documents, trouver comment inscrire l'employé dans un plan de santé, donner une augmentation de salaire, licencier, embaucher, transférer, etc. pour Manager et toutes les autres grandes idées. Ou, s'ils utilisaient l'employé d'autres tableaux de données nécessaires, ils pouvaient simplement faire ce qu'ils voulaient.
Oui, il y avait beaucoup de code en double. Oui, c'était un code très fragile. Oui, c'était beaucoup plus difficile que nécessaire. Oui, le changement de fonctionnalité était une source de peur et le copier-coller était naturel en raison de l'approche.
Mais ils pouvaient au moins découvrir ce qui était disponible en créant une classe ou ils pouvaient faire ce qu'ils devaient faire sans avoir à comprendre la différence entre les interfaces, les classes abstraites, les classes concrètes, etc. Et ils n'avaient pas à chercher autre chose que les méthodes renvoyées par intellisense ou connaître les tables où résident les données.
J'ai googlé / bingé et même yahoo! D mais je n'ai trouvé aucune reconnaissance de ce problème.
Alors peut-être qu'il n'y a pas de problème et qu'il me manque juste quelque chose. J'ai creusé la tête en essayant de trouver une solution où le (s) développeur (s) qui ne fonctionnent pas le comportement / la conception réelle peuvent facilement découvrir comment faire quelque chose sans avoir à référencer des documents externes ou à scanner les noms de classe dans les différents composants / projets pour trouver celui qui semble fonctionner.
La seule chose que j'ai pu trouver est de les avoir, faute d'un meilleur nom, "Table of Content Class" qui ne fait rien de plus que renvoyer les classes réelles (et vraiment la plupart d'entre elles sont des interfaces mais elles ne le font pas connaître la différence ou même le soin) que d'autres développeurs peuvent utiliser pour effectuer les tâches souhaitées. On se retrouve toujours avec de très grosses classes mais il n'y a presque aucun comportement en elles.
Existe-t-il un meilleur moyen qui ne nécessite pas une connaissance approfondie du niveau intermédiaire où la mise en œuvre réelle de SOLID a lieu?
Fondamentalement, ce que je demande, c'est qu'il existe un moyen de permettre aux développeurs de type CRUD de continuer à être des développeurs CRUD dans un système très complexe