Applying Functional Principles in C# 6
Functional programming in C# can give you insight into how your programs will behave. You'll learn the fundamental principles that lie at the foundation of functional programming, why they're important, and how to apply them.
What you'll learn
With the advent of LINQ, C# has gotten a significant exposure to functional programming. However, functional programming in C# is not restricted to the use of extension methods, lambdas and immutable classes. There are a lot of practices that haven't been adopted as widely because there's not much of native language support for them in C#. Still, they can be extremely beneficial should you incorporate them into your day-to-day work. This course, Applying Functional Principles in C#, will show them to you. You will learn the fundamental principles behind functional programming, why they are important and how to apply them in practice. Specific topics you'll cover include refactoring to an immutable architecture, avoiding exceptions, primitive obsession, how to handles failures and input errors, and more. By the end of this course, you will have a much more comprehensive understanding of why and how to use functional programming.
Table of contents
- Introduction 0m
- Vocabulary Used 2m
- Why Does Immutability Matter? 3m
- Mutability and Temporal Coupling 3m
- Immutability Limitations 2m
- How to Deal with Side Effects 5m
- Example Introduction 1m
- Mutable Implementation 2m
- Refactoring the First Method 6m
- Refactoring the Second Method 4m
- Implementing a Mutable Shell 3m
- Recap: Refactoring to an Immutable Architecture 3m
- Summary 1m
- Introduction 0m
- What Is Primitive Obsession? 3m
- How to Get Rid of Primitive Obsession 3m
- Primitive Obsession and Defensive Programming 1m
- Primitive Obsession: Limitations 1m
- Where to Convert Primitive Types into Value Objects? 2m
- Refactoring Away from Primitive Obsession 7m
- Recap: Refactoring Away from Primitive Obsession 2m
- Summary 1m
- Introduction 1m
- Domain Model Introduction 2m
- Application Code Introduction 9m
- Refactoring Away from Exceptions 10m
- Recap: Refactoring Away from Exceptions 1m
- Refactoring Away from Primitive Obsession 9m
- Recap: Refactoring Away from Primitive Obsession 1m
- Refactoring to More Explicit Code 6m
- Recap: Refactoring to More Explicit Code 1m
- Making Nulls Explicit 7m
- Recap: Making Nulls Explicit 1m
- Representing Reference Data as Code 4m
- Recap: Representing Reference Data as Code 2m
- Railway-oriented Programming 6m
- Recap: Railway-oriented Programming 1m
- Module Summary 2m
- Resource List 1m
- Course Summary 1m