Softwareentwicklung

9
Umgebungskontext vs. Konstruktorinjektion

Ich habe viele Kernklassen, die ISessionContext der Datenbank, ILogManager für das Protokoll und IService für die Kommunikation mit anderen Diensten benötigen. Ich möchte die Abhängigkeitsinjektion für diese Klasse verwenden, die von allen Kernklassen verwendet wird. Ich habe zwei mögliche...

9
Folgen Sie dem Pfad dessen, was ich weiß, und versuchen Sie dann, korrekte Codierungspraktiken zu implementieren, oder beginnen Sie mit guten Codierungspraktiken und versuchen Sie, mich durchzuarbeiten?

Zunächst möchte ich sagen, dass ich es gewohnt bin, prozedurale Programmierung als mein Hobby zu betreiben - ich versuche, OOP in ein paar Sprachen zu lernen und die Theorie zu verstehen , nur nicht die Praxis. Ich habe ein Haustierprojekt, das ich erstellen wollte, speziell in PHP mit einem...

9
Microservices: MonolithFirst?

Ich habe nach Mikroservice-Architekturen gesucht, um einen Überblick über alle Vor- und Nachteile, wann und warum usw. zu erhalten. Viele der Informationen, die ich lese / beobachte, stammen von ThoughtWorks (Martin Fowler, Neal Ford, et al). Die meisten Arbeiten von Martin Fowler zu diesem Thema...

9
Granularität von Ausnahmen

Ich bin in eine Debatte zwischen ein paar Freunden und mir geraten. Sie bevorzugen allgemeine Ausnahmen wie ClientErrorExceptionund ServerErrorExceptionmit Details als Ausnahmefelder, während ich es vorziehe, die Dinge spezifischer zu gestalten. Zum Beispiel könnte ich eine Handvoll Ausnahmen haben...

9
Für-wenn Antimuster

Ich habe in diesem Blog-Beitrag über das For-If-Anti-Pattern gelesen und bin mir nicht ganz sicher, warum es ein Anti-Pattern ist. foreach (string filename in Directory.GetFiles(".")) { if (filename.Equals("desktop.ini", StringComparison.OrdinalIgnoreCase)) { return new StreamReader(filename); } }...

9
Warum ist DateTime.Month ein Int?

In C # hat die DateTimeEigenschaft Montheinen Typ int(eine 32-Bit-Ganzzahl mit Vorzeichen), ihr Bereich beträgt jedoch immer nur 1-12. Was sind die Gründe, warum sich das C # -Team für inteinen kleineren numerischen Typ entschieden hat, z. B. byte(8-Bit-Ganzzahl ohne