- PVSM.RU - https://www.pvsm.ru -

У нас есть традиция: каждые полгода перед тем, как провести конференцию DotNext, мы публикуем на Хабре десять докладов с предыдущей конференции, которые особенно понравились участникам.
Сейчас до осеннего DotNext [1] остаются считанные дни (он пройдёт 3–4 ноября в онлайне, 20 ноября в Москве с возможностью онлайн-просмотра). Так что публикуем десятку с весеннего. Как обычно, в тексте доклады расположены от десятого места к первому — для максимальной интриги.
Можно много холиварить на тему «микросервисы против монолита»: в разных ситуациях лучше подходит разное, а на старте проекта вообще не всегда понятно, какой окажется ситуация.
Но этот доклад не про холивары и противопоставление, а наоборот, о примирении. Если неизвестно, какой подход будет лучше, как сделать так, чтобы между ними можно было переключаться?
Отвечает на этот вопрос Станислав Сидристый, которого участники прошлых DotNext хорошо знают по его докладам [2] о «кишочках».
Есть вещи, которыми прикладные разработчики могут пользоваться каждый день, но при этом особо не задумываясь, как они работают. Одна из таких — базы данных.
Павел Тупицын помогает залезть поглубже и узнать: как вообще мы общаемся с нашей БД? Как работает драйвер (клиент), как его спроектировать и реализовать? В докладе раскрыты все шаги — работа с TCP-сокетами, формат сообщений, сериализация, отказоустойчивость, распределение ресурсов и много другое. Прослушав его, вы узнаете всё необходимое, чтобы написать свой драйвер или спроектировать клиентский протокол для новой базы данных.
Григорий Кошелев давно известен многим как знатный «кафковод»: по этой теме он сделал уже целый ряд докладов («Когда всё пошло по Кафке [3]», «Как готовить Кафку, чтобы не пригорало [4]» и другие). Однако чаще всего они были на Java-конференциях, а здесь он обратился в .NET-разработчикам и заготовил .NET-примеры. И рассказал о следующем:
1. Внутреннее устройство Kafka
2. .NET-драйвер к Kafka
3. Сравнение с RabbitMQ
4. Грабли (куда же без них) и best practices
Станислав Флусов ранее уже рассказывал [5] на DotNext о миграции приложения с MS SQL на PostgreSQL. Однако за прошедшее время вопрос сталь лишь актуальнее, и многим понадобилось проделать такую миграцию «ещё вчера».
В новом докладе максимальное внимание уделено инструментам: по работе с БД, конвертации схемы, репликации данных и мониторингу. Все это позволит значительно снизить время, необходимое на миграцию вашего приложения.
Какие две вещи в распределённых системах самые сложные?
2. Доставка строго один раз.
1. Гарантированный порядок сообщений.
2. Доставка строго один раз.
В этой шутке [6] есть ощутимая доля правды, в системе из нескольких сервисов и под высокой нагрузкой бывает сложно добиться, чтобы логические и бизнесовые транзакции выполнялись однократно.
Проблема решается за счёт проектирования идемпотентных сервисов. Артем Рудневский рассказал о том, как решались эти проблемы на примере высоконагруженного сервиса, и как в этом помогали Kafka и Redis.
Выше уже говорили и о «микросервисах против монолита», и о гарантированном порядке сообщений, а тут обе эти темы сходятся.
Ну, предположим, распилили мы этот ужасный монолит. И теперь у нас логи одного и того же процесса собираются с помощью множества независимых элементов. И тут выясняется, что если опираться при этом просто на таймстемпы, то с порядком событий может возникать много чехарды.
В итоге ситуация оказывается такой непростой, что Адам Фурманек начал доклад о ней с философского вопроса «Что такое время?» — но не просто обозначил проблему, а рассказал, что помогает с ней справляться.
Известно, что языки программирования очень влияют друг на друга. C# и много что «подсмотрел» в других (его даже называли «копией Java»), и сам много что показал другим (такие фичи, как LINQ и async/await, стали активно заимствовать).
Из доклада можно узнать, когда на самом деле придумали обобщённое программирование, поддерживает ли C# ленивые вычисления и можно ли посчитать производную с абсолютной точностью. Зачем разработчику всё это знать? Помимо простого любопытства, это помогает ещё и понять внутреннюю логику языка, объясняет, какие задачи решались при внедрении какой-то фичи.
Для такой темы нужен спикер, который активно взаимодействовал с разными языками на протяжении многих лет, и здесь именно такой: Марк Шевченко пишет на C# уже почти два десятилетия, а на других языках вроде C++ начал писать ещё раньше.
Проблема безопасности всегда стоит остро: уязвимостей много, а способов их эксплуатировать ещё больше. В этом докладе рассмотрим одну из самых горячих проблем современности — атаку на цепочку поставок. На каком этапе здесь что-то может пойти не так? Да, в общем-то, на любом.
Денис Тарасов и Дмитрий Афанасьев позволяют воочию увидеть, как может произойти атака, что с этим можно сделать и почему процесс обеспечения безопасности бесконечный. Доклад рассматривает некоторые инструменты и методологии защиты от подобного рода атак.
И снова о безопасности, но тут в неожиданном ракурсе: поднимите руку, кто в вопросе уязвимостей думает про XML? А между тем дефекты безопасности, возникающие при обработке XML-файлов, хитры. Почему блог, развернутый на вашей машине, может стать причиной утечки данных? Почему при обработке картинок приложение начинает отправлять сетевые запросы?
Сергей Васильев разбирает, как обработка XML-файлов связана с дефектами безопасности, что такое XXE и XEE, и каким образом можно защититься от них.
И, наконец, лидер — доклад Анатолия Жмура.
Казалось бы, что и зачем вообще говорить .NET-разработчикам в хэш-функциях? Общее представление у всех есть, пользоваться ими при необходимости могут, что ещё нужно-то?
Ну давайте тогда такой вопрос на засыпку. А какое вообще точное определение у термина «хэш-функция»?
Оказывается, на самом деле термина «хэш-функция» даже не существует. Это лишь жаргонизм, у которого нет строгого определения. Но некоторый нестрогий набор характеристик вывести можно.
То есть в этом докладе многие узнали что-то новое и интересное для себя прямо начиная со вступления.
Надеемся, вы нашли здесь что-то интересное для себя. И если это так, то почти наверняка найдёте и на следующем DotNext — и если поучаствуете в нём, сможете не просто смотреть видео, а задавать вопросы спикерам и общаться с другими участниками. Напоминаем, он пройдёт 3-4 ноября (онлайн) и 20 ноября (Москва+онлайн), все подробности и билеты — на сайте [1].
Автор: Daria Solovey
Источник [7]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/c-2/380109
Ссылки в тексте:
[1] осеннего DotNext: https://dotnext.ru/?utm_source=habr&utm_medium=696440
[2] докладам: https://www.youtube.com/c/DotNextConf/search?query=%D1%81%D0%B8%D0%B4%D1%80%D0%B8%D1%81%D1%82%D1%8B%D0%B9
[3] Когда всё пошло по Кафке: https://www.youtube.com/watch?v=A_yUaPARv8U
[4] Как готовить Кафку, чтобы не пригорало: https://www.youtube.com/watch?v=M3HTM81P-Sg
[5] рассказывал: https://www.youtube.com/watch?v=C5SUvakzJG8&t=7s
[6] шутке: https://twitter.com/mathiasverraes/status/632260618599403520?lang=en
[7] Источник: https://habr.com/ru/post/696440/?utm_source=habrahabr&utm_medium=rss&utm_campaign=696440
Нажмите здесь для печати.