Come out and Play - Jens Grassel - E-Book

Come out and Play E-Book

Jens Grassel

0,0
44,99 €

oder
-100%
Sammeln Sie Punkte in unserem Gutscheinprogramm und kaufen Sie E-Books und Hörbücher mit bis zu 100% Rabatt.
Mehr erfahren.
Beschreibung

Mit diesem Buch erfolgt ein praxisorientierter Einstieg in die Entwicklung größerer Webanwendungen mit dem Play Framwork, Scala, Akka und Scala.js. Es wird vermittelt, wie man Webanwendungen mit dem Play Framework schreibt, Datenbankzugriffe via Slick implementiert, Aufgaben asynchron mit Futures und Aktoren umsetzt sowie geteilten und clientseitigen Code via Scala.js generiert. Für Authorisierung und Authentifizierung wird das Silhoutte Framework genutzt. Websockets, die aus den meisten Anwendungen nicht mehr wegzudenken sind, kommen ebenfalls zum Einsatz. Das Buch vermittelt, wie man SBT zur Verwaltung und Organisation von Projekten nutzt. Kenntnisse von Scala werden nicht vorausgesetzt, es erfolgt eine kurze Einführung in die Programmiersprache und die funktionale Programmierung mit Scala. Für wen ist dieses Buch geeignet? Das Buch richtet sich an alle, die sich für die Webentwicklung mit Scala und Play interessieren. Es sollte grundlegende Erfahrung in einer beliebigen Programmiersprache sowie Kenntnis von Webtechnologien vorhanden sein.

Das E-Book können Sie in Legimi-Apps oder einer beliebigen App lesen, die das folgende Format unterstützen:

EPUB

Veröffentlichungsjahr: 2021

Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



Come out and Play!

VorwortImpressumEinleitungAufbau des BuchesKonventionen für den QuelltextSchutzmarken und CopyrightsLogos und BilderQuelltext zum BuchEinrichtung der Werkzeuge und Einführung in ScalaWerkzeugeJavaSBTInstallationNützliches für SBTEntwicklungsumgebungProgrammierung in ScalaInteraktive Programmierung via REPLHinweise zu Datenstrukturen (var, val)Schnelleinstieg in die funktionale ProgrammierungAuswertungsstrategien (evaluation strategies)Scopes und BlöckeSemikolons und Infix-OperatorenTail-RekursionFunktionen höherer Ordnung (Higher Order Functions)CurryingPolymorphismusPattern-MatchingImplizite ParameterHilfsmittel zur UnterstützungReduzierung von “Boilerplate” CodeEinführung und Grundlagen zu den verwendeten TechnologienPlay FrameworkErstellen einer Play AnwendungPlay Anwendung über Schablonen erstellenPlay Anwendung von Hand erstellenProjektstrukturVerzeichnisse, SBT-Einstellungen und AbhängigkeitenUnterprojekteRequests, Routing und ControllerRequestsRoutingControllerTemplates (Twirl)Wiederverwendung von TemplatesMehrsprachigkeit (Internationalisierung)Messages ObjektFormulareFormdefinitionForm-Objekte und ihre TypenBeispiele für FormulareVerarbeitung von FormularenFormulardarstellung in Template ViewBeispiel mit sich wiederholenden ElementenDatenbankkonfigurationKonfiguration von Slick für PlayDatenbankzugriffAsynchrone Programmierung mit PlayWebsocketsWebservicesMigration von Play 2.5 auf 2.6Was hat sich geändertSBT 0.13.15 erforderlichGuice und OpenId Unterstützung ausgelagertBereitstellung neuer Controller KlassenAssetsPlay WSAnpassungen bei i18nCacheVeränderungen an der Scala Configuration APIEntfernung diverser APIs und Bibliothekenplay.api.libs.concurrent.Execution ist nun veraltetNeue StandardfilterKonfiguration von EhcacheAusführen mit IntelliJ IDEA und DebuggenAkkaEinrichten einer Akka AnwendungAkka GrundlagenAktorsystem und AktorenSupervisionAktorreferenzenNachrichten und deren AuslieferungKonfigurationAktorenDeathWatchNachrichtenAktoren beendenFSMPersistenzTestsAktorenhilfsmittelEvent-BusLoggingSchedulerZeitdauer (Duration)Unterbrecher (Circuit Breaker)StreamsScala.jsErstellen einer Scala.js AnwendungAbhängigkeitenModule exportierenCross-CompileTestenAnwendungsszenarioDas FrontendDas Online-SpielDas FrontendErstellung und Konfiguration einer Basis-Play-AnwendungEinbindung von Silhouette als Authentifikations-FrameworkAnmeldung der Nutzer am SystemKonfiguration des Backend Store (PostgreSQL)Definition des NutzermodellsErstellen einer Datenbank-EvolutionTabellendefinition innerhalb der AnwendungDAOs für den Zugriff auf die NutzerdatenSilhouette Konfiguration auf eigene DAOs umstellenKonfiguration der Social-ProviderFunktionalität für das Löschen eines AccountsSuchen und Verwalten von FreundenErweiterung des Nutzermodells um einen NutzernamenRegistrierung der Nutzer mit Nutzernamen und E-MailEvolution und Tabellendefinitionen für FreundeslistenFunktionalitäten für Freundeslisten in einem DAOErstellen von WebSockets zur dynamischen InteraktionErstellen des WebSocket auf Basis eines ActorsController als Endpunkt für das WebSocketVerbinden der Action innerhalb des RoutingErstellen von Funktionen innerhalb des Javascript, welche mit dem WebSocket zusammen arbeitenErweiterung des CSR für WebSocketsVisualisierung der FreundeslistenErweiterung der Views zur Übergabe von Skripten und CSSMigration auf Play 2.6 und Silhouette 5Upgrade der benötigten AbhängigkeitenAnpassungen für das Upgrade von SilhouetteÄnderungen im CustomPostgresDriverNeue Controller-KlassenVon WebJarAssets zu AssetsFinderAnpassungen für die Änderungen in i18nImpliziter ExecutionContextRefactoring (Compiler-Warnungen)Das SpielRegeln und SpielverlaufUmsetzungGrundlegende DatentypenOperationen auf einem SpielstandOperationen auf einem SpielfeldNutzung von Eq (Cats)Datenbank (Repository)Zeichnen von Spielfeldern im ClientHilfsfunktionenWebsocket-URL berechnenFeldgröße zum Zeichnen berechnenBerechnen der Klickposition in einem SpielfeldLoggingSpielvorbereitung (Preparation)Globale VariablenStruktur der HTML-DateiFunktionenWebsocketAufruf und InitialisierungSpielablauf (Game)Globale VariablenStruktur der HTML-DateiFunktionenWebsocketAufruf und InitialisierungIntegration ins FrontendVerzeichnisstrukturAktoren, Controller, DAO und ModelleView-TemplatesDatenbankschicht (Repository) als DAOWebsocketEine Websocket-AlgebraKomposition zum fertigen WebsocketController und RoutingÜbersichtsseiteSpielerstellungLöschen eines SpielstandesDem Spiel beitretenDas SpielSpielvorbereitungWebsocketViewsDeployment (Auslieferung)Konfiguration für den ProduktivbetriebErstellen eines Artefakts mit allen AbhängigkeitenErstellen von Paketen für DebianSystemstart-SkripteAuslieferung zu einem Cloud ServiceDeployment via Remote RepositoryDeployment mittels des Plugins sbt-herokuDatenbankzugriff bei HerokuErkenntnisseSilhouetteAbhängigkeiten von anderen BibliothekenAufwand durch inkompatible ÄnderungenCirceErstellung von CodecsVollautomatische AbleitungHalbautomatische AbleitungManuelle ImplementierungGeschwindigkeit des CompilersFehlerhäufigkeitWTFM - Write that fucking manual!Vorteile für bereits involvierte EntwicklerVorteile für neue EntwicklerDanke

