J'ai trois classes qui sont circulaires dépendantes les unes des autres: TestExecuter exécute les demandes de TestScenario et enregistre un fichier de rapport à l'aide de la classe ReportGenerator. Alors: TestExecuter dépend de ReportGenerator pour générer le rapport ReportGenerator dépend de TestScenario et des paramètres définis par TestExecuter. TestScenario dépend …
Je travaille sur ma propre application et je suis bloqué. Je dois implémenter une fonctionnalité mais je ne trouve pas de bonne approche pour l'implémenter. J'y pensais pendant quelques jours et aucune bonne pensée ne vint. La recherche sur Internet ne m'a pas inspiré. Je dois passer à autre chose, …
Dans la programmation, ce qu’on appelle le principe de moindre surprise? Comment ce concept est-il lié à la conception de bonnes API? Est-ce quelque chose qui ne s'applique qu'à la programmation orientée objet ou est-ce que cela imprègne également d'autres techniques de programmation? Est-ce lié au principe de "faire une …
J'ai besoin d'écrire un gestionnaire de système de notification. Voici mes exigences: Je dois pouvoir envoyer une notification sur différentes plates-formes, qui peuvent être totalement différentes (par exemple, je dois pouvoir envoyer un SMS ou un e-mail). Parfois, la notification peut être la même pour tous les destinataires pour une …
Quelle est la bonne attitude des développeurs lorsqu'ils discutent de nouvelles fonctionnalités, et notamment des fonctionnalités non critiques / discutables? Imaginons que vous développiez une sorte de langage de type Java, et le patron dit: "Nous avons besoin de pointeurs pour que les développeurs puissent jouer directement avec la mémoire …
Je prends un cours de conception de logiciels où je devrais choisir un logiciel open source à analyser du point de vue de la conception de logiciels. Ce doit être un gros projet: pas moins de 100 000 lignes de code. J'aimerais vraiment choisir un logiciel qui est très bien …
Le modèle "Builder" est-il limité à la lutte contre l'anti-modèle "constructeur télescopique", ou peut-on dire qu'il aborde également le problème plus général de la création compliquée d'objets immuables? La StringBuilderclasse a le mot «constructeur» dans son nom, mais cela n'a rien à voir avec les constructeurs télescopiques, cela nous aide …
L'algorithme de recherche binaire d'origine dans le JDK utilisait des entiers 32 bits et avait un bogue de débordement si (low + high) > INT_MAX( http://googleresearch.blogspot.com/2006/06/extra-extra-read-all-about-it-nearly.html ) . Si nous réécrivons le même algorithme de recherche binaire à l'aide d'entiers 64 bits (signés), pouvons-nous supposer qu'il low + highne dépassera …
Si je comprends bien, la conception descendante consiste à affiner le concept abstrait de haut niveau en petites pièces concrètes et compréhensibles, jusqu'à ce que le plus petit bloc de construction soit défini. D'un autre côté, le bas vers le haut définit les parties de bas niveau, puis construit progressivement …
En discutant avec des collègues des principes de conception et de développement de logiciels, j'ai remarqué que l'une des sources d'analogies les plus courantes est l'industrie de la construction. Nous construisons des logiciels et nous considérons la conception et la structure comme l' architecture . L'une des meilleures façons d'apprendre …
Assez simple. J'implémente une interface, mais il y a une propriété qui n'est pas nécessaire pour cette classe et, en fait, ne devrait pas être utilisée. Mon idée initiale était de faire quelque chose comme: int IFoo.Bar { get { raise new NotImplementedException(); } } Je suppose qu'il n'y a …
J'ai un petit problème avec les termes module et composant. Dans mon esprit, un module sont des classes groupées, qui ne sont accessibles que via une interface bien définie. Ils masquent tous les détails d'implémentation et sont réutilisables. Les modules définissent les modules dont ils dépendent. Quelle est la différence …
Disons, par exemple, que vous avez une application avec une classe largement partagée appelée User. Cette classe expose toutes les informations sur l'utilisateur, son identifiant, son nom, les niveaux d'accès à chaque module, le fuseau horaire, etc. Les données utilisateur sont évidemment largement référencées dans tout le système, mais pour …
Dans notre entreprise, nous n'utilisons aucun document de conception de produit. Nous avons trois employés au total, donc toutes les discussions sur la conception de produits se déroulent en personne ou sur Slack. (Nous sommes également sur le package de base Slack qui permet uniquement d'afficher les messages les plus …
La question ci-dessus est un exemple abstrait d'un problème commun que je rencontre dans le code hérité, ou plus précisément, des problèmes résultant de tentatives précédentes pour résoudre ce problème. Je peux penser à au moins une méthode de framework .NET qui est destinée à résoudre ce problème, comme la …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.