Программа 47-й встречи
19.00 – 19.30 Андрей Сергеев. Вопросы nullabilily в платформе .NET, применение функционального подхода в разработке с использованием типов Unit, Tagged Union, Optional, Result, разделение исключительных ситуаций и ожидаемых результатов при обработке ошибок.
19.30 – 20.00 Павел Московой. Работа с HTTP в платформе .NET, собственный движок для работы с HTTP, использующий функциональный подход на основе типа Result для обработки HTTP-ответа вместо исключений.
20.00 – 20.10 Перерыв
20.10 – 21.10 Сергей Огородников. Практика построения сервисов на основе ViennaNET
Спикер: Андрей Сергеев
Тема: Вопросы nullabilily в платформе .NET, применение функционального подхода в разработке с использованием типов Unit, Tagged Union, Optional, Result, разделение исключительных ситуаций и ожидаемых результатов при обработке ошибок.
Разработчиков программного обеспечения на языках со статической типизацией вечно преследовала известная «ошибка на биллион долларов» нарушение статической типизации и драматическое снижение ее строгости в результате того, что практически в любом месте программы в качестве значения ссылочной переменной может оказаться null.
Андрей расскажет, как участники команды банка, в которую он входит, вначале стали работать с nullability feature в C# версии 8, с каким ограничениями технологии столкнулись, какие были найдены решения и ограничения области применения технологии.
И как затем плавно перешли к большему идее и реализации портирования в C# известных в функциональном программировании Unit, Discriminated (Tagged) Union, Optional и Result-типов, и какая в результат получается модель создаваемого программного обеспечения, от библиотечного уровня до моделей сущностей в микросервисах и заканчивая конечными точками (end-points).
Одна из важных тем доклада то, как данный подход позволил разделить в разрабатываемых приложениях фатальные ошибки (исключения) и «ошибки», которые не являются «успехом», но являются одним из ожидаемых результатов.
Андрей работает разработчиком программного обеспечения, специализируется на проектировании и разработке back-end.
При проектировании уделяет внимание фокусу на разработке на каждом из архитектурных уровней «ядра», «движка», позволяющего на заданных уровнях сконцентрироваться на «параметрической» реализации доменных задач, стараясь находить баланс, не уходя в излишнюю универсализацию.
В качестве основной платформы/языка разработки использует .NET Core / C#, также обращая внимание на смежные и конкурирующие платформы, языки и принципы F#, Java, Kotlin, Ruby, динамическую типизацию для выработки решений, использующих принципы, и лишь затем инструменты языка и платформы для их реализации. Старается в разумном объеме применять функциональный подход и композицию вместо объектного подхода и наследования.
Контакты: a.sergeev.official@gmail.com
Спикер: Павел Московой
Тема: Работа с HTTP в платформе .NET, собственный движок для работы с HTTP, использующий функциональный подход на основе типа Result для обработки HTTP-ответа вместо исключений.
В .NET core для работы с HTTP принято использовать класс HttpClient. Он позволяет легко отправлять и получать данные. Однако возвращаемый ответ может отличаться в зависиомости от статус-кода. Для работы с ним удобно использовать функциональный подход и тип Result.
При этом для взаимодействия с SOAP часто используются автосгенерированные клиенты на основе встроенного механизма в Visual Studio. Такое решение несет в себе определённые проблемы, которые будут упомянуты в докладе.
Павел расскажет, как участники команды банка, в которую он входит, выработали единый подход для работы с HTTP на основе REST и SOAP, разработав собственный движок, основанный на использовании HttpClient и функциональных компонентов.
Эта часть доклада является логичным продолжением рассказа Андрея о том, как с помощью функционального программирования можно разделить ошибки на фатальные и "ожидаемые". Это особенно наглядно можно продемонстрировать на примере обработки HTTP-ответов. Также будет показано применение разработанного движка для построения клиентов удалённых сервисов на основе REST и SOAP, альтернативных механизму предлагаемому по умолчанию в Visual Studio.
Павел работает архитектором приложений в команде, занимающейся разработкой страховых продуктов банка. Специализируется на проектировании и разработке back-end.
Спикер: Сергей Огородников
Тема: Практика построения сервисов на основе ViennaNET
Описание
При разработке микросервисов одним из челленджей является создание универсальной базы (платформы) для быстрой и эффективно разработки сервисов. Сообщество .NET разработчиков Райффайзенбанка разработало и внедрило в компании такую платформу. В этом году мы сделали следующий шаг – дали нашей платформе название ViennaNET вывели её в open source. В данном докладе представлен обзор библиотек, входящих в нашу платформу, а также в режиме live coding продемонстрировано её использование.
О спикере
Профессионально разрабатывает на C# с 2005 года, пришёл в .Net за пару месяцев до того, как подвезли generics. Сейчас работает старшим разработчиком в Райффайзенбанке в команде, занимающейся разработкой продуктов для HR. Интересуется DDD, software architecture, разработкой анализаторов кода, немного ФП.
Дополнительную информацию о встречах MskDotNet Community Вы можете найти в группах сообщества:
VK https://vk.com/mskdotnet
FB https://www.facebook.com/mskdotnet/
Twitter https://twitter.com/mskdotnet
Telegram https://t.me/mskdotnet
Подписывайтесь на новости, задавайте вопросы, участвуйте в жизни сообщества!
Если вы хотите вернуть билеты, вы можете сделать это по ссылке из письма с билетами или оформить запрос организатору в вашем  личном кабинете.