-
Инструменты Techlead Crew
Прошедший выпуск Podlodka Techlead Crew был посвящен межсервисному взаимодействию. Как и всегда, были знакомые вещи и не очень. В конечном счете, невозможно знать и помнить обо всём. Вот и я выписал себе очередной набор инструментов, которые показались мне крайне интересными. Чем и спешу поделиться.
-
Слабая или сильная изоляция транзакций
Сегодня я решил затронуть больную и холиварную для многих тему. Но я не вижу иного варианта для пятницы, после очередного сезона Podlodka. Поэтому предлагаю ознакомиться с тезисами и приступить к обсуждению или, по крайней мере, задуматься.
-
Event Storming
Как и многим, мне нравятся простые визуальные нотации, с помощью которых можно быстро понять суть дела. Считаю, что за такими инструментами будущее. Поэтому на прошедшей онлайн-конференции NextConf в центре моего внимания был доклад и воркшоп по Event Storming (не путать с Event Sourcing). Сам метод мне знаком, но всегда была интересна практическая часть. Поделюсь своими открытиями.
-
Чего не написано - того нет
Такую фразу неустанно повторял мой преподаватель в университете. Так он учил нас правильно воспринимать требования в задачах по электротехнике. :-) Однако я благополучно применяю этот принцип до сих пор и в разных сферах. В нужный момент позволяет остановить галлюцинирование и пойти за уточнением требований. :-)
-
Lamport Timestamp: генерация целочисленного идентификатора в распределённой БД без ACID-транзакций
В далёком 1978 году Leslie Lamport — американский учёный в области информатики и распределённых систем — предложил простой и эффективный способ определения порядка событий в распределённой системе. Позже этот алгоритм так и назвали: Lamport Timestamp. Давайте разберёмся, как данный алгоритм можно использовать на практике. В качестве примера рассмотрим задачу, более приземлённую к прикладной разработке.
-
Выбор UUID для первичного ключа таблицы
В базах данных, где в качестве алгоритма хранения первичного ключа используется B-tree, отдается предпочтение целочисленным типам данных. Это связано с рядом причин, включая производительность. Но что, если в качестве ключа нужно использовать UUID? Насколько сильно это повлияет на производительность? А можно ли сделать так, чтобы это влияние было сведено к минимуму?
-
Структура, высеченная в камне
Сегодня будет небольшой манифест. :) Часто сталкиваюсь с одним очень интересным фактом. Большинство разработчиков с большей охотой идут на изменения в коде, нежели на изменение в структуре проекта. Даже самые очевидные аргументы в этом вопросе работают плохо.
-
Устранение уязвимостей в коде
Сегодня решил рассказать об одном аспекте в разработке ПО, про который очень часто несправедливо забывают. Это способы изоляции приложения и системы, в которой это приложение исполняется.
-
Утилита изоляции процессов Bubblewrap
Представьте, что вам нужно запустить некоторый процесс Linux в изолированной среде. Так, чтобы он не смог нанести вред системе, на которой запускается. Какие инструменты мы используем в таких случаях? Первое, что приходит в голову, это технологии виртуализации или контейнеризации. Но что если нам нужно что-то более легковесное и простое в использовании? На самом деле такой инструмент есть - это утилита командной строки Bubblewrap, один из проектов сообщества Containers (знаменито авторством таких инструментов, как Podman, Buildah, Skopeo и др.).
-
Безопасное исполнение ненадежного кода
Лучший способ о чем-то рассказать - это сделать доклад. :-) Поэтому я подал заявку на участие в конференции TechLeadConf 2025. Сейчас уже могу сказать, что меня включили в программу конференции, поэтому жду вас 5 июня в Москве. Тема доклада - “Безопасное исполнение ненадежного кода”. Приходите, будет интересно. ;-)