Muutke küpsiste eelistusi

E-raamat: Professional Scala [Wiley Online]

  • Formaat: 240 pages
  • Ilmumisaeg: 26-Jul-2016
  • Kirjastus: Wrox Press
  • ISBN-10: 1119281318
  • ISBN-13: 9781119281313
Teised raamatud teemal:
  • Wiley Online
  • Hind: 52,87 €*
  • * hind, mis tagab piiramatu üheaegsete kasutajate arvuga ligipääsu piiramatuks ajaks
  • Formaat: 240 pages
  • Ilmumisaeg: 26-Jul-2016
  • Kirjastus: Wrox Press
  • ISBN-10: 1119281318
  • ISBN-13: 9781119281313
Teised raamatud teemal:
Professional Scala provides experienced programmers with fast track coverage aimed at supporting the use of Scala in professional production applications. Skipping over the basics and fundamentals of programming, the discussion launches directly into practical Scala topics with the most up-to-date coverage of the rapidly-expanding language and related tools. Scala bridges the gap between functional and object-oriented programming, and this book details that link with clear a discussion on both Java compatibility and the read-eval-print loop used in functional programming. You'll learn the details of tooling for build and static analysis. Youll cover unit testing with ScalaTest, documentation with Scaladoc, how to handle concurrency, and much more as you build the in-demand skill set required to use Scala in a real-world production environment.

Java-compliant with functional programming properties, Scala's popularity is growing quicklyespecially in the rapidly expanding areas of big data and cluster computing. This book explains everything professional programmers need to start using Scala and its main tools quickly and effectively.

 Master Scala syntax, the SBT interactive build tool, and the REPL workflow





Explore functional design patterns, concurrency, and testing Work effectively with Maven, Scaladoc, Scala.js, and more Dive into the advanced type system Find out about Scala.js

