Struchkov // Java TechLead
В продолжение темы пагинации написал еще две статьи: Постраничная пагинация в SpringBoot Статья рассчитана для новичков, которые хотят разобраться как отдавать данные порциями (страницами), а не все разом. Опытные разработчики ничего нового не узнают. Хотя…
Актуализировал статью про пагинацию в SpringBoot
Узнал из доклада «Offset и keyset: почём пагинация для продакшена?», что в SpringBoot существует класс
В отличие от
На графике можно видеть скорость выполнения запроса в зависимости от номера запрашиваемой страницы для
https://struchkov.dev/blog/ru/pagination-in-springboot
Узнал из доклада «Offset и keyset: почём пагинация для продакшена?», что в SpringBoot существует класс
Slice.В отличие от
Page, Slice загружает только данные для запрошенной страницы, без дополнительной нагрузки на базу данных для подсчета общего числа результатов, что делает его более производительным для больших наборов данных.На графике можно видеть скорость выполнения запроса в зависимости от номера запрашиваемой страницы для
Page и для Slice.https://struchkov.dev/blog/ru/pagination-in-springboot
👍14❤4
Сегодня я предлагаю вам отвлечься от обычных тем, связанных с разработкой, и окунуться в развлекательный контент 😀
Сюжет, которым я хочу поделиться, разворачивается в JIRA игры World of Warships. В центре истории - исправление, казалось бы, незначительного визуального бага, но все оказывается гораздо сложнее, чем может показаться на первый взгляд...
Эта переписка датируется 2013 годом, так что есть шанс, что некоторые из вас уже сталкивались с ней. Хотя я не могу гарантировать полную достоверность истории, она кажется весьма реалистичной.
Описанные ситуации особенно знакомы и понятны тем, кто принимает участие в работе над крупными проектами.
Переписка: https://telegra.ph/Dve-poloski-ili-perepiska-v-JIRA-World-of-Warships-06-04
Сюжет, которым я хочу поделиться, разворачивается в JIRA игры World of Warships. В центре истории - исправление, казалось бы, незначительного визуального бага, но все оказывается гораздо сложнее, чем может показаться на первый взгляд...
Эта переписка датируется 2013 годом, так что есть шанс, что некоторые из вас уже сталкивались с ней. Хотя я не могу гарантировать полную достоверность истории, она кажется весьма реалистичной.
Описанные ситуации особенно знакомы и понятны тем, кто принимает участие в работе над крупными проектами.
Переписка: https://telegra.ph/Dve-poloski-ili-perepiska-v-JIRA-World-of-Warships-06-04
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegraph
Две полоски или переписка в JIRA World of Warships
JIRA ISSUE #182355 Type: BUG Priority: MEDIUM Created: 21.02.12 18:21 Description: С "Дзуйкаку" взлетает "Зеро" с маркировкой авианосца "Кага". 21.02.12 18:30 Elena Ivanova [community manager] commented: наблюдательные товарищи пишут в интернете что у нас…
😁17👍3🔥3🎉1
Разработка чата в Quarkus с использованием WebSocket
Эта статья - подробное практическое руководство, которое обучит вас основам работы с WebSocket в Java с использованием фреймворка Quarkus.
Мы разберем создание простого чата с нуля, обсудим вопросы авторизации и рассмотрим решения проблемы масштабируемости сервисов с WebSocket соединениями.
https://struchkov.dev/blog/ru/websocket-quarkus/
Эта статья - подробное практическое руководство, которое обучит вас основам работы с WebSocket в Java с использованием фреймворка Quarkus.
Мы разберем создание простого чата с нуля, обсудим вопросы авторизации и рассмотрим решения проблемы масштабируемости сервисов с WebSocket соединениями.
https://struchkov.dev/blog/ru/websocket-quarkus/
struchkov.dev
Разработка простого чата на Quarkus с использованием WebSocket
На работе я активно использую Websocket, поэтому решил рассказать, как использовать WebSocket в Quarkus. Разберем реализацию простого онлайн-чата.
🔥8
Используете .parallelStream()?
Anonymous Poll
5%
Да, в рабочих и пет проектах
5%
Да, в рабочих проектах
7%
Да, в пет проектах
82%
Нет, не использую
🧶 Глубокое погружение в Stream API Java: Понимание и Применение
Помнишь, что Stream API появился еще в Java 8? Сколько времени уже прошло, а до сих пор некоторые используют его, как черную магию, вроде всё работает, но почему - тайна покрытая мраком. 😄
И давай без лишней скромности - знаешь ли ты на самом деле, что такое Spliterator и почему он так важен в этой всей истории? Если мозги начинают кипеть от вопросов, то бегом за ответами в мою новую статью 👇
https://struchkov.dev/blog/ru/java-stream-api/
Помнишь, что Stream API появился еще в Java 8? Сколько времени уже прошло, а до сих пор некоторые используют его, как черную магию, вроде всё работает, но почему - тайна покрытая мраком. 😄
И давай без лишней скромности - знаешь ли ты на самом деле, что такое Spliterator и почему он так важен в этой всей истории? Если мозги начинают кипеть от вопросов, то бегом за ответами в мою новую статью 👇
https://struchkov.dev/blog/ru/java-stream-api/
🔥34👏5❤2🌚1
В честь этого праздника решил немного обновить свои медиа ресурсы. Нас здесь уже более 500 человек, но активности не так много. Возможно, кто-то даже удивился, увидев уведомление от этого канала — подписались давно и забыли. Но не спешите отписываться, хочу коротко рассказать, почему я пропадал и что планирую дальше.
Многие из вас, вероятно, пришли сюда из моего блога, так что начну с него. Блог всё ещё существует и закрываться не собирается, но времени на него стало меньше по ряду причин. Вот основные:
Во-первых,
Во-вторых, с появлением ChatGPT я попал в творческий кризис. Мне нравится писать статьи начального уровня, которые помогают новичкам. Но теперь ChatGPT способен генерировать такие материалы самостоятельно. Я не вижу смысла просто копировать его выводы в блог, максимум могу доверить ему редактуру. Со сложными статьями ChatGPT пока не справляется, но это, возможно, вопрос времени. И если у меня не хватает времени на простые статьи, то на сложные тем более.
В-третьих, я открыл для себя Obsidian.md и концепцию "второго мозга". Это способ записывать свои мысли и знания в небольшие заметки, которые можно связывать между собой. В результате формируется система хранения знаний, которая со временем помогает генерировать новые идеи. Теперь я много пишу, но это личные заметки, которые заменили для меня блог. На скриншоте можно видеть мой граф знаний, каждая точка это отдельная заметка.
Недавно я заинтересовался концепцией "цифровых садов" — это особый способ ведения публичных заметок. В отличие от традиционного блога, цифровой сад не следует строгой хронологии и не стремится к идеальному завершению каждой записи. Здесь важен процесс, а не результат. Идеи могут расти, пересекаться и меняться. Записи в цифровом саду — это как маленькие растения, которые можно пересаживать, подкармливать и наблюдать, как они развиваются со временем.
Такой формат позволяет сосредоточиться на содержании, не беспокоясь о форме. А также не переживать о том, что читатель должен что-то уже знать. Если он чего-то не знает, всегда можно найти другую заметку, или просто оставить это на его усмотрение. Никто никому ничего не должен — свобода.
Что будет с блогом? Он остаётся для структурированных и тщательно оформленных постов, которые я буду периодически собирать из своих заметок. Блог — это место, где я хочу систематизировать и сохранить какие-то знания.
Вот такие новости! Первую часть заметок я опубликую здесь завтра. Основная тема ближайших заметок будет HighLoad. А пока можно самостоятельно побродить по саду: https://garden.struchkov.dev/ru/
Самое ценное для меня в этом формате — возможность обсуждать заметки. Так что не стесняйтесь оставлять комментарии, делиться дополнительными материалами и даже редактировать заметки, если увидите ошибки.
Спасибо, что остаетесь со мной
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥39🎉14👍9👏6❤🔥1
🚀 Ускоряем системы: что полезно знать о кэшировании
Кэширование может значительно повысить производительность приложений и снизить нагрузку на серверы. Разбираемся в типах кэшей, ключах кэширования и неожиданных рисках.
Из полезного можно узнать:
- Как оценить эффективность использования кэша?
- Подходы к инвалидации
А в комментариях к заметке предлагаю обсудить следующий тезис: "Хорошая система должна уметь выдерживать нагрузку и без кэша. Задача кэша ускорить ответ, а не держать нагрузку."
Делитесь своим опытом и идеями в комментариях к заметке.
-- -- -- -- --
https://garden.struchkov.dev/ru/dev/architecture/%D0%9A%D1%8D%D1%88%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5
Кэширование может значительно повысить производительность приложений и снизить нагрузку на серверы. Разбираемся в типах кэшей, ключах кэширования и неожиданных рисках.
Из полезного можно узнать:
- Как оценить эффективность использования кэша?
- Подходы к инвалидации
А в комментариях к заметке предлагаю обсудить следующий тезис: "Хорошая система должна уметь выдерживать нагрузку и без кэша. Задача кэша ускорить ответ, а не держать нагрузку."
Делитесь своим опытом и идеями в комментариях к заметке.
-- -- -- -- --
https://garden.struchkov.dev/ru/dev/architecture/%D0%9A%D1%8D%D1%88%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5
Struchkov's Garden 🪴
Кэширование
Для каждого ресурса критичной для пользователя является такая характеристика, как время отклика сервера. Увеличение времени отклика сервера приводит к оттоку посетителей.
🔥22👍3❤1🆒1
Как я уже упоминал, заметки в саду могут изменяться и обновляться. После публикации заметки о кэшировании я вспомнил, что не поделился частью опыта, полученного при написании собственной библиотеки для кэширования в Quarkus, и решил обновить заметки:
- Ключ кэширования:
Более подробно описал процесс формирования ключа с учётом параметров, особенно когда дело касается коллекций. Как включить коллекцию в ключ? Я поделился своим подходом, но мне интересно, как вы бы это сделали. Предлагаю обсудить это в комментариях к заметке.
- Инвалидация кэша:
Добавил информацию о способах инвалидации кэша по TTL и по событию. Включил скрипт на Lua, который обновляет TTL при запросах, и объяснил, когда это бывает полезно.
Также я добавил информацию о том, как использование GZIP помогает уменьшить размер кэша.
- Ключ кэширования:
Более подробно описал процесс формирования ключа с учётом параметров, особенно когда дело касается коллекций. Как включить коллекцию в ключ? Я поделился своим подходом, но мне интересно, как вы бы это сделали. Предлагаю обсудить это в комментариях к заметке.
- Инвалидация кэша:
Добавил информацию о способах инвалидации кэша по TTL и по событию. Включил скрипт на Lua, который обновляет TTL при запросах, и объяснил, когда это бывает полезно.
Также я добавил информацию о том, как использование GZIP помогает уменьшить размер кэша.
👍11🙏2
✏️ Использование Tuple и Pair в Java
Tuple — удобный инструмент для объединения нескольких значений, но всегда ли его использование оправдано? 🤔
В своей новой заметке я разбираю, где Tuple действительно помогает, а когда лучше выбрать именованные классы. Также рассматриваю использование Tuple в реактивном подходе, и делюсь практическими советами.
Если хотите узнать, как улучшить читаемость кода и избежать типичных ошибок, переходите по ссылке👇
https://garden.struchkov.dev/ru/dev/java/tuple
Tuple — удобный инструмент для объединения нескольких значений, но всегда ли его использование оправдано? 🤔
В своей новой заметке я разбираю, где Tuple действительно помогает, а когда лучше выбрать именованные классы. Также рассматриваю использование Tuple в реактивном подходе, и делюсь практическими советами.
Если хотите узнать, как улучшить читаемость кода и избежать типичных ошибок, переходите по ссылке👇
https://garden.struchkov.dev/ru/dev/java/tuple
👍12🔥4❤3👀2
Делитесь материалами. Расскажите о статьях и заметках друзьям или коллегам, например, в вашем рабочем чате — это помогает проекту расти!
Проголосуйте за канал. Если у вас Telegram Premium, вы можете поддержать мой канал своим голосом. Буду публиковать сторисы с конференций.
Оставьте отзыв. Напишите, как мои материалы помогли вам в работе или учебе, в Книге впечатлений. Конструктивные отзывы вдохновляют и помогают развиваться!
Поддержите материально. Если у вас уже есть вторая «бэха», вы можете поддержать рублем или через реферальные ссылки на сервисы, которые я использую в работе.
Любой вклад важен, и я очень благодарен каждому из вас за поддержку
Please open Telegram to view this post
VIEW IN TELEGRAM
Telegram
Struchkov // Java TechLead
Проголосуйте за канал, чтобы он получил больше возможностей.
🎉70😢1
💾 Репликация базы данных
Хотите, чтобы ваша база данных была всегда доступна и справлялась с любыми нагрузками? В новой статье рассказываю о репликации — одном из ключевых методов повышения надёжности и производительности.
Вы узнаете:
- Как работает репликация в разных СУБД;
- В чём различие между синхронной и асинхронной репликацией;
- Как избежать отставания реплик и других проблем;
- Почему репликация в сочетании с шардированием и кластеризацией — мощное решение для масштабируемых систем.
https://struchkov.dev/blog/ru/database-replication/
Хотите, чтобы ваша база данных была всегда доступна и справлялась с любыми нагрузками? В новой статье рассказываю о репликации — одном из ключевых методов повышения надёжности и производительности.
Вы узнаете:
- Как работает репликация в разных СУБД;
- В чём различие между синхронной и асинхронной репликацией;
- Как избежать отставания реплик и других проблем;
- Почему репликация в сочетании с шардированием и кластеризацией — мощное решение для масштабируемых систем.
https://struchkov.dev/blog/ru/database-replication/
struchkov.dev
Репликация базы данных
Репликация важна в системах где требуется высокая доступность данных и минимизация времени простоя. Этот механизм является ключевым элементом горизонтального масштабирования базы данных.
🔥29
📢 Эволюция Java-кода: от анонимных классов к лямбда-выражениям.
Когда я работал наставником в Яндекс.Практикум, одной из самых сложных тем для студентов был функциональный подход в Java. Лямбда-выражения и функциональные интерфейсы буквально “ломали мозг” многим🤯
В своей новой статье я детально разобрал, как можно перейти от базовых подходов работы с методами к — функциональным интерфейсам, лямбда-выражениям и ссылкам на методы. Мы рассмотрим, как сделать код не только более читабельным, но и легко расширяемым.
https://struchkov.dev/blog/ru/lambda-expression-java/
Когда я работал наставником в Яндекс.Практикум, одной из самых сложных тем для студентов был функциональный подход в Java. Лямбда-выражения и функциональные интерфейсы буквально “ломали мозг” многим
В своей новой статье я детально разобрал, как можно перейти от базовых подходов работы с методами к — функциональным интерфейсам, лямбда-выражениям и ссылкам на методы. Мы рассмотрим, как сделать код не только более читабельным, но и легко расширяемым.
https://struchkov.dev/blog/ru/lambda-expression-java/
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥28❤1
Для лучшего усвоения материала, я делаю подробные конспекты статей, докладов и книг. И решил попробовать делиться этими конспектами, чтобы каждый мог получить полезные выводы из лекций, даже если нет времени слушать их целиком. Эти материалы также служат “почвой” для моего цифрового сада.
Буду рад получить вашу обратную связь: стоит ли продолжать делиться такими конспектами?
-- -- -- -- --
🤔 Virtual Threads или WebFlux? Что лучше выбрать?
Доклад о том, могут ли Virtual Threads заменить WebFlux в современных Java-приложениях. Оказалось, что оба подхода имеют свои плюсы и минусы, и выбор зависит от конкретных задач.
🔑 Основные выводы:
* Virtual Threads в Java 21 существенно повышают производительность и их внедрение довольно простое.
* WebFlux остается мощным инструментом для задач, требующих максимальной оптимизации, но за это придется заплатить сложностью разработки.
📊 По результатам тестирования:
* Прирост производительности при использовании Virtual Threads достигает 200% по сравнению с обычными потоками.
* WebFlux даёт ещё дополнительные 30%, но требует глубокого изучения и изменения подхода к разработке.
https://garden.struchkov.dev/ru/source/lecture/%D0%94%D0%BE%D0%BA%D0%BB%D0%B0%D0%B4.-%D0%9C%D0%BE%D0%B3%D1%83%D1%82-%D0%BB%D0%B8-Virtual-threads-%D0%B7%D0%B0%D0%BC%D0%B5%D0%BD%D0%B8%D1%82%D1%8C-Webflux
Буду рад получить вашу обратную связь: стоит ли продолжать делиться такими конспектами?
-- -- -- -- --
Доклад о том, могут ли Virtual Threads заменить WebFlux в современных Java-приложениях. Оказалось, что оба подхода имеют свои плюсы и минусы, и выбор зависит от конкретных задач.
🔑 Основные выводы:
* Virtual Threads в Java 21 существенно повышают производительность и их внедрение довольно простое.
* WebFlux остается мощным инструментом для задач, требующих максимальной оптимизации, но за это придется заплатить сложностью разработки.
📊 По результатам тестирования:
* Прирост производительности при использовании Virtual Threads достигает 200% по сравнению с обычными потоками.
* WebFlux даёт ещё дополнительные 30%, но требует глубокого изучения и изменения подхода к разработке.
https://garden.struchkov.dev/ru/source/lecture/%D0%94%D0%BE%D0%BA%D0%BB%D0%B0%D0%B4.-%D0%9C%D0%BE%D0%B3%D1%83%D1%82-%D0%BB%D0%B8-Virtual-threads-%D0%B7%D0%B0%D0%BC%D0%B5%D0%BD%D0%B8%D1%82%D1%8C-Webflux
Please open Telegram to view this post
VIEW IN TELEGRAM
Struchkov's Garden 🪴
Доклад. Могут ли Virtual threads заменить Webflux
Организатор:: Т-Банк Конференция:: Конференция. JVM Day 2024 Автор:: Сергей Петрелевич Ссылка:: Могут ли Virtual threads заменить Webflux? — Сергей Петрелевич, Squad - YouTube О чем доклад: Автор пытается понять есть ли место реактивной парадигме в современной…
👍18🔥16
Struchkov // Java TechLead
📢 Эволюция Java-кода: от анонимных классов к лямбда-выражениям. Когда я работал наставником в Яндекс.Практикум, одной из самых сложных тем для студентов был функциональный подход в Java. Лямбда-выражения и функциональные интерфейсы буквально “ломали мозг”…
Недавно я выпустил статью о лямбда-выражениях, и один из разделов вызвал много вопросов. Поэтому я решил переписать этот фрагмент, чтобы сделать его более понятным. Теперь в нём подробно объясняется, как работает LambdaMetafactory при динамическом создании лямбд.
Я также добавил пример, в котором сэмулировал поведение лямбды вручную с использованием LambdaMetafactory, без явного создания лямбды. Это поможет лучше понять, что происходит под капотом при работе с лямбда-выражениями в Java.
Перейти к обновленому разделу "Хранение в памяти и работа в JVM"
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21
💡 Хочу порекомендовать канал Юли (@javagirlspace), который я читаю с самого начала!
Мы с Юлей начали вести свои каналы примерно одновременно, и её публикации всегда вдохновляли меня. Сейчас она работает в Яндексе, а начинала как 1С-программист, постепенно став востребованным Java специалистом — её канал как раз о таких профессиональных достижениях и развитии. Там вы найдёте размышления о work-life балансе, профессиональном развитии и честные истории о сложностях, с которыми она сталкивается как на работе, так и в личной жизни.
Юля пишет легко и искренне, делится своими успехами и вызовами, будь то сдача сложных проектов, организация рабочего дня на удалёнке или участие в IT-мероприятиях. Особенно ценю, что она открыто рассказывает, как находит баланс и ритм в жизни, не скрывая трудностей. Канал полон её личного опыта и полезных мыслей, которые будут интересны не только разработчикам, но и всем, кто ищет гармонию в жизни.
Если вам нравятся живые, искренние заметки о жизни в IT, где можно не только почерпнуть новые знания, но и почувствовать поддержку, то этот канал — для вас. Кроме того, Юля всегда открыта для общения и рада отвечать на вопросы подписчиков.
👩💻 Заходите, читайте и вдохновляйтесь!
Мы с Юлей начали вести свои каналы примерно одновременно, и её публикации всегда вдохновляли меня. Сейчас она работает в Яндексе, а начинала как 1С-программист, постепенно став востребованным Java специалистом — её канал как раз о таких профессиональных достижениях и развитии. Там вы найдёте размышления о work-life балансе, профессиональном развитии и честные истории о сложностях, с которыми она сталкивается как на работе, так и в личной жизни.
Юля пишет легко и искренне, делится своими успехами и вызовами, будь то сдача сложных проектов, организация рабочего дня на удалёнке или участие в IT-мероприятиях. Особенно ценю, что она открыто рассказывает, как находит баланс и ритм в жизни, не скрывая трудностей. Канал полон её личного опыта и полезных мыслей, которые будут интересны не только разработчикам, но и всем, кто ищет гармонию в жизни.
Если вам нравятся живые, искренние заметки о жизни в IT, где можно не только почерпнуть новые знания, но и почувствовать поддержку, то этот канал — для вас. Кроме того, Юля всегда открыта для общения и рада отвечать на вопросы подписчиков.
👩💻 Заходите, читайте и вдохновляйтесь!
👍13🔥1
🚀 Введение в многопоточность: Преимущества, проблемы и ключевые концепции
Это первая статья из серии о многопоточности. Мы начнем с базовых понятий и будем постепенно углубляться до более сложных тем, таких как реактивное программирование. Всего в серии запланировано около 7-8 статей.
В этой статье мы обсудим основы многопоточности и затронем такие ключевые концепции, как потоки, конкурентность, параллелизм и асинхронность.
📖 Подробнее
Это первая статья из серии о многопоточности. Мы начнем с базовых понятий и будем постепенно углубляться до более сложных тем, таких как реактивное программирование. Всего в серии запланировано около 7-8 статей.
В этой статье мы обсудим основы многопоточности и затронем такие ключевые концепции, как потоки, конкурентность, параллелизм и асинхронность.
📖 Подробнее
🔥30❤6🏆4👍1
✨ Новая рубрика — “Вопрос недели”!
С сегодняшнего дня в канале стартует новая рубрика — “Вопрос недели”! 🎉 Каждое утро среды я буду задавать важный или интересный вопрос, связанный с разработкой, чтобы вы могли начать день с размышлений и обсуждений.
Приглашаю вас дискутировать в комментариях к опросу, обдумывать возможные решения и делиться своим опытом. А уже вечером выйдет заметка с разбором этой темы!
И, конечно, отличного вам рабочего дня! 🚀
С сегодняшнего дня в канале стартует новая рубрика — “Вопрос недели”! 🎉 Каждое утро среды я буду задавать важный или интересный вопрос, связанный с разработкой, чтобы вы могли начать день с размышлений и обсуждений.
Приглашаю вас дискутировать в комментариях к опросу, обдумывать возможные решения и делиться своим опытом. А уже вечером выйдет заметка с разбором этой темы!
И, конечно, отличного вам рабочего дня! 🚀
👍8
🗳 Вопрос недели: Создаёте ли вы индекс для внешнего ключа при проектировании базы данных?
Anonymous Poll
37%
Да
34%
Нет
28%
В некоторых ситуациях
🔑 Индекс на внешний ключ — это не опция, а необходимость
Часто забываемый, но очень важный момент в проектировании схемы базы данных — добавление индекса на столбец внешнего ключа. Почему это так важно?
В заметке вы найдете наглядный и неочевидный пример, в котором без индекса запрос выполнялся 690 мс, а с индексом — всего 0.1 мс 😱
📖 Подробнее
Часто забываемый, но очень важный момент в проектировании схемы базы данных — добавление индекса на столбец внешнего ключа. Почему это так важно?
В заметке вы найдете наглядный и неочевидный пример, в котором без индекса запрос выполнялся 690 мс, а с индексом — всего 0.1 мс 😱
📖 Подробнее
Struchkov's Garden 🪴
Индекс для внешнего ключа таблицы БД
При создании внешнего ключа в базе данных важно не забывать про добавление индекса на соответствующий столбец. Разберёмся, почему это важно. Сперва обратимся к документации PostgreSQL: A foreign key must reference columns that either are a primary key or…
3👍17🔥9✍3😱1😨1
🔑 Как я решаю проблему уникальных идентификаторов в своих приложениях?
Когда дело касается уникальных идентификаторов, я почти всегда выбираю UUID. Однако версию UUID я подбираю в зависимости от задач конкретного сервиса. Каждая версия UUID имеет свои особенности, и выбор зависит от того, что важнее: сортируемость, случайность или производительность.
Подробнее о том, как я использую UUID и какие версии предпочитаю, можно узнать в моей заметке. Там вы найдете обзор каждой версии, с ее преимуществами и недостатками, а также сравнение производительности вставки и чтения в базе данных для разных версий UUID.
https://garden.struchkov.dev/ru/dev/Universal-Unique-IDentifier
А пока предлагаю вам поделиться своим опытом и проголосовать в опросе ниже!👇
Когда дело касается уникальных идентификаторов, я почти всегда выбираю UUID. Однако версию UUID я подбираю в зависимости от задач конкретного сервиса. Каждая версия UUID имеет свои особенности, и выбор зависит от того, что важнее: сортируемость, случайность или производительность.
Подробнее о том, как я использую UUID и какие версии предпочитаю, можно узнать в моей заметке. Там вы найдете обзор каждой версии, с ее преимуществами и недостатками, а также сравнение производительности вставки и чтения в базе данных для разных версий UUID.
https://garden.struchkov.dev/ru/dev/Universal-Unique-IDentifier
А пока предлагаю вам поделиться своим опытом и проголосовать в опросе ниже!👇
1👍11
Какой способ генерации уникальных идентификаторов вы используете?
Anonymous Poll
11%
UUID V1
40%
UUID V4 / V5
12%
UUID V7
43%
Автоинкремент
6%
Собственная реализация
4%
Другие способы — расскажите в комментариях!
👍4