Softwareentwicklung

Fragen und Antworten für Fachleute, Akademiker und Studenten, die im Lebenszyklus der Systementwicklung arbeiten

5
Ist es möglich, die Sicherheit für beliebigen Code programmgesteuert zu bewerten?
Ich habe in letzter Zeit viel über sicheren Code nachgedacht. Gewindesicher. Speichersicher. Nicht-explodieren-in-deinem-Gesicht-mit-einem-Segfault-Safe. Aus Gründen der Klarheit in der Frage verwenden wir jedoch das Sicherheitsmodell von Rust als unsere Definition. Die Gewährleistung der Sicherheit ist häufig ein Problem, wie groß das Netz ist, da es, wie Rusts Bedarf zeigt unsafe, …

2
Repository-Muster vs DAL-Objekterstellung
Soweit ich gelernt habe, IRepositorysollte das enthalten CRUD. Dann erben wir dies IRepositoryin unseren anderen Interfaces like IProductund implementieren IProductkonkrete Klassen ProductRepositorymit Methoden wie GetAllProducts(), Top5Products(). Dasselbe könnten wir auch mit der n-Tier-Architektur tun. wie, Erstellen DAL Class Libraryund definieren Sie darin eine Klasse Productmit Methoden wie GetAllProducts(), Top5Products(). In …

6
Wollte Dijkstra eine Modularisierung des Codes, als er über die Trennung von Bedenken schrieb?
Zuerst las ich einen Auszug aus Edsger W. Dijkstras 1974 erschienenem Artikel "Über die Rolle des wissenschaftlichen Denkens": Lassen Sie mich versuchen, Ihnen zu erklären, was nach meinem Geschmack für jedes intelligente Denken charakteristisch ist. Es ist so, dass man bereit ist, einen Aspekt seines Themas aus Gründen seiner eigenen …


2
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 wie: BadRequestException AuthenticationFailureException ProductNotFoundException Jedes dieser Elemente basiert auf dem von …


1
Name der Technik zum Ableiten von Typargumenten eines Typparameters?
Setup: Nehmen wir an, wir haben einen Typ namens, Iteratorder einen Typparameter hat Element: interface Iterator<Element> {} Dann haben wir eine Schnittstelle, Iterabledie eine Methode hat, die eine zurückgibt Iterator. // T has an upper bound of Iterator interface Iterable<T: Iterator> { getIterator(): T } Das Problem mit Iteratorder Generizität …

3
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); } } Frage 1: Liegt es an der return new StreamReader(filename);Innenseite for loop? oder die Tatsache, dass …

6
Was kann im Zusammenhang mit der funktionalen Programmierung schief gehen, wenn mein Objekt veränderlich ist?
Ich kann sehen, dass die Vorteile von veränderlichen gegenüber unveränderlichen Objekten wie unveränderlichen Objekten aufgrund des gemeinsamen und beschreibbaren Status viele schwer zu behebende Probleme bei der Multithread-Programmierung beseitigen. Im Gegenteil, veränderbare Objekte helfen dabei, mit der Identität des Objekts umzugehen, anstatt jedes Mal eine neue Kopie zu erstellen, und …

5
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 sind einige Jahre alt, als …



1
In-Source-Build vs. Out-Of-Source-Build
In meiner (hauptsächlich C ++) Entwicklung habe ich mich lange an die Verwendung von Out-of-Source-Builds gehalten. Das heißt, meine Quelle sitzt in der Regel in einem /project/srcVerzeichnis und die Builds leben in einer /project/build/bin/release, /project/build/bin/debugVerzeichnisse. Ich habe dies getan, weil dadurch meine Quellverzeichnisse von Zwischendateien befreit werden, ich einen Speicherort …

3
Wie würde ich eine TryParse-Methode entwerfen, die im Falle eines Analysefehlers detaillierte Informationen liefert?
Beim Parsen von Benutzereingaben wird generell empfohlen , keine Ausnahmen auszulösen und abzufangen, sondern Validierungsmethoden zu verwenden. In der .NET-BCL ist dies beispielsweise der Unterschied zwischen int.Parse(löst eine Ausnahme für ungültige Daten aus) und int.TryParse(Rückgabe falsefür ungültige Daten). Ich entwerfe meine eigenen Foo.TryParse(string s, out Foo result) Methode und ich …
9 c#  .net  api-design 

4
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 Implementierungen. Die Kernklasse, die IAmbientContext mit allen drei Klassen akzeptiert oder …

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.