A working knowledge of Scala puts you in demand. As both the language and applications expand, so do the opportunities for experienced Scala programmersand many positions are going unfilled. Twitter, Comcast, Netflix, and other major enterprises across industries are using Scala every day, in a number of different applications and capacities. Professional Scala helps you update your skills quickly to start advancing your career.
Introduction xv
Chapter 1 Language Features
1(18)
Static Types and Type Inference
2(6)
Implicit Parameters, Conversions, and Their Resolution
3(2)
Case Class, Tuples, and Case Object
5(1)
Abstract Class, Traits, and Sealed
6(2)
Pattern Matching
8(5)
Statements Are Expressions
9(1)
String Interpolation
9(1)
Scala Collections, immutable and mutable
10(2)
For Comprehension
12(1)
Packages, Companion Objects, Package Objects, and Scoping
13(4)
AnyVal, AnyRef, Any, and the Type Hierarchy
16(1)
Summary
17(2)
Chapter 2 FUNCTIONAL PROGRAMMING
19(18)
Immutability
20(2)
Pure Functions
22(1)
Recursion
23(3)
Higher-Order Functions
26(1)
Core Collection Methods
27(5)
Methods Returning a Collection
29(2)
Methods Returning a Value
31(1)
Currying and Partially Applied Functions
32(2)
Null Handling (Option)
34(1)
Strict versus Non-Strict Initialization
35(1)
Summary
36(1)
Chapter 3 JAVA COMPATIBILITY
37(8)
Scala and Java Collections
37(3)
Interfaces and Traits
40(2)
Scala/Java Enumerations
42(1)
Summary
43(2)
Chapter 4 SIMPLE BUILD TOOL
45(18)
Basic Usage
46(6)
Project Structure
47(1)
Single Project
47(2)
Scopes
49(1)
Custom Tasks
50(1)
Dependencies
50(1)
Resolvers
51(1)
Advanced Usage
52(4)
Advanced Dependencies
53(2)
Testing in the Console
55(1)
Release Management
56(6)
Deploying to Sonatype
56(2)
Packaging with SBT-Native-Packager
58(1)
Creating a Docker Image
59(1)
Common SBT Commands
60(1)
Useful Plugins
61(1)
Summary
62(1)
Chapter 5 MAVEN
63(16)
Getting Started with Maven and Scala
64(3)
Introducing scala-maven-plugin
67(3)
Adding Library Dependencies
70(1)
Using the REPL
71(1)
Getting Help
72(1)
Running Tests
72(2)
Joint Compilation with Java
74(2)
Accelerating Compilation with Zinc
76(1)
Summary
77(2)
Chapter 6 SCALA STYLE/LINT
79(6)
Scala with Style
79(2)
Scaliform
81(1)
Scapegoat
82(1)
WartRemover
82(2)
Scoverage
84(1)
Summary
84(1)
Chapter 7 TESTING
85(10)
ScalaTest
86(1)
Unit Tests
87(1)
Integration Testing
87(6)
Data-Driven Tests
88(1)
Performance Testing
89(1)
Acceptance Testing
90(2)
Mocks
92(1)
Load Testing
93(1)
Summary
94(1)
Chapter 8 DOCUMENTING YOUR CODE WITH SCALADOC
95(44)
Why Document Your Code?
96(1)
Revealing the Benefits
96(1)
Bookending the Continuum
96(1)
Choosing What to Document
96(1)
Scaladoc Structure
97(9)
Overall Layout
97(1)
Index Pane
98(2)
Content Pane
100(6)
Invoking the Scaladoc Tool
106(2)
Wiki Syntax
108(9)
Formatting with Inline Wiki Syntax
108(2)
Structuring with Block Elements
110(3)
Linking
113(4)
Locating Scaladoc
117(1)
Tagging
117(15)
Everyday Tagging
117(6)
Tagging for Groups
123(2)
Advanced Tagging
125(7)
Invoking scaladoc: Additional Options
132(1)
Integrating Scaladoc Creation with Your Project
133(1)
Configuring Maven
133(1)
Configuring SBT
134(1)
Publishing Scaladoc
134(2)
Tables and CSS
136(2)
Summary
138(1)
Chapter 9 TYPE SYSTEM
139(26)
What Is a Type System?
140(1)
Static versus Dynamic Typing
140(1)
What Static Type Systems Are Good For
141(1)
What Dynamic Type Systems Are Good For
141(1)
Scala's Unified Type System
141(4)
Value Classes
143(2)
Polymorphism
145(4)
Subtype Polymorphism
145(1)
Parametric Polymorphism
146(1)
Ad Hoc Polymorphism
146(3)
Bounds
149(6)
Context Bounds
149(1)
Upper and Lower Bounds
150(1)
Variance
151(4)
Other Niceties
155(9)
Self-Type Annotations
155(3)
Self-Recursive Types
158(1)
Abstract Type Members
159(2)
Dynamic Programming
161(1)
Structural Types
161(1)
Dynamic Trait
162(2)
Summary
164(1)
Chapter 10 ADVANCED FUNCTIONAL PROGRAMMING
165(14)
Higher-Kinded Types
165(2)
Functional Design Patterns
167(9)
Functor
167(3)
Applicative Functor
170(2)
Monad
172(1)
Semigroup
173(1)
Monoid
174(2)
Summary
176(3)
Chapter 11 CONCURRENCY
179(26)
Synchronize/Atomic Variables
181(3)
Future Composition
184(3)
Parallel Collections
187(5)
Reactive Streams
192(3)
STM
195(3)
Actors (Akka)
198(2)
Spark
200(2)
Summary
202(3)
Chapter 12 SCALA.JS
205(10)
Scala.js and Its Design
205(1)
Getting Started: Scala.js with SBT
206(4)
Scala.js Peculiarities
210(1)
Webjars and Dealing with the Frontend Ecosytem
211(2)
Summary
213(2)
Index 215
Aliaksandr Bedrytski is a Big Data engineer at Worldline France.

Janek Bogucki is a Co-Founder of Inferess Inc., and Principal Consultant (Scala and Data Science) at Combination One.

Alessandro Lacava is a lead designer and developer who specializes in functional programming and Scala.

Matthew de Detrich is a Software Engineer at Zalando.

Benjamin Neil is a Full Stack Engineer at AppThis LLC.

Visit us at wrox.com where you have access to free code samples, Programmer to Programmer forums, and discussions on the latest happenings in the industry from around the world.