Book Detail : Beginning Scala, 2nd Edition

Book Title: 
Beginning Scala, 2nd Edition
Resource Category: 
Publisher: 
Publication Year: 
2 015
Number of Pages: 
260
ISBN: 
978-1-4842-0233-3
978-1-4842-0232-6
Language: 
English
Edition: 
Second
WishList: 
yes
Available at Shelf: 
No
Description: 

Beginning Scala, 2nd Edition takes a down-to-earth approach to teaching Scala that leads you through simple examples that can be combined to build complex, scalable systems and applications.

Table of Contents (Summary): 
  1. Getting Started with Scala 

  2. Basics of Scala

  3. Object Orientation in Scala   

  4. Functional Programming in Scala

  5. Pattern Matching   

  6. Scala Collections

  7. Traits

  8. Scala Type System   

  9. Scala and Java Interoperability   

  10. DSL and Parser Combinator 

  11. Simple Build Tool - SBT

  12. Scala for Web Application   

  13. Scala Best Practices

Table of Contents (Expanded): 
  1. Getting Started with Scala 

    • ​​Why Scala?

      • A Concise Language

      • Lightweight Syntax  

      • Multiparadigm Language 

      • Interoperability and Seamless Integration with Java

      • Language for the Java Virtual Machine

    • Installing Scala

    • Scala at the Command Line and Scala Scripts 

      • Interactive Scala  

      • Scala Scripts 

      • Compiling Scala Programs

    • Your First Scala Programs

      • Hello World

      • Printing Some Numbers

  2. Basics of Scala

    • ​​Variables 

    • Scala Type Hierarchy

      • Any, AnyVal and AnyRef Types 

      • Numeric Types

      • Boolean Type 

      • Char Type

      • Unit type

      • Nothing and Null Types 

    • Strings

      • String Interpolation

    • Functions 

      • Function without Parameter 

      • Function with Parameters 

    • Arrays, Lists, Ranges, and Tuples

      • Arrays 

      • Lists 

      • Ranges

      • Tuples 

    • Built-in Control Structures

      • If Expressions  

      • While Loops  

      • For Comprehension 

      • try expressions

      • Match Expressions

    • Comments 

  3. Object Orientation in Scala   

    • ​​Classes and Objects  

      • Constructors  

      • Method Declaration 

      • Code Blocks 

      • Call-by-Name

      • Method Invocation

      • Objects 

    • Packaging and Imports

    • Inheritance  

      • Extending Class

    • Traits 

    • Case Classes

    • Value Classes

    • Scala versus Java versus Ruby 

      • Classes and Instances 

      • Traits, Interfaces, and Mixins

      • Object, Static, and Singletons

      • Functions, Anonymous Inner Classes, and Lambdas/Procs

  4.  Functional Programming in Scala

    • Expression-Oriented Programming

    • A Pure Function

      • Referential Transparency

    • Function Literal/Anonymous Function

    • First Class Function and Higher Order Function

      • Function as Variable 

      • Function as Parameter

      • Returning a Function

    • Closure 

    • Partially Applied Function

    • Curried Function

    • Function Composition 

    • Tail Calls and Tail Call Optimization

    • Call-by-Name, Call-by-Value, and General Laziness

  5. Pattern Matching   

    • ​​Basic Pattern Matching 

      • Matching Any Type

      • Pattern Matching in Lists 

      • Pattern Matching and Lists

    • Pattern Matching and Case Classes

      • Nested Pattern Matching in Case Classes

    • Pattern Matching As Functions 

    • Object-Oriented and Functional Tensions

      • Shape Abstractions

  6. Scala Collections

    • ​​Scala Collection Hierarchy 

      • package scala.collection

      • package scala.collection.immutable

      • package scala.collection.mutable

    • Using Immutable Collection Classes

      • Vector 

      • List[T]

      • Range

      • Stream 

      • Tuples  

      • Map[K, V]

    • Mutable Collections

  7. Traits

    • ​​Using Traits as Mixins

    • Traits and Class Hierarchies

  8. Scala Type System   

    • ​​Unified Type System

    • Type Parameterization 

      • Variance

      • Rules of Variance

    • Type Bounds

      • Upper Type Bounds

      • Lower Type Bounds 

    • Implicit Class

    • Abstract Types

      • Higher-Kinded Types

  9. Scala and Java Interoperability  

    • Translating Java Classes to Scala Classes

    • JavaBeans Specification Compliant Scala Classes 

    • Java Interfaces and Scala Traits

    • Java Static Members and Scala Objects

    • Handling Exceptions

  10. DSL and Parser Combinator 

    • ​​Domain Specific Language (DSL)

      • Internal DSLs

      • External DSLs 

    • Parser Combinator

      • Higher-Order Functions and Combinators

      • Combinators

      • The Calculator Parser

  11. Simple Build Tool - SBT

    • ​​Getting Started with SBT 

      • Installing SBT

      • Creating Hello World Project

    • Build Definition 

    • LibraryDependencies and Resolvers  

    • Plugins

  12. Scala for Web Application   

    • ​​Scala Web Frameworks

      • Lift

      • Play 2

    • Getting Started with the Standalone Distribution 

      • Anatomy of Play Application  

      • MVC in Play 2

      • HelloWorld Java Application with Play 

    • Getting Started with the Activator Distribution

    • Actions, Controllers, and Results

  13. Scala Best Practices

    • ​​Recognizing the Functional Style

    • Writing Pure Functions

    • Leverage Type Inferencing

    • Think Expressions 

    • Focus on Immutability

    • Keep Methods Short 

    • Use Options Instead of Null Testing

    • Refactor Mercilessly 

    • Compose Functions and Compose Classes

    • Scala Design Patterns 

      • Singleton 

      • Factory Method 

      • Strategy

      • Template Method 

      • Adapter

 

Index

2.77344
Average: 2.8 (192 votes)

Search the Web

Custom Search

Searches whole web. Use the search in the right sidebar to search only within javajee.com!!!