https://clojure.org/↩︎

https://www.haskell.org/↩︎

https://de.wikipedia.org/wiki/Lisp↩︎

https://www.scala-lang.org/↩︎

Einrichtung der Werkzeuge und Einführung in Scala

Dieses Kapitel beschreibt grundlegende Arbeitsweisen und Werkzeuge und kann dementsprechend übersprungen werden, wenn diese Kenntnisse bereits vorliegen. Wir beginnen mit einem kurzen Exkurs durch das Ökosystem der Programmiersprache Scala hinsichtlich der zur Verfügung stehenden Werkzeuge. Diese umfassen Java, SBT und diverse Entwicklungsumgebungen.

Danach erfolgt eine kurze Einführung in die Programmierung in Scala, welche einen grundlegenden Überblick über die Möglichkeiten und Vorgehensweisen in dieser Programmiersprache geben soll. Dazu zählen u.a. die interaktive Programmierung mit einer REPL, Hinweise zu vorhandenen Datenstrukturen, ein Schnelleinstieg in die funktionale Programmierung, Hilfsmittel, welche man zur Unterstützung nutzen kann und ein Überblick, wie man “Boilerplate” Code reduziert.

Einführung und Grundlagen zu den verwendeten Technologien

Dieses Kapitel beschreibt die grundlegenden Technologien, welche bei der Implementierung der späteren Beispielanwendung verwendet werden.

Logos: Play, Akka, Scala.js

Play Framework Das Play Framework (im Folgenden oft auch nur einfach Play genannt) ist ein Web-Framework, welches die Erstellung einer Oberfläche zur Interaktion zwischen der Anwendung und dem Nutzer erleichtert. Akka Akka ist ein Toolkit, welches die Erstellung verteilter, asynchroner und paralleler Anwendungen ermöglicht, die zudem hochperformante Aufgabenstellungen mittels einfacher Skalierung bereitstellt. Scala.js Scala.js kombiniert die Typisierung von Scala Code mit den vielfältigen Möglichkeiten und vorhandenen Bibliotheken von JavaScript. Dadurch wird die Erstellung von Frontend-Anwendungen erleichtert und in eine vorhandene Scala Umgebung fließend integriert.

Je nach vorhandenen Vorkenntnissen kann das folgende Kapitel oder Teile davon übersprungen werden.

---ENDE DER LESEPROBE---