DetailedTalks 2020 - DotNetRu/BrandBook GitHub Wiki

Когда и где Докладчик Доклад Ссылки
17 декабря 2020 г.
Встреча SpbDotNet №63
Photo
Михаил Селиверстов
CQRS & ES для онлайн-аукционов. Грабли и опыт
Михаил расскажет об опыте применения подхода CQRS & Event Sourcing в проекте, представляющем собой площадку для проведения онлайн-аукционов. О том, что из этого получилось, какие из этого опыта можно сделать выводы и на какие грабли важно не наступить тем, кто отправится путём CQRS & ES.
Видео
Слайды
17 декабря 2020 г.
Встреча SpbDotNet №63
Photo
Алексей Мулюкин
Быстрый расчёт формул из Excel на C#
В данном докладе мы погрузимся в задачу интеграции веб-проекта с Excel, разберёмся в существующих библиотеках и посмотрим, как можно достичь высокой производительности в расчёте формул на основе формул и данных, хранящихся в Excel файлах.
Видео
Слайды
19 ноября 2020 г.
Встреча MskDotNet №49
Photo
Станислав Продан
Photo
Максим Аршинов
Photo
Кирилл Маурин
Photo
Михаил Копытин
Круглый стол. Польза и вред прототипирования
По мотивам доклада Станислава про прототипирование поговорим о том, в каких случаях целесообразно использовать прототипирование, что потом делать с быстронаписанным кодом, и поделимся личным опытом создания, использования и утилизации прототипов.
Видео
19 ноября 2020 г.
Встреча MskDotNet №49
Photo
Станислав Продан
Создание и переиспользование модулей приложения при прототипировании
Последние продуктовые тенденции говорят нам, что тот, кто сможет запустить больше продуктовых экспериментов, быстрее узнает свою аудиторию и выиграет на максимально конкретном рынке мобильных приложений. Что делать разработчикам в этом случае? «Добавь быстренько кнопочку в этом месте, проверим гипотезу» — знакомая и в то же время нелюбимая фраза для многих разработчиков продуктовых команд. Что в этой фразе бесит больше всего? Во-первых, слово «быстренько». Часто это означает, что код будет написан не самым лучшим образом и, в угоду скорости, придется пренебречь большинством процессов. Во-вторых, слово «гипотеза». Это означает, что если гипотеза не оправдается — мы должны будем удалить весь код. Но в худшем случае гипотеза оправдается, и придется очередной раз объяснять менеджеру, что этот код надо переписать перед раскаткой эксперимента на всех пользователей и вмердживании этого кода в мастер ветку. Как докладчик борется с этой фразой у себя на проекте? Во-первых, он создал свою собственную библиотеку компонентов, которая позволяет «быстренько» собрать новое приложение, в которое при необходимости можно включить авторизацию, навигацию, кеш, листинг и т. д. Спикер называет их «самодостаточные контролы» которые могут существовать как в виде отдельного приложения, так и взаимодействуя с другими контроллами. Во-вторых, для создания простых экспериментов используется Xamarin, чтоб не было соблазна вмердживать успешные эксперименты в основную ветку. В основной ветке используются нативные инструменты Android и iOS. Как создать, настроить взаимодействие и поддерживать эти контролы в Nuget — об этом и будет доклад.
Видео
Слайды
Демо
19 ноября 2020 г.
Встреча MskDotNet №49
Photo
Андрей Сергеев
Dependency pipeline
В современной промышленной разработке широко используется инверсия управления и внедрение зависимостей — как подход и как набор популярных Dependency Injection-фреймворков, которые, с помощью в том числе механизма рефлексии, обходят ограничения модели ОО-языков. В докладе мы расскажем, как мы прошли этот путь: задавались вопросами, нашли ответы и создали решение в функциональном стиле — Dependency Pipeline — готовое для стандартного DI-механизма .NET Core (а также которое может быть адаптировано для сторонних DI-решений, если они используются в .NET Core напрямую). Также расскажем о том, как теперь, после внедрения Dependency Pipeline, мы регистрируем web-контроллеры с помощью наиболее общего механизма .NET Core, нежели предлагаемое по умолчанию более частное решение в типовом .NET Core-сервисе.
Видео
Слайды
18 ноября 2020 г.
Встреча SpbDotNet №62
Photo
Кирилл Лихтарович
Версионирование и кодогенерация в REST API
Кирилл расскажет о проблемах версионирования REST API на примерах, покажет какие способы версионирования он применяет и в чём их отличие друг от друга. Познакомимся с разницей между code first и contract first подходов и о том, почему он выбрал contract first как основной для проектирования новых API. Расскажет о кодогенерации и сделает акцент на связке кодогенерации с версионированием. Покажет приниципиальную схему кодогенератора, позволяющего прозрачно и понятно поддерживать разные версии вашего API.
Видео
Слайды
18 ноября 2020 г.
Встреча SpbDotNet №62
Photo
Игорь Лабутин
Photo
Кирилл Лихтарович
Photo
Павел Федотовский
Photo
Владимир Рогожин
Photo
Анатолий Кулаков
Web API: версионирование и дизайн
В современном мире без Web API никуда и мало найдётся проектов где вообще нет никакого API. По мере роста проекта API тоже необходимо развивать. Удобство и простота изменения определяется в том числе подходами к дизайну и версионированию. На круглом столе обсудим как можно подходить к дизайну API, что выбрать — code first или design first, как учесть необходимость версионирования и нужна ли вся эта сложность.
Видео
22 октября 2020 г.
Встреча MskDotNet №48
Photo
Леонид Андриевский
Защита программного кода .NET: разумное применение обфускации.
В рамках доклада поговорим про обфускацию кода в .NET приложениях.
Видео
Слайды
22 октября 2020 г.
Встреча MskDotNet №48
Photo
Леонид Андриевский
Photo
Павел Хрулёв
Photo
Александр Чертов
Photo
Алексей Чурбанов
Круглый стол. Поговорим о CI/CD
В рамках круглого стола обсудим: какие задачи решает CI/CD; как объяснить бизнесу, что тебе нужен CI/CD; когда нужен отдельный человек для настройки процессов CI/CD; что нужно автоматизировать, а что нет; используемые инструменты; тестирование процесса деплоя; tips-n-tricks.
Видео
22 октября 2020 г.
Встреча MskDotNet №48
Photo
Павел Хрулёв
Сборка, анализ кода, unit-тестирование и публикация приложения .NET Framework с использованием GitLab CI, SonarQube и OpenCover.
В рамках доклада спикер расскажет, как настроить сборку WPF-приложения в GitLab CI и подключить статический анализатор кода за пару часов, а также как отправить полученные артефакты в телеграмм.
Видео
Слайды
27 августа 2020 г.
Встреча SpbDotNet №61
Photo
Дмитрий Бабушкин
Мержилка .sln: быстро и надёжно, без UI и юнит-тестов
Разработка крупных решений рано или поздно сталкивается с конфликтами при слиянии веток. Что если конфликты лезут в таких местах, где текстовый мерж заставляет кровь литься из глаз, на рынке нет готовых решений, а написание своего потребует массу времени и сил? Мы посмотрим, как можно решить эту проблему написав прослойку между проблемными данными и проверенными временем инструментами с готовым UI и автоматическим мержем. Доклад будет полезен разработчикам, которые столкнулись с тем, что любимый инструмент не поддерживает специфический формат данных, и давно хотят побороть этот недостаток.
Видео
Слайды
27 августа 2020 г.
Встреча SpbDotNet №61
Photo
Анатолий Кулаков
Photo
Александр Кугушев
Photo
Артём Акуляков
Photo
Алексей Мерсон
Photo
Никита Данилов
Круглый стол «Документируй это полностью»
Её сложно найти, легко потерять и невозможно забыть. Конечно же мы имеем ввиду документацию. Возможное, это одна из самых холиварных тем, ведь очень сложно понять что, когда и как написать, так чтобы это было не то что небесполезно, но хотя бы безвредно. А, может быть, документация вообще не нужна? А если и писать, то что, когда и как? На круглом столе мы постараемся ответить на данные вопросы, собрав воедино знания, опыт и здравый смысл.
Видео
23 июля 2020 г.
Встреча SpbDotNet №60
Photo
Артём Микулич
Как интегрироваться с (не-)надёжным third-party API при помощи Polly
Интеграция с third-party сервисами дело неблагодарное. Когда мы делаем запросы в сторонний сервис, всегда есть вероятность, что что-то может пойти «не так» — отвалится сеть, сервис выбросит 429 Too Many Requests и т.д. Зачастую мы не можем устранить причину таких проблем, но в наших силах минимизировать возникающий ущерб. Вы наверняка слышали о Retry-логике, кешировании, fallback-механизмах. До появления библиотеки Polly всё это мы изобретали сами. Но теперь у нас есть отличный инструмент, который сохранит наше время и нервы.
Видео
Слайды
Демо
23 июля 2020 г.
Встреча SpbDotNet №60
Photo
Иван Патудин
gRPC и его реализация в .NET Core
gRPC — опенсорсный фреймворк для удалённого вызова процедур, который был доступен уже давно, но недавно Майкрософт интегрировал его в .NET Core, и он пришёл на смену отжившему своё WCF. В этом докладе мы разберём какие у него могут быть юзкейсы и какие задачи он решает, сильные и слабые стороны, и посравниваем его с REST и с WCF. А также разберём, как он работает, какие интересные фичи предлагает, и как помогает в кроссплатформенной разработке.
Видео
Слайды
Демо
11 июня 2020 г.
Встреча MskDotNet №47
Photo
Сергей Огородников
Практика построения сервисов на основе ViennaNET
При разработке микросервисов одним из челленджей является создание универсальной базы (платформы) для быстрой и эффективно разработки сервисов. Сообщество .NET разработчиков Райффайзенбанка разработало и внедрило в компании такую платформу. В этом году мы сделали следующий шаг – дали нашей платформе название ViennaNET вывели её в open source. В данном докладе представлен обзор библиотек, входящих в нашу платформу, а также в режиме live coding продемонстрировано её использование.
Видео
Слайды
11 июня 2020 г.
Встреча MskDotNet №47
Photo
Павел Московой
Работа с HTTP в платформе .NET, собственный движок для работы с HTTP, использующий функциональный подход на основе типа Result для обработки HTTP-ответа вместо исключений.
В .NET core для работы с HTTP принято использовать класс HttpClient. Он позволяет легко отправлять и получать данные. Однако возвращаемый ответ может отличаться в зависимости от статус-кода. Для работы с ним удобно использовать функциональный подход и тип Result. При этом для взаимодействия с SOAP часто используются автосгенерированные клиенты на основе встроенного механизма в Visual Studio. Такое решение несёт в себе определённые проблемы, которые будут упомянуты в докладе. Павел расскажет, как участники команды банка, в которую он входит, выработали единый подход для работы с HTTP на основе REST и SOAP, разработав собственный движок, основанный на использовании HttpClient и функциональных компонентов. Эта часть доклада является логичным продолжением рассказа Андрея о том, как с помощью функционального программирования можно разделить ошибки на фатальные и "ожидаемые". Это особенно наглядно можно продемонстрировать на примере обработки HTTP-ответов. Также будет показано применение разработанного движка для построения клиентов удалённых сервисов на основе REST и SOAP, альтернативных механизму предлагаемому по умолчанию в Visual Studio.
Видео
Слайды
11 июня 2020 г.
Встреча MskDotNet №47
Photo
Андрей Сергеев
Вопросы nullabilily в платформе .NET, применение функционального подхода в разработке с использованием типов Unit, Tagged Union, Optional, Result, разделение исключительных ситуаций и ожидаемых результатов при обработке ошибок.
Разработчиков программного обеспечения на языках со статической типизацией вечно преследовала известная «ошибка на миллиард долларов» — нарушение статической типизации и драматическое снижение ее строгости в результате того, что практически в любом месте программы в качестве значения ссылочной переменной может оказаться null. Андрей расскажет, как участники команды банка, в которую он входит, вначале стали работать с nullability feature в C# версии 8, с каким ограничениями технологии столкнулись, какие были найдены решения и ограничения области применения технологии. И как затем плавно перешли к большему — идее и реализации портирования в C# известных в функциональном программировании Unit, Discriminated (Tagged) Union, Optional и Result-типов, и какая в результат получается модель создаваемого программного обеспечения, от библиотечного уровня до моделей сущностей в микросервисах и заканчивая конечными точками (endpoints). Одна из важных тем доклада — то, как данный подход позволил разделить в разрабатываемых приложениях фатальные ошибки (исключения) и «ошибки», которые не являются «успехом», но являются одним из ожидаемых результатов.
Видео
Слайды
29 мая 2020 г.
Встреча MskDotNet №46
Photo
Константин Густов
Как вырастить open source в банке
Уже с середины 2010-х годов набирает популярность идея inner source — применения идей open source, таких, как открытость и разработка программ сообществами, внутри крупных компаний, которые не готовы выкладывать исходные коды своих программ и привлекать внешних участников к разработке. В команде Райффайзенбанка решили пойти дальше и нашли у себя примеры ПО, которое вполне можно опубликовать, чтобы коллеги, у которых возникают схожие проблемы, могли либо заимствовать наш опыт, либо поделиться своим. Докладчик расскажет, какие обстоятельства повлияли на то, что это стало возможно, рассмотрит состав и применимость набора библиотек, которые публикует Райффайзенбанк, опишет идеи, которые помогают продвигать идею open source внутри компании, и отметит сложности, с которыми сталкиваешься, когда переходишь от внутренней разработки к открытой.
Видео
Слайды
29 мая 2020 г.
Встреча MskDotNet №46
Photo
Марк Шевченко
Микросервисы на С#
Введение в тему микросервисов и конкретно их разработку на С#. Немного о подводных камнях и том, как с ними справляться.
Видео
Слайды
15 мая 2020 г.
Встреча SpbDotNet №59
Photo
Александр Кугушев
GameDev как хобби
Многие разработчики начали изучать программирование ради создания игр. Только жизнь вносит свои коррективы и уже сложно променять стабильный график с Enterprise зарплатой на романтику крайнчей в геймдеве. Да и свободного времени не так много, чтобы его хватило на разработку хотя бы небольшой игры. Да и эти вечера ведь можно было бы потратить на изучение еще одного фреймворка и получить приличную прибавку к зарплате. Время идёт, и огонек мечты все слабее тлеет в сердце. И в данном докладе мы постараемся его разжечь снова! Рассмотрим как с удовольствием и пользой заниматься геймдевом, как не разочароваться. И, конечно, затронем технические аспекты процесса разработки на Unity.
Видео
Слайды
15 мая 2020 г.
Встреча SpbDotNet №59
Photo
Артём Лунёв
Разработка игр на движке Unity
Наверняка у многих людей возникало желание сделать свою игру, но с чего начать разработку не понятно. В докладе будут рассмотрены основные этапы пайплайна разработки игр от дизайнерского документа до релиза, а так же затронуты вопросы особенностей разработки на движке Unity глазами инди разработчика игр.
Видео
Слайды
12 марта 2020 г.
Встреча SpbDotNet №58
Photo
Роман Лиман
Зачем мы пишем на F# в продакшене
Роман расскажет как F# упрощает повседневную энтерпрайз разработку и почему вам стоит его попробовать
Видео
Слайды
12 марта 2020 г.
Встреча SpbDotNet №58
Photo
Дмитрий Елисеев
Photo
Роман Щербаков
Внедрение MongoDB в .NET проект
В какой проект можно внедрить MongoDB? Как продать эту идею руководству и коллегам? Трудности с которыми столкнётся каждый. Ответы на эти вопросы, а так же примеры из истории внедрения в реальный production, вы найдёте в этом докладе.
Видео
Слайды
Демо
27 февраля 2020 г.
Встреча MskDotNet №45
Photo
Дмитрий Аникин
Компонентные тесты как способ написания приемочных тестов микросервисов
Дмитрий расскажет про то, что такое компонентные тесты в контексте тестирования микросервисов, с чего вдруг им стали нужны эти компонентные тесты, про то как тестируются микросервисы и немного про пирамиду тестирования. Дмитрий будет больше делать упор на личный опыт, с какими трудностями столкнулись и немного коснётся теории.
Видео
Слайды
27 февраля 2020 г.
Встреча MskDotNet №45
Photo
Роман Неволин
Photo
Кирилл Ветчинкин
Photo
Яков Повар
Photo
Сергей Огородников
Photo
Евгений Пешков
Круглый стол "Поговорим о микросервисах и DDD"
Поговорим о насущных проблемах монолитов, микросервисов и DDD.
Видео
25 февраля 2020 г.
Выступление спикеров DotNext в Омске
Photo
Константин Густов
Валидация в DDD
Подход DDD сейчас набирает популярность в связи с активным переходом на продуктовую модель разработки. Множество людей хотят активно его использовать, но сталкиваются со сложностями. Дело в том, что это набор принципов и схем, и не всегда понятно, как правильно представить в коде тот или иной аспект. В докладе рассказывается, какие взгляды в сообществе есть на процесс валидации, о попытке использования внешнего фреймворка и причинах отказа от него в пользу собственного решения.
Видео
Слайды
25 февраля 2020 г.
Выступление спикеров DotNext в Омске
Photo
Роман Просин
Code Review — искусство развивать
Говорят, повторенье мать ученья. Поверим на слово и рассмотрим тонкости искусства инспекции кода на примере языка C# так, как будто никогда о них не слышали. Доклад будет об общении автора и рецензента, правилах хорошего тона, культуре давать обратную связь, подходах к организации эффективного процессов ручной и автоматической инспекции кода. Материал будет полезен новичкам в качестве фундамента и практикующим в качестве напоминания. А также тем, кто столкнулся с проблемами вроде длительной инспекции кода, долгоживущих веток, большого количества ошибок в проде, высокой стоимости разработки и т. д.
Видео
Слайды
13 февраля 2020 г.
Встреча MskDotNet №44
Photo
Иван Калашников
Очевидная история о том, как повысить качество кода юнит-тестами
Опыт внедрения юнит-тестирования в существующий проект. Докладчик поделится инструментами, связанными с тестированием, которые пригодились его команде.
Видео
Слайды
13 февраля 2020 г.
Встреча MskDotNet №44
Photo
Андрей Михайлов
Оптимизация Generics, которая не работает
Поглядим внутренности Generics: посмотрим оптимизации CLR и узнаем что может пойти не так. Разберём интересный случай сломавшейся оптимизации, который был поднят на GitHub.
Видео
Слайды
13 февраля 2020 г.
Встреча MskDotNet №44
Photo
Дмитрий Сошников
Всё, что разработчик .NET хотел знать про глубокое обучение, но боялся спросить
Машинное обучение и нейронные сети — это крайне популярные сейчас темы, которые позволяют добиваться небывалых успехов в различных областях: от обработки изображений до синтеза музыки. По ряду причин, для таких задач чаще всего используют язык Python, который ненавистен .NET разработчикам. Горькая правда состоит в том, что на платформе .NET действительно не так много удобных инструментов, позволяющих решать задачи обучения нейросетей. Из-за этого все задачи машинного обучения обычно отдаются на откуп data scientist’у и в дальнейшем обособляются в виде отдельных сервисов. .NET разработчики же предпочитают не забивать себе голову. В этом докладе Дмитрий расскажет про основные виды нейронных сетей, используемых на сегодняшний день, и как .NET разработчики могут использовать готовые обученные сети для решения своих задач. А также, как производить «дообучение» таких сетей. Основной акцент в демонстрациях будет сделан на обработке изображений — мы научимся распознавать и находить объекты на изображении. Мы будем использовать технологию ML.NET, от слушателей требуется способность сохранять спокойствие при виде фрагментов кода на Python.
Видео
30 января 2020 г.
Встреча SpbDotNet №57
Photo
Игорь Мамай
Та самая база для понимания квантовых алгоритмов
Многие из нас с воодушевлением открывали статью про новый язык программирования для квантовых компьютеров, ожидая найти в ней что-то интересное. Но не дочитав и до середины, закрывали ее с мыслью «Ничего не понятно» или «Слишком сложно». Однако дело вовсе не в том, что квантовые вычисления слишком сложны, просто авторы статей предполагают у слушателя наличие некоторой базы. В докладе мы подготовим ту самую необходимую базу для понимания квантовых алгоритмов. Мы рассмотрим физические принципы, которые делают возможными квантовые вычисления. Познакомимся с математической моделью, рассмотрим что же такое кубит и какие операции возможно над ним совершать. Разберем простой квантовый алгоритм, демонстрирующий преимущество квантовых вычислений над классическими.
Видео
Слайды
30 января 2020 г.
Встреча SpbDotNet №57
Photo
Анатолий Жмур
Corporate Cancerology
Анатолий получает деньги за разработку ПО уже 17 лет, и поработал во всех типах контор: государственных, российских и иностранных стартапах, мировых IT корпорациях, и у него всегда бомбило! От того, что с инженерной точки зрения, компании работают неэффективно. Он читал, учился и набирался опыта, но это чувство не проходило. Анатолий собирается рассказать в формате близком к стендап комедии про то как мировой капитализм устроен и почему IT бизнес работает не так как должен. Постарается помочь смирится инженерам с тем, что мир несправедлив и отнюдь не лучшие решение воплощаются в жизнь, отбор происходит из эгоистических и прагматичных интересов технически неквалифицированных руководителей. Будут также затронуты темы модного нынче стремления к дивёрсити и нереального «богатства» российских программистов.
Видео
Слайды
23 января 2020 г.
Встреча MskDotNet №43
Photo
Виктор Илюхин
Основы создания SaaS-решений на ASP.NET MVC — от идеи до реализации
SaaS — то есть программные продукты в виде облачного сервиса, стали особенно популярны в наше время и их востребованность продолжает расти. В то же время, при наличии идеи, .NET предоставляет инструменты, позволяющие быстро добиться начального результата минимальными силами. Освоение набора таких инструментов даёт .NET разработчику большие возможности в экспериментах в создание программных продуктов.
Видео
Слайды
23 января 2020 г.
Встреча MskDotNet №43
Photo
Роман Букин
UUID — большая история маленькой структуры
В докладе рассматривается реализация собственной структуры данных, аналогичной System.Guid, и поэтапная оптимизация различных методов для работы с ней.
Видео
Слайды
16 января 2020 г.
Встреча SpbDotNet №56
Photo
Дмитрий Иванов
JetBrains.RdFramework - консистентное реактивное программирование в распределённом мире
Давайте шаг за шагом напишем «мини-райдер» - распределённое многопоточное приложение на нескольких языках программирования (в нашем случае это будут C# и Kotlin, оставим C++ в покое). Какие строительные кирпичики, идеи и технические решения нам потребуются?
Видео
Слайды
16 января 2020 г.
Встреча SpbDotNet №56
Photo
Дмитрий Иванов
Библиотека JetBrains.Lifetimes - новый взгляд на реактивное программирование и структурную многопоточность
Лайфтаймы, изначально созданные как замена IDisposable для управления ресурсами, превратились в нечто большее - основную сущность надежного реактивного программирования, многопоточности и (в случае Rider) даже межпроцессного взаимодействия для STATEFUL модели данных. По сути, это новый способ простого мышления о сложных вещах с большим количеством состояний. Мы разберем с вами практическую задачу, которая часто даётся на интервью в JetBrains Rider и увидим с какой лёгкостью лайфтаймы позволяют её решить.
Видео
Слайды
⚠️ **GitHub.com Fallback** ⚠️