Als «architecture» getaggte Fragen

Das Design und die Beschreibung eines Softwaresystems auf hoher Ebene. Durch das architektonische Design werden Details zu Implementierungen, Algorithmen und Datendarstellung entfernt, um sich auf das Zusammenspiel von "Black Box" -Komponenten zu konzentrieren.

30
Wie erstelle ich meine eigene Programmiersprache und einen Compiler dafür?
Ich bin gründlich in der Programmierung und bin auf Sprachen gestoßen, einschließlich BASIC, FORTRAN, COBOL, LISP, LOGO, Java, C ++, C, MATLAB, Mathematica, Python, Ruby, Perl, JavaScript, Assembler und so weiter. Ich kann nicht verstehen, wie Leute Programmiersprachen erstellen und Compiler dafür entwickeln. Ich konnte auch nicht verstehen, wie Leute …

17
Ist vorzeitige Optimierung wirklich die Wurzel allen Übels?
Ein Kollege von mir hat heute eine Klasse namens geschrieben ThreadLocalFormat, die im Grunde genommen Instanzen von Java-Format-Klassen in ein Thread-Local verschoben hat, da sie nicht thread-sicher und "relativ teuer" zu erstellen sind. Ich schrieb einen Schnelltest und errechnete, dass ich 200.000 Instanzen pro Sekunde erstellen könnte, und fragte ihn, …

16
Was ist bei der Anwendung des Grundsatzes der einheitlichen Verantwortung eine „Verantwortung“?
Es scheint ziemlich klar zu sein, dass "Prinzip der einheitlichen Verantwortung" nicht "nur eine Sache" bedeutet. Dafür sind Methoden da. public Interface CustomerCRUD { public void Create(Customer customer); public Customer Read(int CustomerID); public void Update(Customer customer); public void Delete(int CustomerID); } Bob Martin sagt, dass "Klassen nur einen Grund haben …


17
Ist es besser, NULL oder leere Werte von Funktionen / Methoden zurückzugeben, bei denen der Rückgabewert nicht vorhanden ist?
Ich suche hier eine Empfehlung. Ich habe Probleme damit, ob es besser ist, NULL oder einen leeren Wert von einer Methode zurückzugeben, wenn der Rückgabewert nicht vorhanden ist oder nicht bestimmt werden kann. Nehmen Sie die folgenden zwei Methoden als Beispiele: string ReverseString(string stringToReverse) // takes a string and reverses …

9
Gibt es einen „echten“ Grund, warum Mehrfachvererbung gehasst wird?
Die Idee, mehrere Vererbungen in einer Sprache zu unterstützen, hat mir immer gefallen. Meistens wird jedoch absichtlich darauf verzichtet, und der vermeintliche "Ersatz" sind Schnittstellen. Interfaces decken einfach nicht den gleichen Grund ab, den Mehrfachvererbung hat, und diese Einschränkung kann gelegentlich zu mehr Boilerplate-Code führen. Der einzige Grund, den ich …

8
Kritik und Nachteile der Abhängigkeitsinjektion
Dependency Injection (DI) ist ein bekanntes und modisches Muster. Die meisten Ingenieure kennen die Vorteile: Isolation bei Unit-Tests möglich / einfach machen Abhängigkeiten einer Klasse explizit definieren Gutes Design ermöglichen ( Single Responsibility Prinzip (SRP) zum Beispiel) Schnelle Aktivierung von Switching-Implementierungen ( DbLoggeranstelle von ConsoleLoggerbeispielsweise) Meiner Meinung nach besteht branchenweit …

10
Verwenden Sie nicht "statisch" in C #?
Ich reichte einen Antrag ein, den ich an einige andere Architekten zur Codeüberprüfung schrieb. Einer von ihnen schrieb mir fast sofort zurück und sagte: "Verwenden Sie nicht" statisch ". Sie können keine automatisierten Tests mit statischen Klassen und Methoden schreiben." Statisch "ist zu vermeiden." Ich habe geprüft, und 1/4 meiner …

5
Widersprechen die Richtlinien für die asynchrone / erwartete Verwendung in C # nicht den Konzepten einer guten Architektur und einer Abstraktionsschichtung?
Diese Frage betrifft die C # -Sprache, aber ich erwarte, dass sie andere Sprachen wie Java oder TypeScript abdeckt. Microsoft empfiehlt Best Practices für die Verwendung asynchroner Aufrufe in .NET. Wählen wir unter diesen Empfehlungen zwei aus: Ändern Sie die Signatur der asynchronen Methoden so, dass sie Task oder Task …
103 c#  architecture  async 


17
Ist es eine gute Idee, eine Architektur zu entwerfen, die denkt, dass die Benutzerschnittstellenklassen durch eine Befehlszeilenschnittstelle ersetzt werden können?
In Code Complete, Seite 25, heißt es, dass es eine gute Idee ist, die regulären Benutzerschnittstellenklassen einfach durch eine Befehlszeilenklasse zu ersetzen. Was ist mit den Problemen, die das Testen mit sich bringen kann? Lohnt sich diese zusätzliche Arbeit wirklich für Web- und Mobilprojekte? Was ist mit kleinen und mittleren …


9
Wie werden große Open-Source-Bibliotheken gewartet, während Code weit von „sauberem Code“ entfernt ist?
Ich bin noch unerfahren darin, qualitativ hochwertigen Code zu schreiben. Deshalb lese ich Bücher, die sich mit diesem Thema befassen, wie beispielsweise Clean Code von Robert C. Martin, und überprüfe ständig den Code bekannter Bibliotheken, um meine Fähigkeiten zu verbessern. Obwohl viele Open Source-Bibliotheken seit Jahren gepflegt werden, was bedeutet, …

7
Was ist die am meisten akzeptierte Transaktionsstrategie für Microservices?
Eines der Hauptprobleme bei einem System mit Mikrodiensten ist die Funktionsweise von Transaktionen, die sich über verschiedene Dienste erstrecken. In unserer eigenen Architektur haben wir verteilte Transaktionen verwendet, um dies zu lösen, aber sie haben ihre eigenen Probleme. Besonders Deadlocks waren bisher ein Schmerz. Eine andere Option scheint ein maßgeschneiderter …


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.