
Designed to address the challenges in Java, Scala is a general purpose programming language for Functional Programming.
- Program in Scala and understand Scala’s approach to object-orientation
- Participants will be able to m aster the use of functional programming techniques in Scala
- Understand how to perform TDD using Scala
- Manipulate XML in Scala and Write concurrent applications that are thread-safe
4 Days
Participants should be strong Java developers who are planning to develop Scala applications
- History of the Java platform to date
- Distinguishing between the Java language and platform
- Pain points when using Java for software development
- Possible criteria for an improved version of Java
- How and why the Scala language was created
- Everything is an object
- Class declarations
- Data typing
- Operators and methods
- Pattern matching
- Functions
- Anonymous and nested functions
- Traits
- Built in types, literals and operators
- Testing for equality of state and reference
- Conditionals, simple matching and external iteration
- Working with lists, arrays, sets and maps
- Throwing and catching exceptions
- Adding annotations to your code
- Using standard Java libraries
- A minimal class declaration
- Understanding primary constructors
- Specifying alternative constructors
- Declaring and overriding methods
- Creating base classes and class hierarchies
- Creating traits and mixing them into classes
- How a Scala inheritance tree is linearized
- Advanced uses of for expressions
- Understanding function values and closures
- Using closures to create internal iterators
- Creating and using higher order functions
- Practical examples of higher order functions
- Currying and partially applied functions
- Creating your own Domain Specific Languages(DSL’s)
- Using the match keyword to return a value
- Using case classes for pattern matching
- Adding pattern guards to match conditions
- Partially specifying matches with wildcards
- Deep matching using case constructors
- Matching against collections of items
- Using extractors instead of case classes
- Writing standard JUnit tests in Scala
- Conventional TDD using the ScalaTest tool
- Behavior Driven Development using ScalaTest
- Using functional concepts in TDD
- Working with XML literals in code
- Embedding XPath like expressions
- Using Pattern Matching to process XML data
- Serializing and deserializing to and from XML
- Issues with conventional approaches to multi-threading
- How an actor-based approach helps you write thread-safe code
- The Scala architecture for creating actor-based systems
- Different coding styles supported by the actor model