Найти в Дзене
Покупайте СтеллыИ дарите их за контент
3 дня назад
 • Вы подписаны

5 книг, которые обязан прочитать каждый разработчик (хотя бы раз)

Эти книги охватывают разные аспекты создания ПО: от написания кода и паттернов проектирования до распределённых систем, микросервисов и грамотного проектирования API. Кроме того, большинство из них очень помогли мне при подготовке к собеседованиям по проектированию систем. Эта книга полностью посвящена написанию качественного, поддерживаемого кода. Автор, Роберт Мартин (также известный как Дядя Боб), даёт практические рекомендации и лучшие практики по структурированию кода, именованию переменных, обработке ошибок и многому другому...

3 дня назад
 • Вы подписаны

Последовательное хэширование (Consistent Hashing) простыми словами

В распределённой системе, где узлы (серверы) часто добавляются или удаляются, эффективная маршрутизация запросов становится нетривиальной задачей. Обычный подход — хэшировать запрос и назначать его серверу по формуле Hash(ключ) mod N, где N — это число серверов. Однако этот метод сильно привязан к количеству серверов, и любое изменение N приводит к масштабному перехэшированию, вызывая серьёзное перераспределение ключей (запросов). Последовательное хэширование решает эту проблему, гарантируя, что...

3 дня назад
 • Вы подписаны

Что такое ACID-транзакции в базах данных?

Представьте, что вы разрабатываете интернет-магазин. Клиент оформляет заказ, и ваша система должна одновременно: А что произойдёт, если оплата не пройдёт, а остаток товара уже уменьшен? Или если ваше приложение «упадёт» посередине процесса? Именно здесь на помощь приходят ACID-транзакции. Они гарантируют, что все шаги в подобных критических операциях выполняются надёжно и согласованно. ACID — это аббревиатура четырёх ключевых свойств транзакции: В этой статье мы подробно разберём каждое из этих свойств, объясним, почему они важны и как реализуются в базах данных...

3 дня назад
 • Вы подписаны

7 стратегий вытеснения кэша, которые вы должны знать

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

5 дней назад
 • Вы подписаны

Concurrency vs Parallelism

Concurrency (конкурентность) и parallelism (параллелизм) — два самых неправильно понимаемых понятия в проектировании систем. Хотя они звучат похоже, на самом деле они относятся к принципиально разным подходам к обработке задач. Проще говоря, одно — это управление несколькими задачами одновременно (в смысле «одновременно в промежутках»), а другое — выполнение нескольких задач в один и тот же момент времени. В этой статье мы разберём различия между этими понятиями, рассмотрим, как они работают, и проиллюстрируем их применение в реальном мире на примерах и коде...

Покупайте СтеллыИ дарите их за контент