In letzter Zeit habe ich es mir zur Gewohnheit gemacht, Java-Sammlungen mit menschlichen Klassennamen zu "maskieren". Einige einfache Beispiele: // Facade class that makes code more readable and understandable. public class WidgetCache extends Map<String, Widget> { } Oder: // If you saw a ArrayList<ArrayList<?>> being passed around in the code, …
Ich muss ein bestehendes Modul eines Projekts erweitern. Ich mag es nicht, wie es gemacht wurde (viele Anti-Patterns, wie zum Beispiel kopierter / eingefügter Code). Ich möchte aus vielen Gründen keinen kompletten Refactor durchführen. Sollte ich: Neue Methoden unter Verwendung bestehender Konventionen erstellen, auch wenn ich das für falsch halte, …
Um mehrere mögliche Fehler zu behandeln, die die Ausführung nicht anhalten sollten, habe ich eine errorVariable, die Clients überprüfen und zum Auslösen von Ausnahmen verwenden können. Ist das ein Anti-Pattern? Gibt es eine bessere Möglichkeit, damit umzugehen? Ein Beispiel dafür finden Sie in der mysqli- API von PHP . Angenommen, …
Meine Kollegen sagen gerne "Protokollierung / Caching / etc. Ist ein Querschnittsthema" und verwenden dann überall den entsprechenden Singleton. Dennoch lieben sie IoC und DI. Ist es wirklich eine gute Entschuldigung, das SOLI D- Prinzip zu brechen ?
Beim Schreiben einer Bibliothek für ein großes Projekt, an dem ich gerade arbeite, ist ein Problem aufgetreten, bei dem ein Token an eine E-Mail-Adresse gesendet und dann an den Code zurückgegeben werden musste, wo es für die weitere Verwendung verwendet werden kann. Mein Kollege sagt, er solle nur aus STDIN …
Die Frage, wo ich Funktionen platzieren soll, die sich nicht auf eine Klasse beziehen, hat einige Debatten ausgelöst, ob es in C ++ sinnvoll ist, Dienstprogrammfunktionen in einer Klasse zu kombinieren, oder ob sie nur als freie Funktionen in einem Namespace vorhanden sind. Ich komme aus einem C # -Hintergrund, …
Ich hatte eine Diskussion mit einem Kollegen, und es kam zu widersprüchlichen Vorstellungen über den Zweck der Unterklassenbildung. Meine Intuition ist, dass wenn eine primäre Funktion einer Unterklasse darin besteht, einen begrenzten Bereich möglicher Werte ihrer Eltern auszudrücken, es wahrscheinlich keine Unterklasse sein sollte. Er argumentierte für die gegenteilige Intuition: …
Betrachten Sie das folgende Design public class Person { public virtual string Name { get; } public Person (string name) { this.Name = name; } } public class Karl : Person { public override string Name { get { return "Karl"; } } } public class John : Person { …
Angenommen, ich habe einen Datenstrom von Dingen und möchte diese in der Mitte des Datenstroms "anreichern". peek()Dazu kann ich Folgendes verwenden : streamOfThings.peek(this::thingMutator).forEach(this::someConsumer); Nehmen Sie an, dass das Mutieren der Dinge an dieser Stelle im Code korrekt ist - zum Beispiel das thingMutator Methode das Feld "lastProcessed" möglicherweise auf die …
Es gibt einige Namen, bei denen Sie wissen, dass Sie bereits etwas durcheinander gebracht haben, wenn Sie nach diesen Namen greifen. Beispielsweise: XxxManager Das ist schlecht, weil eine Klasse beschreiben sollte, was die Klasse tut. Wenn das spezifischste Wort, das Sie für das, was die Klasse tut, finden können, "verwalten" …
Ich las einen Artikel über schlechte Programmierpraktiken . Es wurde erwähnt - "Yo-Yo-Code", der einen Wert in eine andere Darstellung konvertiert und ihn dann wieder an die ursprüngliche Position zurücksetzt (z. B .: Konvertieren einer Dezimalzahl in eine Zeichenfolge und dann zurück in eine Dezimalzahl oder Auffüllen einer Zeichenfolge und …
Ich hatte gerade eine Diskussion über eine Designauswahl nach einer Codeüberprüfung. Ich frage mich, was deine Meinung ist. Es gibt diese PreferencesKlasse, die ein Bucket für Schlüssel-Wert-Paare ist. Nullwerte sind legal (das ist wichtig). Wir gehen davon aus, dass bestimmte Werte möglicherweise noch nicht gespeichert wurden, und möchten diese Fälle …
Kürzlich bin ich auf einen MSDN-Artikel über das Verzweigen und Zusammenführen und SCM gestoßen : Branching and Merging Primer - Chris Birmele . In dem Artikel heißt es, 'Big Bang Merge' ist ein zusammenlaufendes Gegenmuster: Big Bang Merge - Verzögert das Zusammenführen von Zweigen bis zum Ende des Entwicklungsaufwands und …
In den letzten Monaten bin ich ein paar Mal über die folgende Technik / das folgende Muster gestolpert. Ich kann jedoch scheinbar keinen bestimmten Namen finden und bin mir auch nicht hundertprozentig sicher, welche Vor- und Nachteile er hat. Das Muster lautet wie folgt: Innerhalb einer Java-Schnittstelle wird wie gewohnt …
Gibt es ein Anti-Pattern, das ein historisch gewachsenes Softwaresystem beschreibt, bei dem mehrere Entwickler dem System gerade neue Funktionen hinzugefügt haben, aber niemand wirklich ein Auge auf die Gesamtarchitektur hat und auch keine Umgestaltungen vorgenommen wurden? Ich denke, dies passiert, wenn das Management / der Kunde ständig nach neuen Funktionen …
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.