Вы храните в PostgreSQL пользователей, заказы и платежи — а потом проект обрастает Redis для очереди, отдельным поисковиком и самодельными блокировками через таблицу locks. Иногда это оправдано. Но часто типовые бэкенд-задачи закрываются прямо в базе: атомарно, транзакционно, с индексами и без лишней сетевой болтовни.
Привет, Хабр! Меня зовут Тимур Исламгулов. Я преподаватель МФТИ и ведущий вебинаров по PostgreSQL. За годы работы я насмотрелся, как разработчики поднимают лишнюю инфраструктуру там, где хватило бы самой базы, — об этом и поговорим.
Показать рабочий SQL →Почти все инструкции в выдаче и любой ответ нейросети показывают один и тот же шаблон, одиночный Product с одной ценой. Для лендинга это работает. Для интернет-магазина, где у куртки пять размеров и три цвета, это большая ошибка. Поисковик видит один вариант из пятнадцати, остальные для него не существуют. А половина карточек ещё и молчит про наличие и вылетает из товарных результатов целиком.
Я разобрал это на живом проекте под 1С-Битрикс с торговыми предложениями. Перевёл карточку с одиночного Product на ProductGroup с вариантами, проставил наличие из остатков и прошёл Rich Results Test без критичных ошибок. По дороге собрал одиннадцать граблей, на которых все теряют время. Карточку рендерил не тот компонент, на который я думал. Кеш маскировал диагностику. Справочник отдавал числовой ID вместо «46». У вариантов отваливалась картинка, и валидатор Google подсвечивал это красным. И так далее, по списку.
Внутри пошаговый план, таблица и готовый код, который можно скопировать одним списком. Писать php самому маркетологу не обязательно. А вот понимать, почему «просто поставьте плагин» часто не срабатывает и какой результат требовать от подрядчика, стоит. Тем более сейчас, когда в ИИ-поиске вы либо тот фрагмент, который система процитировала, либо вас просто нет.
Читать далееНедавно попалось на глаза поворотное устройство для видеокамер PTZ 3050DZ, которое заинтересовало меня невысокой стоимостью и приличным заявленным весом поворачиваемой видеокамеры в 10 килограмм. Подумалось, что оно вполне может подойти для использования с небольшими спутниковыми антеннами. По ходу дела пришлось смастерить для него еще и дистанционное управление с применением модулей LoRa. Жмите кнопку ниже, чтоб узнать подробности.
Читать далееКак добавить человека на фото с помощью нейросети - задача, которая еще пару лет назад требовала навыков продвинутого ретушера, работы с масками, частотным разложением и ручной подгонкой светотени. Сегодня же мы наблюдаем настоящий бум инструментов, которые обещают сделать это за несколько секунд, «понимая» контекст сцены и освещение.
Читать далееdouble быстрый, но хранит десятичные числа как двоичные приближения: 0.1 + 0.2 дает 0.30000000000000004. BigDecimal точен в десятичной арифметике, но дороже по памяти и CPU.
Выбор зависит от задачи: для метрик и ML хватит double с допуском, для налогов и счетов нужен BigDecimal с явным RoundingMode, для низкой latency - fixed-point на long.
Ошибка не в double или BigDecimal, а в выборе без понимания точности, округления и нагрузки. Подробнее - в новом переводе от команды Spring АйО.
Читать далееДоброго дня, Хабр!
Меня зовут Илья, я развиваю внутрикорпоративные IT-сообщества в ОТП Банке с любовью и резоном. А если точнее, то строю целую лаймовую экосистему, где 10 сообществ развиваются своим путем и взаимодействуют друг с другом.
Сегодня поделюсь с вами подходом, который я использую для оценки дизайна во внутрикорпоративном сообществе. Поняв, что мешает людям жить, можно облегчить существование и себе, и коллегам, и компании.
Узнать большеПри разработке печатных плат часто возникает задача закрепить плату в корпусе так, чтобы головки винтов не выступали над поверхностью. Для этого применяется зенковка — коническое углубление вокруг монтажного отверстия. На первый взгляд, операция несложная, но на практике есть нюансы, которые стоит учитывать на этапе проектирования.
В этой статье мы разберём, что такое зенковка, чем она отличается от цековки, какие параметры важны при проектировании и на что обратить внимание, чтобы избежать проблем при производстве.
Читать далееAI-агент за пару минут отрефакторит модуль, перенесёт компонент или причешет кусок кода. Но как только в системе всплывают неявные контракты — интеграции, бизнес-правила, старые костыли и зависимости, о которых модель просто не в курсе, — начинаются проблемы.
В этой статье разбираемся, как настроить тесты, документацию, этапы миграции и границы допустимых компромиссов так, чтобы агент действительно ускорял разработку, а не откатывал рефакторинг на 4000 строк назад.
Выискивать архитектурные несоответствия вручную при проверке чужих проектов неэффективно. Проблема решилась написанием легковесного скрипта автоматизации на Python.Утилита работает на чистом SQL, подключается к живой бд и мгновенно вытаскивает наружу скрытые дефекты проектирования.
Читать далееПредставлен релиз распределенной системы управления исходными текстами Git 2.55. Среди ключевых изменений: включение по умолчанию сборки с Rust, реализация для Linux процесса fsmonitor, новая стратегия переупаковки инкрементального MIDX-индекса, команда git history fixup для исправления коммита, оптимизация генерации битовых карт доступности объектов, поддержка параллельного выполнения хуков, команда git format-rev. Код Git распространяется под лицензией GPLv2+.
( читать дальше... )
Есть у нас классная традиция: каждое лето, начиная с 2018 года, AGIMA собирает IT-сообщество на спортивный фестиваль RUNIT. Сначала с нами бежали 100 айтишников, потом 750, потом 2 тысячи, потом 3,5 тысячи. В 2025 году медали RUNIT получили почти 4,5 тысяч бегунов из IT-сообщества, а еще около 5 тысяч пришли за них поболеть. В этом году фестиваль пройдет 5 июля в Мещерском парке, и, по нашим оценкам, к нему присоединится уже порядка 10 тысяч человек.
Мы всегда поддерживаем RUNIT самыми разными способами, но в этом году сделали нечто особенное — корпоративный AI-хакатон. Этим событием вся AGIMA живет уже месяц: штурмит, творит, разрабатывает. В этой статье расскажем, как мы запустили AI-хакатон и какие промежуточные результаты уже получили.
Читать далееМедийную рекламу до сих пор часто оценивают по количеству продаж или лидов.
На мой взгляд, главная ошибка в том, что, в отличие от performance-каналов, её задача не привести к покупке сразу после клика, а сформировать знание о компании, повысить доверие к бренду и подготовить пользователя к будущему выбору.
Поэтому после запуска медийной кампании руководитель нередко делает вывод: «Лидов больше не стало, значит, реклама не работает».
За последние проекты я пришел к модели, в которой оцениваю медийную рекламу не по одному KPI, а по системе сигналов. Именно их совокупность позволяет понять, начинает ли медийное продвижение влиять на продажи.
5 показателей оценки влияния медийного продвижения на продажи:
Читать про 5 показателей
Привет, Хабр!
Меня зовут Илья, я руководитель группы инженеров по внедрению в компании ЭРЕМЕКС.
Одним из неотъемлемых этапов любого из проектов по тестированию и внедрению наших программных продуктов является этап конвертации данных из исторических систем заказчика. В этой статье я хотел бы описать один из показательных примеров импорта проекта из Altium Designer(R) в Delta Design(ТМ), который мы проводили для нашего заказчика УП «АТОМТЕХ». Порядок и методы импорта в зависимости от используемых версий САПР или подходов к разработке могут отличаться. Тем не менее, представленный в статье вариант вы сможете использовать как список рекомендаций или инструкцию описывающую значительную часть возможных дополнительных операций, которые необходимо будет проделать помимо самой процедуры импорта/экспорта.
Процесс конвертации содержит следующие ключевые моменты:
Читать далееЗдравствуйте! Продолжается серия статей по Direct2D. Теперь мы рассмотрели довольно интересную тему - оптимизацию размеров текстур и тому подобное
Читать далееПожар в Нотр-Дам-де-Пари в 2019 году часто представляют как трагичный случай, разрушивший исторический памятник. Но для проектировщика в этой истории важен ещё один слой: система обнаружила проблему, выдала сообщение с зоной и номером датчика, а человек не смог быстро превратить эти данные в действие. Формально информация была передана. На практике интерфейс не помог понять, где именно возник пожар и что нужно сделать дальше.
Пользовательские ошибки часто воспринимают как проблему плохого обучения, невнимательности или недостаточного опыта: кто-то не туда нажал, не прочитал подсказку, выбрал не тот пункт или пропустил обязательное поле. Но в сложных системах ошибка не всегда возникает только на стороне пользователя. Чаще она появляется на стыке интерфейса, задачи, контекста и ментальной модели человека.
Меня зовут Елизавета Давыдова, я UX-исследователь в экосистеме Лукоморье. Под катом расскажу, как теории человеческой ошибки и методы когнитивной эргономики помогают смотреть на интерфейс через потенциальные сбои в действиях пользователя. На нашем кейсе покажу, как мы применили методологию SHERPA и иерархический анализ задач к интерфейсу таск-трекера: разложили пользовательский сценарий на шаги, классифицировали возможные ошибки и использовали эту модель как основу для проектировочных решений.
Читать далееМы в агентсве «Найт Стрит» уверены, что затраты на удалёнку обычно считают по очевидной экономии. Не нужен большой офис, падают расходы на командировки, нанимать можно по всей стране, а не только в своём городе. С этой стороны всё сходится.
Но у распределённой работы есть вторая колонка расходов, которая почти не попадает в расчёты бухгалтера. Сюда идёт лишний созвон там, где хватило бы сообщения, согласование на два дня вместо десяти минут общения в переговорке, новичок, который вникает на проект месяц, а не положенные две недели. По отдельности это мелочи, но в команде из сотни дорогих специалистов все эти мелочи складываются в миллионы потерянной выручки за год.
Спорить, надо ли срочно возвращать всех в офис, мы не будем. Лучше с холодной головой посчитаем, где именно удалёнка бьёт по ROI и что с этим делать. Цифры дальше модельные: смысл не в том, чтобы поверить моим процентам, а в том, чтобы подставить в формулы свои данные.
Читать далееГод назад, в разгар топливного дефицита, я объехал три заправки подряд — и на всех был «сухой» АИ-95. Так появилась ГдеЗаправка — карта не расположения заправок, а их наличия: где прямо сейчас, по отметкам водителей, есть топливо. Недавно вышло большое обновление — и через сутки про него узнало столько народу, что наши серверы не выдержали. Рассказываю, что мы выкатили.
Карта: gdezapravka.ru
Я попробовал собрать LLM Wiki: workflow, где нейросеть не просто отвечает на вопросы по документам, а постепенно поддерживает базу знаний. Взял Obsidian, Codex и несколько статей с Хабра, сделал ingest, query и lint, а затем посмотрел, чем такой подход отличается от обычного RAG. В статье показываю структуру vault, примеры wiki-слоя, стоимость ingest на Yandex Foundation Models и риски, которые быстро всплывают на практике.
Читать далееСегодня расскажу о том, как мы внедряли процессные метрики в компании: с чего начали, какие сложности поймали по дороге и какие выводы сделали. А главное — покажу, какой эффект это дало для команд, скорости разработки и бизнеса в целом.
Читать далееНедавно я изучал вопрос, насколько распространены полиморфные ссылки в реляционных базах — болезненном для производительности паттерне с дискриминированным внешним ключом, который автоматически генерируют ORM-фреймворки (Rails, Django, Hibernate), CRM-платформы (Salesforce) и 1С. Главная страница типичного интернет-магазина или activity-лента CRM-системы строится именно таким запросом: базовая таблица соединяется LEFT JOIN-ами со всеми возможными подтипами через пару столбцов (type, id).
Та статья отвечала на вопрос «насколько распространён подобный паттерн». Ведь если заниматься улучшением, то неплохо понимать, насколько оно полезно, не так ли? Здесь я пытаюсь дать представление о том, каким образом данный шаблон приводит к регрессии производительности и показать направления улучшения оптимизатора PostgreSQL, позволяющие облегчить ситуацию.
Спойлер: пока немного — но кое-что движется на pgsql-hackers. Три патча, обсуждавшихся в 2024–2026 годах, нацелены на три разных источника регрессии. Ниже о каждом.
Читать далее