Je lis tout et son contraire sur la façon d'organiser son code. Bien sûr, j'essaie de suivre les principes SOLID, mais que je me considère comme un débutant, j'aurais besoin de conseils extérieurs sur la manière de les mettre en pratique. Cela concerne l'architecture générale du site que je détaille les couches ci-dessous:
Donc, ce sont les couches de ma candidature! La partie dont je suis le moins confiante est le service proxy qui est une mise en œuvre du modèle de conception proxy. Peut-être que le service proxy a eu beaucoup de responsabilité.
En outre, je sais que cela est peut-être hors de sujet, mais je ne comprends pas la chose à propos de l'inversion de dépendance. Je veux dire, devrais-je vraiment créer une interface pour chaque service de proxy? Et chaque interface aura donc beaucoup de fonction!
Sur la base du principe d'inversion de dépendance, toutes les classes logiques de l'entreprise doivent mettre en œuvre une interface graine fine afin de permettre de multiples implémentations. source
Mais ... j'ai lu que l'interface doit être aussi petite que possible.
Alors gardez vos interfaces petites. Vous ne voulez pas qu'une interface ait 30 méthodes, 3 est un objectif bien meilleur. source
et sur le contraire J'ai également lu cela, car le service est responsable du flux logique, c'est bon s'ils contiennent beaucoup de fonctionnalités:
Notez que les classes de services peuvent sembler rompre le principe de responsabilité unique car ils peuvent appeler plusieurs classes de différentes couches et packages dans une seule méthode, mais c'est parce qu'ils modélisent le flux logique des données et, en tant que telles, c'est une pratique correcte. source
Alors enfin je suis perdu entre toutes ces informations et j'ai besoin de quelqu'un pour me pousser dans la bonne direction!
Vous essayez d'appliquer SOLID Principes sur le niveau de service. Bien qu'ils soient à des principes généraux, ils ne sont pas un bon ajustement dans votre cas. SOLID= s'applique à l'orientation de l'objet dans un contexte linguistique de programmation.