Frage

Ich spreche von klassischen Unternehmensanwendungen. Typischerweise in irgendeiner Art von Anwendung-Server oder Containern gehostet. Nichts Besonderes, nur Einheiten, Dienstleistungen, Präsentation / UI und relationale Speicher.

Jedes Mal, wenn ich das synchronized Schlüsselwort (entweder auf Methoden oder für Blöcke) in einer solchen Anwendung zu sehen bekomme ich sehr verdächtig. Meiner Meinung nach ist dies entweder ein Zeichen für nicht grundlegenden architektonische Konzepte zu verstehen (zum Beispiel, dass ein Domänenmodell zwischen mehreren Clients nicht geteilt wird) oder noch schlimmer ein Zeichen, dass die Architektur tatsächlich sehr verpfuscht.

Haben Sie meine Einstellung teilen hier? Oder bin ganz erfasse ich weg? Haben Sie Anwendungsfälle, wo die Synchronisation tatsächlich erforderlich ist in einer klassischen Unternehmensanwendung?

haben
War es hilfreich?

Lösung

ich mit Ihnen einverstanden für Business-Logik-Code, aber in einer Unternehmensanwendung haben Sie auch technischen Code und manchmal braucht man eine gewisse Synchronisation für die gemeinsamen ‚technischen‘ Zustand. Das synchronisierte Schlüsselwort kann hierfür verwendet werden. (Sie auch auf Atom variable Relais kann, oder verwenden Sie etwas außerhalb der Anwendung wie eine DB-Sequenz technischen Zustand zu teilen ...)

Wenn Sie sequenzielle Rechnungsnummer erstellt werden sollen - ohne Löcher in der Reihenfolge - benötigen Sie einen Weg, um etwas Zustand zu teilen, und eine Art und Weise zu synchronisieren ...

Andere Tipps

Ich stimme Ihnen zu.

Ich denke, Synchronisation wichtig ist, wenn Thread-sichere Komponenten entwerfen, aber es ist normalerweise nicht notwendig, in „Business-Logik“ Code.

Mit dem gemeinsam genutzten Zustand Einführung Sie können die Leistung erhöhen, aber Sie sind die Verringerung der Skalierbarkeit Ihrer Anwendung für die Zukunft.

Wenn eine gleichzeitige Design ist notwendig, kann es transparent für den Anwendungsentwickler behandelt werden, beispielsweise einen Anwendungsserver.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top