▶Book Description
Design patterns make developers' lives easier by helping them write great software that is easy to maintain, runs efficiently, and is valuable to the company or people concerned. You'll learn about the various features of Scala and will be able to apply well-known, industry-proven design patterns in your work.
The book starts off by focusing on some of the most interesting and latest features of Scala while using practical real-world examples. We will be learning about IDE's and Aspect Oriented Programming. We will be looking into different components in Scala. We will also cover the popular "Gang of Four" design patterns and show you how to incorporate functional patterns effectively. The book ends with a practical example that demonstrates how the presented material can be combined in real-life applications. You'll learn the necessary concepts to build enterprise-grade applications.
By the end of this book, you'll have enough knowledge and understanding to quickly assess problems and come up with elegant solutions
▶What You Will Learn
⦁ Immerse yourself in industry-standard design patterns-structural, creational, and behavioral-to create extraordinary applications
⦁ See the power of traits and their application in Scala
⦁ Implement abstract and self types and build clean design patterns
⦁ Build complex entity relationships using structural design patterns
⦁ Create applications faster by applying functional design patterns
▶Key Features
⦁ Unleash the power of Scala and apply it in the real world to build scalable and robust applications.
⦁ Learn about using and implementing Creational, Structural, Behavioral, and Functional design patterns in Scala
⦁ Learn how to build scalable and extendable applications efficiently
▶Who This Book Is For
If you want to increase your understanding of Scala and apply design patterns to real-life application development, then this book is for you.Prior knowledge of Scala language is assumed/ expected.
▶What this book covers
⦁ Chapter 1, The Design Patterns Out There and Setting Up Your Environment, is a brief introduction to design patterns, why they exist, and their different types. This chapter also provides you with tips on how you can set up your environment in order to easily run the examples in the book.
⦁ Chapter 2, Traits and Mixin Compositions, talks about traits and mixin compositions in Scala, multiple inheritance, and the rules of linearization that the Scala programming language uses when extending multiple traits.
⦁ Chapter 3, Unification, covers the various unifications that exist in Scala, which makes it as expressive as it is.
⦁ Chapter 4, Abstract and Self Types, covers the different types of polymorphism that exist in Scala, which help to make generic and extendible software.
⦁ Chapter 5, Aspect-Oriented Programming and Components, shows the concept of aspectoriented programming and how it can be applied to Scala. This chapter also explains what components are and how to build applications using multiple small and simple components.
⦁ Chapter 6, Creational Design Patterns, covers the most popular creational design patterns from the Gang of Four. All patterns are viewed from the point of view of Scala, and alternatives are shown where applicable.
⦁ Chapter 7, Structural Design Patterns, goes through the most popular structural design patterns from the Gang of Four from the Scala point of view. This chapter also shows Scala alternatives where this is applicable and gives usage advice.
⦁ Chapter 8, Behavioral Design Patterns - Part One, covers part one of the behavioral design patterns from the Gang of Four viewed from the Scala perspective. This chapter also provides examples and usage advice.
⦁ Chapter 9, Behavioral Design Patterns - Part Two, covers part two of the behavioral design patterns from the Gang of Four viewed from the Scala perspective. This chapter also provides examples and usage advice.
⦁ Chapter 10, Functional Design Patterns - the Deep Theory, delves into pure functional programming concepts, such as monoids, functors, and monads. This chapter also explains these concepts in an understandable way, along with some examples.
⦁ Chapter 11, Applying What We Have Learned, presents design patterns that are specific to Scala. It is loaded with examples along with theory and usage advice.
⦁ Chapter 12, Real-Life Applications, introduces you to the Scalaz library. You will write a complete application that applies many of the concepts learned in the book, and this chapter will finish off with a summary.