Элементы функционального программирования
Функциональный программирование помогает делать зависимости более явными, за счет более частого использования static-функций, принимающих все зависимости через аргументы. Делать код более переиспользуемым, за счет написания функции высшего порядка, принимающие другие функции. Делать код более потокобезопасным, за счет неизменяемых типов данных.
Пройдя блок, ты:
- познакомишься с функциональным подходом и неизменяемыми классами
- попробуешь Railway-обработку ошибок, используя монаду (о, чёрт, мы сказали это слово!) Result
Необходимые знания
Понадобится знание C#
Рекомендуется пройти блоки SOLID и Mocks
Самостоятельная подготовка
- Предварительно посмотри блок видео про ФП (~1 час)
- Поизучай материалы про неизменяемые классы. Много материала собрано вот тут: http://weblogs.asp.net/bleroy/immutability-in-c Не обязательно все это прочитать до очной встречи (там много!), но будет полезно прочитать это в своём темпе.
Очная встреча
~ 4 часа
Закрепление материала
- Выполни задание TagsCloudResult
Дополнительные материалы
- Видео-лекция про ФП в C#
- FP haskell + C# — курс лекций про функциональное программирование от одного из создателей Linq в C#.
- Immutability in C#
- Курс на Pluralsight Applying Functional Principles in C#