Ich habe Architekturlösungen für ein mobiles Projekt evaluiert, das neben nativen Apps auch einen Webdienst / eine Web-App enthält, und verschiedene Bibliotheken, Frameworks und Stacks wie Meteor untersucht , wobei es sich um eine Art "Open-Stack-Paket-Framework" handelt. ist eng mit Node.js verbunden .
Es wird viel über die Vorteile der Verwendung derselben Sprache auf Client- und Serverseite gesprochen, und ich verstehe das nicht. Ich könnte verstehen, ob Sie den gesamten Status einer Webanwendung sowohl auf dem Client als auch auf dem Server spiegeln möchten, aber Schwierigkeiten haben, andere Gewinne zu erzielen ... Workflow-Effizienz?
Ich versuche zu verstehen, warum die Parität der Client / Server-Sprache als heiliger Gral angesehen wird. Warum ist die Parität der Client / Server-Sprache bei der Softwareentwicklung wichtig?
Antworten:
Auf der PRO-Seite:
Auf der CON-Seite:
In der Webentwicklung haben sich die Sprachen vermehrt und leistungsstarke Tools für bestimmte Teile des Systems sowie die Notwendigkeit geschaffen, dass Entwickler oder Entwicklerteams viele Spezialgebiete erlernen müssen. In anderen Bereichen wie der Transaktionsverarbeitung oder eingebetteten Systemen, die einem Systemdesign-Ansatz folgen, können Einsparungen durch eine gemeinsame Sprache erzielt werden.
Neue Javascript-Frameworks scheinen sehr schnell bei uns zu sein, und es wird einige Arbeit geleistet, um APIs für das Back-End und Tools für das Front-End zu bündeln. Es kann klug sein, die Flexibilität und die Trennung von Bedenken zwischen clientseitigem und serverseitigem Code beizubehalten, damit Sie frei zwischen ihnen schweben können, ohne zu lange mit einem bestimmten Tool festzuhalten.
quelle
Vermutlich sind die wahrgenommenen Vorteile:
Das heißt, es erleichtert den Projektmanagern das Ressourcenmanagement und hat wenig oder keinen technischen Nutzen (möglicherweise sogar einen negativen technischen Nutzen, wenn Sie ein paar One-Trick-Ponys einstellen).
quelle
Der Vorteil besteht darin, dass Sie das Fachwissen und den Code von Personen auf beiden Seiten (in gewissem Umfang) wiederverwenden können.
Menschen
Die Entwickler müssen eine einzige Sprache beherrschen und einen einzigen Pool bilden. Anstatt zwei Pools von Fachwissen. Dies erleichtert den Wissenstransfer zwischen ihnen und ermöglicht ihnen einen einfacheren Wechsel zwischen Client- und Serverseite. Schließlich erleichtert es die Kommunikation mit Teammitgliedern der "anderen Seite" bei der Erörterung technischer Probleme, da sie denselben technischen Hintergrund haben.
Code
Manchmal ist es nützlich, einen Status auf der Clientseite oder Algorithmen oder beides zu haben. Manchmal wird auf beiden Seiten dasselbe gemacht. Nehmen wir das Beispiel eines Multiplayer-Spiels: Sie müssen den Spielstatus sowohl auf dem Client als auch auf dem Server darstellen. Außerdem müssen Sie die Regeln auf der Clientseite (für die Reaktionsfähigkeit) und auch auf der Serverseite (um die Aktionen eines Spielers zu validieren) implementieren. Die Möglichkeit, Code für diese Dinge wiederzuverwenden, kann ein großer Vorteil sein. ... in einigen anderen Anwendungen würden Sie dies überhaupt nicht benötigen ... alles hängt vom Fall ab.
... natürlich gibt es auch Nachteile, aber das ist für einen anderen Beitrag;)
quelle