Play Speed
  • 0.5x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 2x
60 Videos (4h 6m)
    • 01 Intro to FP 01 Outline

      1:18
    • 01 Intro to FP 02 Programming Paradigms

      5:00
    • 01 Intro to FP 03 Defining Functional Programming

      3:29
    • 01 Intro to FP 04 Functions Are Everywhere

      2:42
    • 01 Intro to FP 05 Why Functional Programming

      2:30
    • 01 Intro to FP 06 Conclusion

      1:32
    • 02 Core Concepts 01 Outline

      2:09
    • 02 Core Concepts 02 Immutability

      6:59
    • 02 Core Concepts 03 Temporal Coupling and Immutability

      5:26
    • 02 Core Concepts 04 Side Effects

      8:37
    • 02 Core Concepts 05 Side Effects and Architecture

      3:00
    • 02 Core Concepts 06 CQS

      1:45
    • 02 Core Concepts 07 Declarative Programming Style

      5:34
    • 02 Core Concepts 08 Expressions Over Statements

      6:54
    • 02 Core Concepts 09 Conclusion

      2:04
    • 03 Functional Features in C# 01 Outline

      1:50
    • 03 Functional Features in C# 02 Extension Methods

      7:26
    • 03 Functional Features in C# 03 Autoproperties and Immutability

      4:17
    • 03 Functional Features in C# 04 Expression Bodied Members

      4:52
    • 03 Functional Features in C# 05 Pattern Matching

      2:49
    • 03 Functional Features in C# 06 Tuples Deconstruction

      6:40
    • 03 Functional Features in C# 07 LocalFunctions

      6:01
    • 03 Functional Features in C# 08 Conclusion

      1:42
    • 04 Immutability in C# 01 Outline

      2:12
    • 04 Immutability in C# 02 Mutable Type

      6:44
    • 04 Immutability in C# 03 External Immutability

      2:55
    • 04 Immutability in C# 04 Internal Immutability

      4:41
    • 04 Immutability in C# 05 Shallow and Popsicle Immutability

      6:54
    • 04 Immutability in C# 06 Builder Design Pattern

      9:13
    • 04 Immutability in C# 07 Evil Mutable Structures

      8:26
    • 04 Immutability in C# 08 Immutability and Memory Pressure

      7:06
    • 04 Immutability in C# 09 Conclusion

      1:42
    • 05 Extendibility in C# 01 Outline

      1:36
    • 05 Extendibility in C# 02 Pipelining

      1:39
    • 05 Extendibility in C# 03 Extending IDisposable

      9:16
    • 05 Extendibility in C# 04 General Extensions

      10:23
    • 05 Extendibility in C# 05 Extending StringBuilder

      10:42
    • 05 Extendibility in C# 06 Abusing Extenstion Methods

      7:37
    • 05 Extendibility in C# 07 Conclusion

      1:46
    • 01 Outline

      1:54
    • 02 What Does an 'Error' Mean

      3:31
    • 03 Problems with Exceptions

      6:50
    • 04 Common Misconceptions

      3:47
    • 05 Exception Handling Strategies

      5:00
    • 06 CQS Principle

      1:13
    • 07 Errors and Functional Programming

      2:58
    • 07 Tester Doer

      1:47
    • 08 Pipelining by Method Chaining

      3:15
    • 09 Conclusion on Exceptions Handling

      0:51
    • 10 BCL Exception Types

      1:58
    • 11 Custom Exception Types

      1:14
    • 12 Conclusion

      1:14
    • 01 Outline

      1:54
    • 02 Problems with Nulls

      2:34
    • 03 Null Object Pattern

      2:51
    • 04 Maybe Monad in C#

      3:47
    • 05 Automating Null Checks

      5:24
    • 06 Static Analysis

      2:50
    • 07 Returning IEnumerables

      1:46
    • 08 Conclusion

      1:24

About This Class

Learn how to write C# code in a functional style. The “Functional Programming in C#” is for you if you want to improve your code, design and architecture. It means you are going to learn how to write code of the high quality: readable, understandable and reliable.

Teaching Approach

No fluff, no ranting, no beating the air. I esteem your time. The course material is succinct, yet comprehensive. All important concepts are covered. Particularly important topics are covered in-depth. For absolute beginners I offer my help on Skype absolutely free, if requested.

Take this course and you will be satisfied.

Learn Functional Programming in the context of clean coding and building types of high quality.

  • Get Deep Understanding of what is Functional Programming
  • Learn how to design Immutable types in C#
  • Apply new C# 6 and C# 7 features to write better code in a functional style
  • Learn how to Extend and Compose any Types
  • Handle Errors and Exceptions in a functional programming style
  • Tackle the Problem of Null-Values by the means of functional programming

Foundations of Functional Programming

Despite the fact that C# is primarily an object-oriented language, it is very powerful on features which enable functional programming style. In fact, C# is one of the richest on features language among object-oriented languages in the world nowadays. But with great power comes great responsibility. It's challenging to use all those features in a right way.

You probably have already heard the following well-known statement: most code sucks. Well, this course is all about how to produce code which doesn't suck.

Owning skills of producing well-designed and well-implemented types with regards to functional programming principles.

Content and Overview

This course is aimed at all the C# developers, from beginners to seniors. Topics which are covered in the course are relevant for all kinds of C# developers since all developers design and implement types. The topics complexity is very different. There are plenty of very simple topics, and at the same time, there are topics which require from you a solid C# background. There are plenty of code examples throughout this course, so you will learn both theoretical and practical material.

  • We’re going to start with the theoretical foundations of the functional programming paradigm. You’ll learn what is Functional Programming and what are the benefits of applying that paradigm.
  • In the second section, we’re going to elaborate the core concepts of the functional programming. You’ll learn more about immutability, purity, side effects and expressions.
  • To write modern code in a functional style, you need to learn modern C# features appeared in C# 6 and C# 7.
  • We’re going to learn more about immutability in a separate section. This is a very important topic.
  • We’re going to learn how to extend types. You’ll see practical cases, you’ll learn about general extensions needed for functional programming.
  • After mastering the topic of types extending you will face the great problem of exceptions handling. Yep, it's a hard nut to crack. We will start from discussing a question of why we use exceptions as a mechanism of errors handling. And why C# team didn't invent any other mechanisms?
  • In the end, we will look at how to fight with null values. As you may know, Tony Hoar said that the invention of a null value was his billion-dollar mistake.

To sum up, the course covers the following topics:

  • Theoretical Foundations of Functional Programming
  • Core Concepts of Functional Programming
  • Functional Features in C#
  • Immutability in C#
  • Extendibility in C#
  • Dealing with Errors
  • Dealing with Nulls

------------------------------------------------------------

Keywords related to the course:

  • C# Clean Code
  • C# Best Practices
  • Functional Programming in C#
  • C# Functional Programming
  • Clean Code in C# tutorial

6

Students

--

Projects

0

Reviews (0)

Elias Spock

Chance favors the prepared mind.

I'm thankful enough for that I love what I do.
I began my career as a postgraduate student participating in Microsoft ImagineCup contest.
I've been working with .NET platform since 2003. I've been professionally architecting and implementing software for nearly 7 years, primarily based on the .NET platform. I'm passionate about building rich and powerful applications using modern technologies. 
I'm a certified specialist in Windows Applications and Service Communicati...

See full profile