
This video provides an overview of the entire course.
This video will help us understand case classes and how they interact with pattern matches.
In this video, we will learn to create custom matchers for use inside pattern matches.
In this video, we will learn various spec assertion matchers available in specs2.
In this video, we will understand how to use mocks in specs2 via its integration with Mockito, and how to use mock matchers to assert on cross-object interactions.
In this video, we will understand the basics of generative testing and how this can be applied with specs2’s scalacheck integration.
In this video, we will learn to deal with test setup, teardown, and marking a spec as pending until a future fix makes it pass.
In this video, we will learn the usefulness of builders for constructing immutable collections.
In this video, we will experiment with additional collection methods.
In this video, we will understand various sorting options for Scala collections.
In this video, we will perform side effects and pattern matches for comprehensions.
In this video, we will implement functions with default arguments and pass-by-name arguments.
Now that we have the easy stuff out of the way, we take delve into some of Scala's more powerful features. Pattern matching is Scala's tremendous ability to deconstruct data in intuitive and readable ways, letting you write safely in a few lines of code what other languages can take tens of buggy lines to get across. We'll explore the various ways that patterns can be used, as well as some of the more advanced functionality that they hide. A quick detour into testing will introduce the specs2 library and how to use it to do behavior-driven development in Scala. Then we'll dig into Scala's collections some more; Scala's collections library is vast, and holds many powerful tools for dealing with data. Finally, we'll go through a few tricks that let you get readable and type-safe frameworks in place to describe your domain.
About the Author
Antonio Salazar Cardozo is a developer who has led small teams from his classes at Georgia Tech and through each company he has contributed to. He is a software pragmatist and perfectionist who values great software that is written for humans first, and loves to help teams find the development and interaction styles that make them deliver the best software to solve the problems they are solving. Between startups and larger companies, he has worked on most aspects of web and non-web systems, and loves to see how each piece of software is received and how it can improve. When he's not leaving honest, extensive code review, he's been known to travel and enjoys visiting both new and old places far from home.