Softwareentwicklung

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

5
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 Datenbank-Backend …

3
Schreiben Sie Unit-Tests manuell anhand eines Beispiels?
Wir wissen, dass das Schreiben von JUnit- Tests einen bestimmten Pfad durch Ihren Code zeigt. Einer meiner Mitarbeiter kommentierte: Das manuelle Schreiben von Komponententests ist Proof By Example . Er kam aus dem Hintergrund von Haskell, das Tools wie Quickcheck und die Fähigkeit hat, über das Programmverhalten mit Typen nachzudenken …



2
Welche Daten sollen als "Claim" gespeichert werden?
In ASP.Net Core finde ich, dass die ClaimsAutorisierung eine sehr nicht konkrete Methode ist. Wir können alles als ClaimTypeund ClaimValuepaar hinzufügen ; Gruppen, Vorname, Nachname, Brithdate, canAccessThisURI, isEditor usw. Bei diesem Ansatz (Speichern von allem, was als Ansprüche gespeichert werden kann) wird jedoch eine große Anspruchstabelle erstellt, die 50% meiner …


4
Ist eine Generator-Sprachfunktion wie "Yield" eine gute Idee?
PHP, C #, Python und wahrscheinlich einige andere Sprachen haben ein yieldSchlüsselwort, mit dem Generatorfunktionen erstellt werden. In PHP: http://php.net/manual/en/language.generators.syntax.php In Python: https://www.pythoncentral.io/python-generators-and-yield-keyword/ In C #: https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/yield Ich bin besorgt, dass als Sprachfeature / yield-einrichtung einige Konventionen verletzt werden. Eines davon ist "Gewissheit". Diese Methode gibt bei jedem Aufruf ein …


7
Mache ich meinen Unterricht zu detailliert? Wie soll das Prinzip der Einzelverantwortung angewendet werden?
Ich schreibe viel Code, der drei grundlegende Schritte umfasst. Holen Sie sich Daten von irgendwoher. Transformiere diese Daten. Legen Sie diese Daten irgendwo ab. Normalerweise verwende ich drei Arten von Klassen - inspiriert von ihren jeweiligen Designmustern. Fabriken - um ein Objekt aus einer Ressource zu erstellen. Mediatoren - Um …

3
C # -Muster, um „freie Funktionen“ sauber zu handhaben und statische Klassen im „Utility Bag“ im Helper-Stil zu vermeiden
Ich habe kürzlich einige statische "Utility Bag" -Klassen im Helper-Stil überprüft, die in einigen großen C # -Codebasen schweben, mit denen ich arbeite. Grundsätzlich Dinge wie das folgende sehr komprimierte Snippet: // Helpers.cs public static class Helpers { public static void DoSomething() {} public static void DoSomethingElse() {} } Die …


6
Sollten Unit-Tests nur "funktionale" Software abdecken?
Wir verwenden StructureMap in einem neuen Softwareentwicklungsprojekt. Eines der Teammitglieder hat einen Komponententest implementiert, der im Wesentlichen die StructureMap- Containerkonfiguration testet . Dies geschieht durch Folgendes: Zählt die Anzahl der Instanzen von Assemblys, die für Klassen in unserem Anwendungsnamespace konfiguriert sind. Definiert erwartete Instanzen auf Klassenebene Gibt an, dass die …


4
DDD-Ansatz für grundlegende CRUD-Operationen in einer komplexen domänenzentrierten Anwendung
Mein Unternehmen schreibt unsere Webanwendung von Grund auf neu. Es ist eine große Anwendung auf Unternehmensebene mit einer komplexen Domäne in der Finanzbranche. Wir verwenden ein ORM (Entity Framework) für die Persistenz. Im Wesentlichen konzentriert sich die Hälfte unserer Anwendung darauf, Rohdaten vom Benutzer zu sammeln, zu speichern, und die …


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.