Softwareentwicklung

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

5
Offen Geschlossenes Prinzip in Entwurfsmustern
Ich bin etwas verwirrt darüber, wie das Open-Closed-Prinzip im wirklichen Leben angewendet werden kann. Die Anforderungen an geschäftliche Änderungen ändern sich im Laufe der Zeit. Nach dem Open-Closed-Prinzip sollten Sie die Klasse erweitern, anstatt die vorhandene Klasse zu ändern. Jedes Mal, wenn ich eine Klasse erweitere, scheint es mir nicht …

3
Beste Lösung, um zu autorisieren, dass ein Benutzer nur mit seinen eigenen Ressourcen in einer REST-API ändern / handeln darf
Hintergrund: Derzeit wird eine REST-API unter Verwendung des Knotens w / express erstellt, die von einer mobilen App und schließlich einer (modernen browserbasierten) Website verwendet wird. Ich versuche herauszufinden, wie die Aktualisierungs- / Aktionsanforderung eines Benutzers am besten autorisiert werden kann, damit er nur seine eigenen Ressourcen ändern kann. Die …

3
Sollte jedes Objekt wissen, wie man sich präsentiert / zeichnet?
David West schlug in seinem Buch Object Thinking (Kapitel 10, Abschnitt 1, Unterabschnitt 2) vor, dass in einer idealen OO-Umgebung jedes Objekt in der Lage sein sollte, sich auf Anfrage zu präsentieren. sei es für Menschen (als GUI), nicht native Komponenten (als JSON und / oder XML) oder andere interessierte …

3
Design: So vermeiden Sie, dass die Abwärtskompatibilität aufgrund von Datenbankänderungen beeinträchtigt wird
Dies ist mein Szenario, ich habe diese Schnittstelle: public interface hitTheDataBase { public void insertMe(String [] values); public void modifyMe(String [] values); public DataTable selectMe(); } Und ich habe diese zwei Klassen, die die Schnittstelle implementieren: public Class hitSqlServer implements hitTheDatabase { public void insertMe(String [] values) { executes insert …

2
DDD: Erstellen wiederverwendbarer Module und Diensttypunterscheidungen (Domäne, Infrastruktur, Anwendung)
Nachdem ich "Implementieren von domänengesteuertem Design von Vaughn Vernon" gelesen habe, habe ich beschlossen, meinen Code für eine bessere Wiederverwendbarkeit umzugestalten, indem ich das, was ich für Kerndomänenkonzepte halte, in separate Module isoliere. Jedes Modul enthält einen eigenen Satz unterschiedlicher Architekturebenen, darunter die Domänen-, Infrastruktur- und die Anwendungs- / Präsentationsschicht …

5
Zusammensetzbare Parallelität in Java oder einer anderen Programmiersprache
Während ich ein Forschungspapier über Parallelität namens Software und die Parallelitätsrevolution ( HTML- Version) las . Ich bin auf folgende Zeilen gestoßen: Obwohl Sperren funktionieren, stellen sie leider ernsthafte Probleme für die moderne Softwareentwicklung dar. Ein grundlegendes Problem bei Schlössern besteht darin, dass sie nicht zusammensetzbar sind . Sie können …

2
Wie kann ich einen Chef (oder Kollegen) bei der Einschätzung der Komplexität einer Aufgabe / eines Projekts vorsichtiger machen?
Ich bin Softwareentwickler und arbeite in einer kleinen Webentwicklungsfirma. Es scheint ein wiederkehrendes Thema zu sein, dass ein mittlerer Manager mich fragt, wie lange etwas dauern wird, und wenn ich ihnen meine Schätzung gebe, denken sie, dass es zu hoch ist. Wenn es sich um einen eher technischen Manager oder …

7
Eine Eigenschaft, die sowohl ein einzelnes Datum als auch einen Datumsbereich darstellen kann: Wie kann man das richtig modellieren?
Ich arbeite in einem System, das auf zwei Arten eine "Versandschätzung" darstellen kann: Ein bestimmtes Datum: Der Artikel wird garantiert zu diesem Datum versendet Ein Tagesintervall: Der Artikel wird ab heute "X bis Y" Tage versendet Die Informationen zum Modell sind semantisch identisch, es handelt sich um "die Versandschätzung". Wenn …



2
Fehlerbehandlung im verteilten System
Dies ist die übliche Folge von zwei verteilten Komponenten in unserer Java-Anwendung: 1 A sends request to B 2 B starts some job J in parallel thread 3 B returns response to A 4 A accepts response 5 Job finishes after some time 6 Job sends information to A 7 …

4
Warum verwenden Lehrbücher eher Pseudocode als echte Sprachen?
In Colleges und in Algorithmuslehrbüchern ist es durchaus üblich, dass Lehrer und Autor den Kontrollfluss im Pseudocode erklären. Ist es angesichts des Aufkommens ausdrucksstärkerer Sprachen wie Python und Haskell vernünftig, dass Hochschulen wechseln, um Algorithmen über eine dieser Sprachen zu erklären? Der einzige Vorteil von Pseudocode, den ich mir vorstellen …

2
Event-Sourcing, Wiedergabe und Versionierung
Ich entwerfe ein System, das Event Sourcing, CQRS und Microservices verwendet. Ich muss verstehen, dass dies kein ungewöhnliches Muster ist. Ein Schlüsselmerkmal des Dienstes muss die Fähigkeit sein, aus einem Aufzeichnungssystem zu rehydrieren / wiederherzustellen. Microservices erzeugen Befehle und Abfragen auf einem MQ (Kafka). Andere Microservices reagieren (Ereignisse). Befehle und …

1
Verwenden von MySql 5.7 JSON-Spalten für EAV
Ich entwickle ein E-Commerce-Produkt und konnte alle Funktionen implementieren. Die Benutzer müssen zusätzliche Attribute für ein Produkt erstellen. Im Moment habe ich zwei Möglichkeiten. EAV EAV ist weitgehend verpönt, scheint aber für Magento zu funktionieren. Aber nachdem ich alle Kopfschmerzen untersucht habe, die es verursacht, bin ich etwas zurückhaltend, es …

2
Wo gelten Autorisierungsregeln für meine mehrschichtige Anwendung?
Bei dieser Frage geht es darum, Regeln meiner Bewerbung anzuwenden, die mich verwirren. Mein Controller verwendet den Dienst und der Dienst verwendet das Repository. public class CommentController: ApiController{ [HttpPost] public bool EditComment(Comment comment){ commentService.Update(comment); } } public class CommentService{ ICommentRepository repository; .... .... public void Update(Comment comment){ repository.Update(comment); } } …

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.