Was bedeutet "Downstream / Upstream-Design" in der Softwareentwicklung?
Was bedeutet "Downstream / Upstream-Design" in der Softwareentwicklung?
Antworten:
Vorgelagerte Komponenten sind andere Teile des Systems, von denen Ihre Komponente abhängig ist, um ihre Arbeit zu erledigen. Wenn sich das Design einer vorgeschalteten Komponente ändert, kann dies die Funktionsfähigkeit Ihrer Komponente beeinträchtigen. Wenn eine Upstream-Komponente einen Fehler aufweist, kann dieser Fehler in Ihrer Komponente auftreten.
Nachgelagerte Komponenten sind Teile des Systems, auf die sich Ihre Komponente auswirken kann. Änderungen an Ihrer Komponente können sich auf Komponenten auswirken, die Ihrer Komponente nachgeschaltet sind.
Stellen Sie sich eine Anwendung vor, die aus einer Datenbankebene und einer Anwendungsebene besteht. Die Datenbankebene wird als der Anwendungsebene vorgelagert betrachtet.
Upstream = den Brunnen hinauf (der Ursprung der Software) Downstream = hinunter zum Ozean (von Anwendungsfällen)
Open Source-Entwickler, die "Downstream" sind, bauen Anwendungen und Tools auf den fertigen Produkten. Diejenigen, die vorgelagert sind, arbeiten tatsächlich an den freizugebenden Produkten.
Wenn Sie Software entwickeln: Sie sind auf die Stabilität der vorgelagerten Entwicklung angewiesen. Und diejenigen, die an Ihrer Software arbeiten, sind nachgeschaltete Entwickler.
Ich denke, dies ist mehr Software-Engineering-Jargon als Englisch, aber so wie ich es verstehe, verwenden die Anwendungsentwickler die bereits entwickelten Tools, um ihre Anwendung fertigzustellen. Die Verwendung bereits erstellter Softwarebibliotheken, in denen bereits Entscheidungen darüber getroffen wurden, welche Bibliotheksfunktionen verfügbar sind, erfolgt nachgelagert.
Beim "Upstream Design" wird der Anwendungsentwickler konsultiert und in die Entwicklung der Bibliotheken einbezogen, bevor die Anwendungsarbeit überhaupt begonnen hat. Wenn Sie beispielsweise ein Softwareunternehmen mit Schwerpunkt auf Audiosoftware werden, müssen Sie möglicherweise Bibliotheken entwickeln, um die Bandbreite der Software abzudecken, die Sie entwickeln möchten. Es wäre schön, wenn Bibliotheksentwickler sich mit den Anwendungsentwicklern zusammensetzen könnten, damit die App-Entwickler Eingaben zu dem liefern können, was sie wollen.
Upstream ist maßgeschneiderter, was es viel teurer macht, aber möglicherweise ein besseres Endprodukt hervorbringt.