
Построение системы A/B тестирования в Go: от нуля до готовых к производству экспериментов
Создание системы A/B-тестирования в Go: практическое руководство по разумному экспериментированию Итак, вы хотите запустить A/B-тесты в Go. Хорошая новость: это не ракетостроение. Плохая новость: это также не так просто, как перевернуть выключатель. Но вот в чём дело — как только вы настроите систему, у вас появятся сверхспособности проверять свои идеи реальными данными, а не интуицией. И вот тогда всё становится интересно. В этой статье мы построим полную систему A/B-тестирования с нуля....

Преимущества написания кода, понятного только Вам
Вы когда-нибудь видели кошмар, в котором кто-то читает весь ваш кодовый базис, понимает ваши гениальные алгоритмы лучше, чем вы сами, и затем использует их против вас? Добро пожаловать в мир разработчиков, которые не запутывают свой код. Это всё равно что оставить свой дневник на общественной скамейке с неоновой вывеской «ПРОЧИТАЙ МЕНЯ». Запутывание кода — это не про секретность или паранойю (ну, может быть, немного паранойи, но оправданной). Это законная практика обеспечения безопасности, которая превращает ваш читаемый и поддерживаемый код в нечто, что по-прежнему работает безупречно, но выглядит так, будто было написано инопланетянином в состоянии лихорадки от переизбытка кофеина....

Разработка игр в Unity на C#: от нуля до вашей первой интерактивной игры
Начало работы: почему Unity и C# станут вашими новыми лучшими друзьями Если вы когда-нибудь мечтали создать собственную видеоигру, но думали, что для этого требуется какое-то тайное знание программирования, у меня есть для вас новости — это не так. Добро пожаловать в мир Unity и C#, где ваши самые смелые интерактивные мечты могут стать реальностью, не продавая свою душу демонам сложности. Позвольте мне быть откровенным: разработка игр раньше была пугающей. Но современные инструменты прекрасно демократизировали этот процесс....

Микросервисы: самая распространенная архитектура десятилетия
За последнее десятилетие микросервисы преподносились как универсальное решение всех проблем архитектуры программного обеспечения. Технические конференции переполнены докладами о разбиении монолитов, бесконечно масштабируемых распределённых системах и командах, наконец-то достигших обещанной земли независимых циклов развёртывания. Но вот неудобная правда: мы коллективно перепутали «технически возможно» с «фактически необходимо». Революция микросервисов породила поколение инженеров, убеждённых в том, что монолит по своей сути зол и что разделение кодовой базы на десятки распределённых сервисов — это путь к просветлению....

Построение распределенной системы блокировки в Go с ZooKeeper: от теории к производству
Дилемма блокировки: когда sync.Mutex уже недостаточно Вы знаете это чувство, когда осознаёте, что ваш драгоценный мьютекс в процессе уже не справляется? Да, мы все бывали в такой ситуации. Ваши предположения об однопотоковом выполнении работали нормально, пока ваша система не решила вырасти и стать распределённой. Вдруг у вас появляется несколько сервисов, работающих на разных машинах, все пытаются получить доступ к одному и тому же ресурсу, а ваш sync.Mutex сидит и выглядит растерянным — потому что он блокирует только внутри одного процесса....