Топ-10 докладов DotNext 2022 Spring

51ec4b351fd7282a575a707101e32491.png

У нас есть традиция: каждые полгода перед тем, как провести конференцию DotNext, мы публикуем на Хабре десять докладов с предыдущей конференции, которые особенно понравились участникам.

Сейчас до осеннего DotNext остаются считанные дни (он пройдёт 3–4 ноября в онлайне, 20 ноября в Москве с возможностью онлайн-просмотра). Так что публикуем десятку с весеннего. Как обычно, в тексте доклады расположены от десятого места к первому — для максимальной интриги.

10. Гибридная архитектура: слияние микросервисов в монолит по необходимости

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

Но этот доклад не про холивары и противопоставление, а наоборот, о примирении. Если неизвестно, какой подход будет лучше, как сделать так, чтобы между ними можно было переключаться?

Отвечает на этот вопрос Станислав Сидристый, которого участники прошлых DotNext хорошо знают по его докладам о «кишочках».

9. Как написать высокопроизводительный драйвер базы данных

Есть вещи, которыми прикладные разработчики могут пользоваться каждый день, но при этом особо не задумываясь, как они работают. Одна из таких — базы данных.

Павел Тупицын помогает залезть поглубже и узнать: как вообще мы общаемся с нашей БД? Как работает драйвер (клиент), как его спроектировать и реализовать? В докладе раскрыты все шаги — работа с TCP-сокетами, формат сообщений, сериализация, отказоустойчивость, распределение ресурсов и много другое. Прослушав его, вы узнаете всё необходимое, чтобы написать свой драйвер или спроектировать клиентский протокол для новой базы данных.

8. Kafka: от теории к практике

Григорий Кошелев давно известен многим как знатный «кафковод»: по этой теме он сделал уже целый ряд докладов («Когда всё пошло по Кафке», «Как готовить Кафку, чтобы не пригорало» и другие). Однако чаще всего они были на Java-конференциях, а здесь он обратился в .NET-разработчикам и заготовил .NET-примеры. И рассказал о следующем:

1. Внутреннее устройство Kafka
2. .NET-драйвер к Kafka
3. Сравнение с RabbitMQ
4. Грабли (куда же без них) и best practices

7. Миграция с MS SQL в PostgreSQL, когда нужно ещё вчера

Станислав Флусов ранее уже рассказывал на DotNext о миграции приложения с MS SQL на PostgreSQL. Однако за прошедшее время вопрос сталь лишь актуальнее, и многим понадобилось проделать такую миграцию «ещё вчера».

В новом докладе максимальное внимание уделено инструментам: по работе с БД, конвертации схемы, репликации данных и мониторингу. Все это позволит значительно снизить время, необходимое на миграцию вашего приложения.

6. Exactly-once в микросервисной среде

Какие две вещи в распределённых системах самые сложные?

2. Доставка строго один раз.
1. Гарантированный порядок сообщений. 
2. Доставка строго один раз.

В этой шутке есть ощутимая доля правды, в системе из нескольких сервисов и под высокой нагрузкой бывает сложно добиться, чтобы логические и бизнесовые транзакции выполнялись однократно. 

Проблема решается за счёт проектирования идемпотентных сервисов. Артем Рудневский рассказал о том, как решались эти проблемы на примере высоконагруженного сервиса, и как в этом помогали Kafka и Redis.

5. Ordering the Chaos: Cleaning Logs and Ordering Events in Microservices

Выше уже говорили и о «микросервисах против монолита», и о гарантированном порядке сообщений, а тут обе эти темы сходятся. 

Ну, предположим, распилили мы этот ужасный монолит. И теперь у нас логи одного и того же процесса собираются с помощью множества независимых элементов. И тут выясняется, что если опираться при этом просто на таймстемпы, то с порядком событий может возникать много чехарды.

В итоге ситуация оказывается такой непростой, что Адам Фурманек начал доклад о ней с философского вопроса «Что такое время?» —, но не просто обозначил проблему, а рассказал, что помогает с ней справляться.

4. Откуда что взялось в C#

Известно, что языки программирования очень влияют друг на друга. C# и много что «подсмотрел» в других (его даже называли «копией Java»), и сам много что показал другим (такие фичи, как LINQ и async/await, стали активно заимствовать). 

Из доклада можно узнать, когда на самом деле придумали обобщённое программирование, поддерживает ли C# ленивые вычисления и можно ли посчитать производную с абсолютной точностью. Зачем разработчику всё это знать? Помимо простого любопытства, это помогает ещё и понять внутреннюю логику языка, объясняет, какие задачи решались при внедрении какой-то фичи.

Для такой темы нужен спикер, который активно взаимодействовал с разными языками на протяжении многих лет, и здесь именно такой: Марк Шевченко пишет на C# уже почти два десятилетия, а на других языках вроде C++ начал писать ещё раньше.

3. Атакуем цепочку поставок

Проблема безопасности всегда стоит остро: уязвимостей много, а способов их эксплуатировать ещё больше. В этом докладе рассмотрим одну из самых горячих проблем современности — атаку на цепочку поставок. На каком этапе здесь что-то может пойти не так? Да, в общем-то, на любом.

Денис Тарасов и Дмитрий Афанасьев позволяют воочию увидеть, как может произойти атака, что с этим можно сделать и почему процесс обеспечения безопасности бесконечный. Доклад рассматривает некоторые инструменты и методологии защиты от подобного рода атак.

2. Обработка XML-файлов как причина появления уязвимостей

И снова о безопасности, но тут в неожиданном ракурсе: поднимите руку, кто в вопросе уязвимостей думает про XML? А между тем дефекты безопасности, возникающие при обработке XML-файлов, хитры. Почему блог, развернутый на вашей машине, может стать причиной утечки данных? Почему при обработке картинок приложение начинает отправлять сетевые запросы?  

Сергей Васильев разбирает, как обработка XML-файлов связана с дефектами безопасности, что такое XXE и XEE, и каким образом можно защититься от них.

1. Поговорим о хэш-функциях

И, наконец, лидер — доклад Анатолия Жмура

Казалось бы, что и зачем вообще говорить .NET-разработчикам в хэш-функциях? Общее представление у всех есть, пользоваться ими при необходимости могут, что ещё нужно-то?

Ну давайте тогда такой вопрос на засыпку. А какое вообще точное определение у термина «хэш-функция»?

Ответ

Оказывается, на самом деле термина «хэш-функция» даже не существует. Это лишь жаргонизм, у которого нет строгого определения. Но некоторый нестрогий набор характеристик вывести можно.

То есть в этом докладе многие узнали что-то новое и интересное для себя прямо начиная со вступления.

Надеемся, вы нашли здесь что-то интересное для себя. И если это так, то почти наверняка найдёте и на следующем DotNext — и если поучаствуете в нём, сможете не просто смотреть видео, а задавать вопросы спикерам и общаться с другими участниками. Напоминаем, он пройдёт 3–4 ноября (онлайн) и 20 ноября (Москва+онлайн), все подробности и билеты — на сайте.

© Habrahabr.ru