Обновить

Моя лента

Тип публикации
Порог рейтинга
Уровень сложности
Предупреждение
Войдите или зарегистрируйтесь, чтобы настроить фильтры
Статья

Перевоз данных по кусочкам: инженерная кухня SPQR

Время на прочтение14 мин
Охват и читатели13K

На связи Денис из команды платформы данных в Yandex Cloud. Мы занимаемся разработкой системы SPQR, которая помогает легко реализовать горизонтальное масштабирование PostgreSQL с помощью шардирования. И это не теоретическая задача на два шарда и десять таблиц. Необходимо сделать систему, которая в пределе хранит петабайты данных и выдерживает сотни тысяч запросов в секунду

В прошлой статье мы показывали SPQR со стороны пользователя: как выбрать ключ шардирования, как разложить таблицы на распределённые (distributed) и справочные (reference), как создать распределения и определить диапазоны ключей, а затем перевезти монолит на несколько шардов. Эта статья будет про инженерный путь: архитектуру, компромиссы и грабли, которые встретились по дороге.

Читать далее
Новость

Приложение MotoSync+ для WiFi-роутеров Motorola перестало работать

Время на прочтение1 мин
Охват и читатели7.1K

Мобильное приложение MotoSync+, необходимое для настройки и устранения неполадок в работе Wi-Fi-роутеров Motorola, внезапно по неизвестным причинам перестало работать.

Читать далее
Статья

ИИ уже пишет 80% кода Anthropic. Самое тревожное спрятано в цифре, которую подают как успех

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели9.1K

Anthropic отчиталась, что больше 80% её кода теперь пишет Claude, — а её же автоматический проверяющий ловит лишь треть прошлых ошибок, то есть две трети пропускает. Если код пишет один ИИ, а проверяет такой же — они слепнут в одних и тех же местах, и второй контур даёт не защиту, а общую слепую зону. Разбираю на инженерном уровне, почему «проверка ИИ» не равна независимой проверке, как измерить слепое пятно и как сюда ложится двухконтурная схема из мира промышленной безопасности (IEC 61508).

Читать далее
Пост

Про LLM и мир костылей

Когда-то от программиста требовалось знать команды процессора. Потом оказалось, что количество нужных комбинаций не такое уж большое, и их можно упаковать в инструкции на ассемблере. Разработчику потребовалось знать только их. Потом стало понятно, что и сами эти инструкции складываются в типовые паттерны: ветвления, циклы, вызовы, и появились языки высокого уровня. Позже типовые задачи управления памятью, потоками и сетью спрятались в рантаймы и фреймворки. Каждый раз предыдущий слой превращался в черный ящик, и программист переставал думать о том, что внутри.

По большому счету, весь прогресс индустрии разработки, да и всей инженерии, и вообще любого производства, укладывается в создание таких черных ящиков, которые прячут сложность, позволяя обменивать технологическую прозрачность на скорость и деньги. Мы находим подходящее решение, наглухо заколачиваем его в ящик, выводим наружу пару ручек для контроля и больше никогда не думаем о том, как оно там внутри крутится.

Появившиеся LLM ничего принципиально в этой логике развития технологий не меняют, а лишь надстраивают новый этаж абстракции. Это мощный механизм быстрого поиска среди существующих в мире решений и последующей инкапсуляции их в новые черные ящики, но не более.

Черные ящики технологий, неважно, созданы они человеком или роботом, никогда не содержат идеальных решений, хотя бы потому, что были собраны в определенных исторических и социальных условиях. Они несут на себе отпечаток целей, ценностей и ограничений, актуальных в момент их создания. Реальность и требования бизнеса ушли вперед, а внутри абстракции навсегда застыл слепок ушедшего момента, который со временем становится неприкасаемым индустриальным стандартом.

Поэтому появление того, что в IT-разработке принято называть «костылями», неизбежно, а архитектура может быть «чистой» только в момент создания и только относительно тех условий, под которые создавалась. Это касается и технологий в узком инженерном смысле, и любых социальных практик или бизнес-процессов в широком. Весь наш человеческий мир состоит из костылей, которые невозможно устранить, а только заменить на другие.

Регулярно пишу в Телеграм-канале Chief Philosophy Officer  и VK группе о философии бизнеса.

Теги:
+4
Комментарии4
Новость

В России снова (но ненадолго) заблокировали Питон

Время на прочтение1 мин
Охват и читатели13K

Блокировка произошла так же, как неделю назад - в понедельник, в 12 часов. С VPN все работает. Блокировка касается и хостингов, и конечных пользователей. В прошлый раз некоторые запросы к Pypi проходили, теперь не проходит ни один. В прошлый понедельник блокировка была прекращена к концу рабочего дня, после чего РКН заявил, что он Pypi не блокирует.

Читать далее
Статья

Российские ADC в 2026: чем уже можно заменить F5, а где миграция все еще рискованна

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели9.7K

