Softwareentwicklung

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

5
Der Grund für Top-Level-Domains (TLDs)
Ich habe es immer als selbstverständlich angesehen, dass TLDs existieren und beim Kauf eines Domainnamens berücksichtigt werden müssen. Aber ich frage mich, warum sie überhaupt existieren müssen. Ich verstehe nicht, warum Sie das Domain-Name-System nicht einfach so haben konnten: https://twitter/foo/bar https://example/foo/bar Das heißt, ich sehe keine wirkliche Notwendigkeit für TLDs …


2
Gemeinsame Entwicklungsaufgaben für agile User Stories
Mein Team wird Visual Studio Team Services für ein bevorstehendes Projekt verwenden. Mit den Agile-Tools kann ich User Stories und Aufgaben hierarchisch wie folgt organisieren: Episch> Feature> User Story> Aufgabe / Fehler Nehmen wir an, ich entwerfe ein Student Org (Club) -Managementsystem für Schüler und Berater. Studenten und Berater können …

4
Überprüfen des Ergebnisses eines Konstruktors in C #
Ich arbeite an einer Codebasis mit einem Kollegen, der die Gewohnheit hat, die Ergebnisse eines Konstruktors auf ähnliche Weise auf Null zu überprüfen Person p = new Person(); if (p != null) { p.Name = "John Smith"; } Mein Verständnis der .NET-Landschaft ist, dass ein Konstruktor eine Aufgabe niemals unerfüllt …

2
Best Practice für vertrauliche Informationen in der Quellcodeverwaltung
Ich weiß, dass dieses Thema viel behandelt wurde, aber ich kann keine Antwort auf meine spezifische Situation finden. Derzeit verwende ich .gitignore, um vertrauliche Inhalte auszuschließen und separat (Konfigurationsdateien usw.) aufzubewahren. Da sich meine Codebasis in immer mehr Projekte erweitert, wird dies immer schwieriger zu verwalten und ich habe auch …
8 git  security 

2
Null-Argument-Konstruktoren und immer gültige Entitäten
Ich habe in letzter Zeit viel über immer gültige Domänenentitäten gelesen. Ich bin zu der Überzeugung gelangt, dass ich Folgendes tun muss, um sicherzustellen, dass die Entitäten immer gültig sind: 1) Entfernen Sie die primitive Besessenheit und fügen Sie Validierungs- / Domänenregeln in die Wertobjektkonstruktoren ein, wie hier erläutert: https://enterprisecraftsmanship.com/2016/09/13/validation-and-ddd/ …

6
Sollten wiederverwendete Ausnahmetypen gegenüber Einwegarten bevorzugt werden?
Nehmen wir an, ich habe Doors, die von a verwaltet werden DoorService. Der DoorServiceist für das Öffnen, Schließen und Verriegeln der in der Datenbank gespeicherten Türen zuständig. public interface DoorService { void open(Door door) throws DoorLockedException, DoorAlreadyOpenedException; void close(Door door) throws DoorAlreadyClosedException; /** * Closes the door if open */ …

2
Nur ein Nummerntyp im Sprachdesign
Ich lerne gerade etwas über Compilerkonstruktion und Sprachdesign und denke darüber nach, welche nativen Datentypen ich in meiner Sprache unterstützen möchte. Jetzt gibt es eine ganze Reihe von Sprachen, die zwischen ganzzahligen und reellen Zahlen unterscheiden. Ich erinnere mich jedoch an einen Vortrag von Douglas Crockford, in dem er sagte: …

5
Entwerfen einer funktionsbasierten RESTful-API
Bitte führen Sie einen Streit zwischen mir und einem Freund. Wir entwickeln derzeit eine Produkt-API. Unsere Produkteinheit sieht so aus { "Id": "", "ProductName": "", "StockQuantity": 0 } Produktverkäufe werden von Dritten abgewickelt und sind verpflichtet, uns die gekaufte Menge mitzuteilen, damit das StockQuantityFeld verkleinert werden kann. Mein Ansatz: PUT …


4
Wann sollten Sie Erweiterungsmethoden für Ihre eigenen Klassen schreiben?
Ich habe kürzlich eine Codebasis gesehen, in der eine Datenklasse Addressirgendwo und dann an einem anderen Ort definiert wurde: fun Address.toAnschrift() = let { address -> Anschrift().apply { // mapping code here... } } Ich fand es verwirrend, diese Methode nicht direkt an der Adresse zu haben. Gibt es etablierte …
8 c#  design 

2
Liskovs Substitutionsprinzip: Wenn für den Subtyp ein zusätzliches Verhalten implementiert ist, das im Typ nicht vorhanden ist, liegt dann eine Verletzung von LSP vor?
In meinem Bestreben, besseren und saubereren Code zu schreiben, lerne ich die SOLID-Prinzipien kennen. In dieser Hinsicht erweist sich LSP als wenig schwierig, es richtig zu erfassen. Mein Zweifel ist, was ist, wenn ich einige zusätzliche Methoden in meinem Subtyp S habe, die nicht im Typ T vorhanden waren, wird …



7
Best Practice, um innerhalb einer verschachtelten Schleife fortzufahren?
Hier ist ein vereinfachtes Beispiel. Grundsätzlich werden Zeichenfolgen aus einer Zeichenfolgenliste überprüft. Wenn die Prüfung erfolgreich ist, wird diese Zeichenfolge ( filterStringOut(i);) entfernt, und es ist nicht mehr erforderlich, andere Prüfungen fortzusetzen. Also continuezum nächsten String. void ParsingTools::filterStrings(QStringList &sl) { /* Filter string list */ QString s; for (int i=0; …

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.