Распределенные системы существуют по двум основным причинам, причем обе из них стали крайне актуальны в последнее десятилетие. Во-первых, объемы хранимых и обрабатываемых данных постоянно растут и для многих систем уже давно не умещаются на одном физическом носителе. Во-вторых, этих носителей настолько много, что каждый год выходят из строя тыся... Read more 12 Jan 2020 - 9 minute read
Система контроля версий — неотъемлемый инструмент в рабочем процессе любого разработчика. С его помощью вы можете сохранять состояния вашего проекта, переключаться между ними и поддерживать разработку несколькими людьми. Самой популярной системой контроля версий на текущий момент является git. В этом посте мы не будем изучать основы git — есть ... Read more 03 Nov 2019 - 9 minute read
Сегодня мы поговорим о многопоточности. Не о том многоядерном параллелизме, который должен спасти нас от замедления закона Мура, а о ситуации, когда есть общая память и множество потоков, которые принимают запросы и взаимодействуют с этой памятью. В качестве абстракции общей памяти, как правило, используют потокобезопасные контейнеры. Внутри они... Read more 16 Jun 2019 - 16 minute read
Сокеты являются основой почти любого сетевого приложения, даже если их использование скрыто от ваших глаз. Наша цель — разобраться, что это такое, и написать простое приложение для взаимодействия по сети. Реализуем мы это приложение на языке Go, но принципы использования сокетов одинаковы для любых языков программирования, а библиотеки имеют оче... Read more 17 Feb 2019 - 6 minute read
В этой статье мы поговорим о хорошо структурированном коде и арихитектуре программного обеспечения. Для многих архитектор ПО — вершина карьеры разработчика, человек, который знает все, а архитектура — нечто необъятное, что можно познать только спустя многие годы в профессии. Мы попробуем разобраться, из чего складывается хорошая программа на раз... Read more 06 Feb 2019 - 7 minute read