Балансировщики нагрузки в России за последние несколько лет превратились из «серой коробочки где‑то в инфраструктуре» в фундаментальный элемент отказоустойчивости инфраструктуры. И если на старте импортозамещения все просто искали чем быстро заменить ушедших F5 и Citrix, то сегодня фокус сместился на производительность, безопасность и то, насколько решение вписывается в существующие практики DevOps/NetOps.

Отечественные вендоры времени зря не теряли. С момента нашего последнего тест-драйва российские ADC сделали большой рывок и по функционалу, и по качеству. При этом знакомые F5 по-прежнему попадают в страну через параллельный импорт и держатся в проде потому, что «оно уже работает, а переделывать всё страшно и дорого».

Под катом разбираем реальную картину рынка балансировщиков на сегодняшний день. Насколько отечественные ADC приблизились к западному энтерпрайзу, в каких сценариях параллельный импорт еще имеет смысл, а где проще один раз мигрировать и забыть. 

Читать далее
Статья

Пособие по COM в Мастере функций nanoCAD BIM Строительство

Время на прочтение8 мин
Охват и читатели7.1K

Знакомим с API для автоматизации в nanoCAD BIM Строительство, фокусируясь на COM-интерфейсе: объясняем, что это такое, какие у него есть объекты, свойства, методы и коллекции, как работать с ними в Мастере функций.

Читать далее
Статья

Пишем Third Person Controller на MonoGame. Часть II

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели7.4K

Это вторая часть серии туториалов, где мы реализуем Third Person Controller на MonoGame. В этой части мы заменим капсулу персонажа на анимированную модель. И прицепим меч на спину.

Читать далее
Статья

Ошибка в коде, на которую приходится не обращать внимание

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели9.6K

В разработке статического анализатора, как и в случае с любым ПО, приходится идти на компромиссы. Иногда мы вынуждены отсекать хорошие срабатывания, чтобы инструмент в целом стал лучше. В этой заметке на реальном примере посмотрим на такой компромисс.

Читать далее
Новость

Людям предстоит решить, давать ли AGI сознание: Хассабис о «втором Рубиконе»

Время на прочтение2 мин
Охват и читатели8.3K

На встрече со студентами Stanford Graduate School of Business глава Google DeepMind и нобелевский лауреат Демис Хассабис получил неожиданный вопрос: чего искусственный интеллект не должен касаться вовсе? В ответ он заговорил о сознании — и назвал его отдельным выбором человечества, "вторым Рубиконом", переходить который никто не обязан.

Читать далее
Новость

Пожарные в США получили систему для бурения аккумуляторов и тушения электромобилей

Время на прочтение1 мин
Охват и читатели8.6K

Пожарная служба штата Пенсильвания первой в США получила специализированное устройство, разработанное для борьбы с возгораниями аккумуляторов электромобилей.

Читать далее
Статья

Кейс: как ИИ-агенты помогли масштабировать персонализацию маркетинговых коммуникаций

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели8.1K

Привет! Это команда Яндекс Практикума PRO. В марте у нас прошёл вебинар с Александром Мальцевым, директором по маркетингу Яндекс Браузера, экспертом курса «Нейросети для маркетинга» и автором телеграм-канала «Мальцев: Карьера с AI». 

Саша рассказал, как его команда с помощью ИИ-агентов персонализировала коммуникации для одной из фич браузера — и выросла на 20% по всем рекламным кампаниям. Над кейсом работали всего два человека: перфоманс- и коммуникационный маркетологи. Рассказываем, как им это удалось, и делимся примерами промптов и фреймворков. 

Читать далее
Статья

Сетевой слой iOS‑приложения

Уровень сложностиСредний
Время на прочтение25 мин
Охват и читатели6.8K

Эта статья — не ревью чужого кода и не пересказ абстрактных паттернов. Это практическое описание того, как я подхожу к проектированию сетевого слоя, какие решения считаю удачными, какие — опасными, и почему. Основа текста — реальный подход к построению сети в production iOS-приложении: с явной EndpointPolicyRequestContext, interceptor-pipeline, безопасным логированием, отдельной обработкой refresh flow, snapshot-first чтением и выделенным transport для долгих upload-сценариев.

Мой главный тезис простой: сетевой слой — это не “место, где отправляются запросы”, а инфраструктура приложенияURLRequest и URLSessionConfiguration в Foundation уже работают как объекты, которые несут не только URL, но и правила поведения запроса; Swift Concurrency даёт структурированную асинхронность и безопасную модель доступа к разделяемому состоянию через actors. На практике это значит, что retry, auth, timeout, cache, logging и metrics лучше проектировать как часть контракта, а не как случайный набор if внутри одного большого send()

Если сжать статью до одного абзаца, получится так: я начинаю не с URLSession, а с вопросов кто имеет право знать о transport, где живёт policy, кто отвечает за retry, как не утечь токенами в логах, где source of truth для UI и как выяснить, что именно сломалось в production. Всё остальное — код вокруг этих решений.

Читать далее

Ближайшие события

Статья

Cloud4Y строит ЦОДы в МО. Часть 16

Время на прочтение6 мин
Охват и читатели6.8K

