Skip to content

Functional Way for Solving Nullability Problem

Anatoly Kulakov edited this page Dec 30, 2021 · 2 revisions

Андрей Сергеев «Вопросы nullabilily в платформе .NET, применение функционального подхода в разработке с использованием типов Unit, Tagged Union, Optional, Result, разделение исключительных ситуаций и ожидаемых результатов при обработке ошибок.»

Разработчиков программного обеспечения на языках со статической типизацией вечно преследовала известная «ошибка на миллиард долларов» — нарушение статической типизации и драматическое снижение ее строгости в результате того, что практически в любом месте программы в качестве значения ссылочной переменной может оказаться null.

Андрей расскажет, как участники команды банка, в которую он входит, вначале стали работать с nullability feature в C# версии 8, с каким ограничениями технологии столкнулись, какие были найдены решения и ограничения области применения технологии.

И как затем плавно перешли к большему — идее и реализации портирования в C# известных в функциональном программировании Unit, Discriminated (Tagged) Union, Optional и Result-типов, и какая в результат получается модель создаваемого программного обеспечения, от библиотечного уровня до моделей сущностей в микросервисах и заканчивая конечными точками (endpoints).

Одна из важных тем доклада — то, как данный подход позволил разделить в разрабатываемых приложениях фатальные ошибки (исключения) и «ошибки», которые не являются «успехом», но являются одним из ожидаемых результатов.


Доклад представил Андрей Сергеев в рамках Встречи MskDotNet №47.

Слайды

Слайды

Видео

Видео

Clone this wiki locally