Desktop version

Home arrow Computer Science

  • Increase font
  • Decrease font


Building Applications with Scala

PrefaceFunctional programmingPrinciples of functional programmingImmutabilityDisciplined statePure functions and no side effectsFirst-class functions and higher-order functionsType systemsReferential transparencyInstalling Java 8 and Scala 2.11Read Eval Print and Loop - REPLScala Hello World using the REPLScala REPL Hello World programScala object-oriented HelloWorld programScala HelloWorld App in the Scala REPLJava HelloWorld applicationScala language - the basicsScala variables - var and valScala REPL var usageScala val usage at the Scala REPLCreating immutable variablesScala variable type in the Scala REPLScala variables with explicit typing at the Scala REPLScala conditional and loops statementsIf statements in Scala REPLIf statements in return statements in Scala REPLBasic for loop in Scala REPLFor with List in Scala REPLFor with if statements for filtering - Scala REPLJava code for filtering even numbersFor comprehensionsFor comprehension in Scala REPLJava code for performing filtering with collectionsScala collectionsCreating, removing, and getting an item from a mutable list in Scala REPLScala tuplesScala immutable Map in Scala REPLScala mutable Maps at Scala REPLMonadsScala Map function in Scala REPLOption Monad in ScalaA list of all methods using the Scala REPLA simple Scala class in Scala REPLScala plain old Java object in Scala REPLPerson class in JavaTraits and inheritanceScala inheritance code in Scala REPLScala traits sample code in Scala REPLScala traits using variable mixing technique at Scala REPLScala type alias sample in Scala REPLCase classesScala case classes feature in Scala REPLPattern MatcherSimple Pattern Matcher in ScalaAdvanced pattern matcher in Scala REPLAdvanced complex pattern matcher in Scala REPLPartial functionsSimple Partial function in Scala REPLScala PartialFunction without OO using case statements in Scala REPLPartialFunction composition in Scala REPLFollowing is a PartialFunction composition in Scala REPL:Package objectspackage.scalaMainApp.scalaFunctionsPartial applicationPartial function in Scala REPLCurried functionsCurried functions - Scala REPLCurried transformation in Scala REPLOperator overloadingScala operator overloading in Scala REPLImplicitsScala Implicits in SCALA REPLImplicit Parameter at Scala REPLFuturesSimple Future code in Scala REPLA complete Future sample at Scala REPLReactive Programing and RxScalaSimple Observables Scala with RxScalaSimple Observables Scala with RxScala - Execution in the consoleComplex Scala with RxScala ObservablesSummaryCreating Your App Architecture and Bootstrapping with SBTIntroducing SBTInstalling SBT on Ubuntu LinuxGetting started with SBTAdding dependenciesGenerating Eclipse project files from SBTApplication distributionHello world SBT / Scala AppBootstrapping our Play framework app with ActivatorActivator shellActivator - compiling, testing, and runningSummaryDeveloping the UI with Play FrameworkGetting startedCreating our modelsCreating routesCreating our controllersWorking with servicesConfiguring the Guice moduleWorking with views(UI)SummaryDeveloping Reactive Backing ServicesGetting started with reactive programmingIPriceService - Scala traitPriceService - RxScala PriceService implementationGuice Injection - Module.scalaNGServiceEndpointPlay framework and high CPU usageRndDoubleGeneratorControllerIRndService.scala - Scala traitRndService.scala - RndService implementationModule.scala - Guice Injectionsmain.scala.htmlproduct_details.scala.htmlSummaryTesting Your ApplicationUnit testing principlesMaking code testableIsolation and self-contained testsEffective namingLevels of testingTesting with JunitBehavior-Driven Development - BDDMyFirstPlaySpec.scala - First BDD with ScalaTest and the Play frameworkTesting with Play framework supportProductService.scala - FIX the code issueImageServiceTestSpec.scala - ImageService TestReviewServiceTestSpec.scala - ReviewService testTesting routesRoutesTestingSpec.scala - Play framework route testingController testingRndDoubleGeneratorControllerTestSpec.scala - RndDoubleGeneratorController testsIntegrationSpec.scalaProductControllerTestSpec.scalaproduct_index.scala.htmlImageControNerTestSpec.scalaimage_index.scala.htmlReviewControNerTestSpec.scalareview_index.scala.htmlApplicationSpec.scalaNGServicelmpITestSpec.scalaNGServiceEndpomtControNerTest.scalaSummaryPersistence with SlickIntroducing the Slick frameworkMySQL setupConfiguring Slick in our Play framework appConfigure the database connectionFPM MappingProductDaoReviewDAOImageDaoSlick evolutionsRefactoring servicesRefactoring controllersConfiguring DAO packages in GuiceRefactoring testsGeneric mocksService testsController testsRunning the applicationSummaryCreating ReportsIntroducing JasperReportsJasperReports workflowJasper sessionsInstalling Jaspersoft Studio 6Configuring MySQL Data Adapter in Jaspersoft StudioCreating a product reportCreating a review reportCreating an image reportIntegrating JasperReports with Play frameworkbuild.sbtGeneric report builderAdding the report to the product controllerAdding the report to the review controllerAdding the report to the image controllerRoutes - adding new report routesNew centralized reports UIAdding the report button for each viewSummaryDeveloping a Chat with AkkaAdding the new UI introduction to AkkaIntroduction to the Actor modelWhat is an Actor?Message exchange and mailboxesCoding actors with AkkaActor routingPersistenceCreating our chat applicationThe chat protocolThe chat controllerImplementing the chat controllerConfiguring the routesWorking on the UIAdding Akka testsScala test for Akka ActorChat room Actor testChat Bot Admin Actor testSummaryDesign Your REST APIIntroduction to RESTREST API designHTTP verbs designUniform APIResponse with HTTP status codesREST API patternsAPI versioningSome anti-patterns to be avoidedCreating our API with REST and JSONRestApiContollerJSON mappingConfiguring new routesTesting the API using the browserCreating a Scala clientConfiguring plugins.sbtConfiguring build.sbtScala client codeCreating our REST client proxiesCreating ScalaTest tests for the proxiesAdding back pressureAdding Swagger supportSwagger UISummaryScaling upStandalone deployReports folderChanging report builderDefining the secretRunning the standalone deployArchitecture principlesService orientation (SOA/microservices)PerformanceScalability/ResiliencyScalability principlesVertical and horizontal scaling (up and out)CachingLoad balancerThrottlingDatabase clusterCloud computing/containersAuto ScalingA note about automationDon't forget about telemetryReactive Drivers and discoverabilityMid-Tier load balancer, timeouts, Back pressure, and cachingScaling up microservices with an Akka clusterScaling up the infrastructure with Docker and AWS cloudSummary

Related topics