2,5 км оптики — в земле, генплан на 24 МВт — утверждён. Май в Марфино был про связь и масштаб: показываем, как преобразилась площадка.

Читать далее
Новость

Порядок в версиях через libs.versions.toml и Bill of Materials

Время на прочтение1 мин
Охват и читатели5.9K

Продолжаем цикл вебинаров, посвященных современному Gradle для Java-разработчика.

Когда версии разбросаны по модулям, один апгрейд библиотеки превращается в ручную правку в десяти местах с риском рассинхрона. Решаем эту проблему через gradle/libs.versions.toml: переносим все версии в одно место и получаем типобезопасные аксессоры libs.* с автодополнением в IDE. Разбираем BOM как способ зафиксировать согласованные версии целого набора библиотек одним алиасом.

Читать далее
Статья

SSE в production: почему нативного EventSource недостаточно и что с этим делать

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели6.5K

Разбираю, почему нативного EventSource часто недостаточно для production SSE: авторизация через headers, контролируемый reconnect, backoff, race conditions, stale-stream watchdog и синхронизация нескольких вкладок через Web Locks + BroadcastChannel.

На базе этих проблем я вынес real-time слой из AI SaaS-продукта в open-source библиотеку sse-runtime и заменил ей самописную инфраструктуру: −3 455 строк кода в production PR, один useSSE-хук вместо ручного reconnect, leader election и отладочного boilerplate.

Почему EventSource ломается в production
Статья

Лёд и гравитация. Технологии длительного хранения энергии

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели15K

«Солнечный бум» последнего десятилетия слабо ощущается в РФ, но хорошо заметен в США, Европе и Китае, где строят гигантские солнечные фермы на тысячи гектаров. На потребительском рынке тоже ажиотаж, ведь в солнечных широтах можно полностью обеспечивать дом электроэнергией, если покрыть крышу солнечными панелями. И даже на зарядку автомобиля хватит, если крыша большая.

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

Обычные литий-ионные аккумуляторы — слишком дорогое решение, хотя цены на них упали в десять раз с 2010 года. Но всё равно есть варианты дешевле и эффективнее, включая солевой расплав, сжатый воздух, гравитацию и лёд.

Читать далее
Пост

Пока все спорят, Redux или Zustand, я зайду с другой стороны

Споры про архитектуру в реакте не утихают никогда: где-то прямо сейчас двое доказывают друг другу, выносить логику в хук или нет, и оба уже на эмоциях. Я решила влезть в этот холивар, но с неожиданного угла.

Написала статью «Хороший код, но плохая архитектура» — про то, как мы все пишем аккуратный, типизированный, красивый код и тихо приходим к файлам, которые страшно даже открывать.

Главный (душный) тезис: самая опасная архитектурная ошибка — это хорошее решение, принятое слишком рано. А ещё там есть госпожа Форма, которая знает слишком много, «умные хуки», незаметно ставшие мини-приложениями, и мемоизация как религия.

Без морали «как надо жить» — скорее честный разговор о том, как мы все так делаем и даже не замечаем.

Заходите читать и спорить в комментариях →
https://habr.com/ru/companies/alfa/articles/1044046/

Теги:
+3
Комментарии0
Статья

Недельный геймдев: #281 — 7 июня, 2026

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели7.5K

Из новостей: продажи Mina the Hollower превысили 300к копий, продажи 007 First Light перешли за 3 миллиона, Valve обновила дизайн главной страницы Steam, в разработке находится ремейк Baldur’s Gate II.

Из интересностей: работа со звуком в инди-играх, кто создал новых героев, 64 прямоугольника хватит всем, искусство создания дорог в играх, почему игровой GUI пишут заново.

Читать далее
Статья

Вебхуки оплаты ЮKassa, IP-check, event log, idempotency и аварийный capture

Время на прочтение11 мин
Охват и читатели7.3K

Платежный код обычно выглядит ровным ровно до первого реального сбоя. Пока платежи идут по ожидаемому сценарию, кажется, что достаточно создать оплату, дождаться вебхука и обновить локальный статус. Но как только вебхук приходит повторно, приходит позже нужного, прилетает от не того IP, или удаленный платеж уже живет в одном статусе, а локальная база в другом, становится ясно, что платежный контур без защит почти всегда врет.

Проблема в том, что вебхук нельзя считать истиной без проверки, нельзя применять без журнала событий, нельзя подтверждать capture случайным ключом, и нельзя оставлять систему без аварийного пути, если автоматический сценарий где-то разошелся.

В одном из проектов этот узел был собран так, первый платеж создается с capture=False, входящий webhook проверяется по IP, каждое событие сначала пишется в журнал, потом маршрутизируется в обработчик, capture подтверждается стабильным idempotence key, успешный платеж валидируется по сумме, валюте и metadata, а на случай расхождения остается отдельный ручной confirm, который умеет дочитать фактический статус из ЮKassa и синхронизировать локальную базу.

То есть задача тут не просто принять webhook, а построить платежный контур, которому можно верить.

Читать далее