Калина Алексей блог программиста

Консенсус в распределенных системах

Распределенные системы существуют по двум основным причинам, причем обе из них стали крайне актуальны в последнее десятилетие. Во-первых, объемы хранимых и обрабатываемых данных постоянно растут и для многих систем уже давно не умещаются на одном физическом носителе. Во-вторых, этих носителей настолько много, что каждый год выходят из строя тыся... Read more

Правим историю Git с помощью интерактивного rebase

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

Синхронизация в потокобезопасных контейнерах

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

Разбираемся с сокетами на примере стандартной библиотеки Go

Сокеты являются основой почти любого сетевого приложения, даже если их использование скрыто от ваших глаз. Наша цель — разобраться, что это такое, и написать простое приложение для взаимодействия по сети. Реализуем мы это приложение на языке Go, но принципы использования сокетов одинаковы для любых языков программирования, а библиотеки имеют оче... Read more

Иерархия чистого кода. На пути к архитектуре ПО

В этой статье мы поговорим о хорошо структурированном коде и арихитектуре программного обеспечения. Для многих архитектор ПО — вершина карьеры разработчика, человек, который знает все, а архитектура — нечто необъятное, что можно познать только спустя многие годы в профессии. Мы попробуем разобраться, из чего складывается хорошая программа на раз... Read more