Обновить

Разработка

Сначала показывать
Порог рейтинга
Уровень сложности

Postgres 18 async IO – шаг к «взрослым» нагрузкам?

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

Давайте честно – пока что Postgres редко используется для действительно больших и нагруженных баз. Этому множество причин, но главная формулируется просто: «не тянет».

У каждого есть своя граница, где Postgres ещё применим, а дальше —уже нет. Обычно это где-то между одним и пятью терабайтами, дальше жить с этим «больно».

База просто не может обработать большой объем данных с той скоростью, которую способны выдать диски.

И вот — Postgres 18, впервые за долгое время, предлагает не косметическую, а фундаментальную новинку. То, что в Oracle есть уже 20+ лет — асинхронный ввод-вывод (аsync IO).

Попробуем посмотреть async IO и ответить на вопрос - стал ли Postgres ближе к «взрослым» нагрузкам?

Читать далее

Представляем XBRL-CSV — машиночитаемую отчетность в формате для людей

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров899

Примечание: Статья посвящена формату XBRL-CSV2 (тэг "@context":"www.cbr.ru/xbrl_csv2").

Авторство формата принадлежит Банку России.
Автор статьи — архитектор, принимавший участие в разработке формата в качестве технического специалиста.

Введение.

Банк России использует стандарт XBRL для сбора отчетности от некредитных финансовых организаций. Несмотря на всю продуманность XBRL, при формировании и обработке отчетности возникает проблема, связанная с реестровыми формами.

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

Решение этой проблемы — создание производного от XBRL-XML формата: XBRL-CSV.

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

Остальные колонки — это данные, которые определяют три аспекта показателя:

Читать далее

Балансировка и проксирование L4-трафика в Angie

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

Возможности Angie в качестве веб‑сервера и обратного прокси довольно известны. Но кроме работы на уровне L7 (HTTP), мы можем применять его на L4 (TCP и UDP) в качестве балансировщика и прокси‑сервера. Именно об этой функциональности мы и поговорим в сегодняшней статье.

Читать далее

(Не)колхозная система для кнопочных игр

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров3.7K

Попробовал сделать свою брейн-систему. Вроде даже получилось. А потом сделал так, что любой может это повторить.

Читать далее

Почему случается оверинжиниринг

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров14K

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

В качестве противоположного примера возьмём Levels.fyi. Сегодня этот сайт помогает миллионам разработчиков сравнивать зарплаты и карьерные перспективы, но в начале его «бэкендом» были просто Google Формы, сохраняемые в Google Таблицы. Никаких микросервисов, никакого Kubernetes, никакой шины событий. Самые простые инструменты, которые можно придумать. Такая легковесная система обеспечила владельцам сервиса скорость её развития. Они проверили жизнеспособность идеи, расширили аудиторию и начали вкладываться в более сложные системы только тогда, когда стало ясно, что продукт рабочий. Иными словами, простота не стала для них препятствием, а превратилась в залог успеха. Стоит также помнить о том, что некоторые из самых сложных инфраструктур изначально были очень простыми: например, Airbnb, Facebook*, Reddit. Прежде, чем завоевать всемирную популярность, они были фрагментарными монолитами.

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

Читать далее

Как мы используем RFM-сегментацию, чтобы улучшать CRM-коммуникации в Авито

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров13K

Привет! Я Рамиль Сакаев — аналитик в команде Авито Авто. В статье рассказываю, как адаптированная RFM-методология помогла нам выявить недоработанные зоны CRM-коммуникаций и создать бенчмарк для маркетологов.

Читать далее

Я выполнил реверс-инжиниринг веб-обфускации Amazon, потому что приложением Kindle пользоваться невозможно

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

TL;DR

• Я впервые купил на Amazon электронную книгу

• Android-приложение Kindle самой компании Amazon было очень забагованным и часто вылетало

• Попробовал скачать мою книгу, чтобы читать её в реально работающем приложении для чтения

• Осознал, что Amazon больше не позволяет этого делать

• Решил назло выполнить реверс-инжиниринг её системы обфускации

• Обнаружил множество слоёв защиты, в том числе рандомизированные алфавиты

• Победил их все при помощи колдунства с сопоставлением шрифтов

Читать далее

Полное руководство по HTTP-кэшированию. Часть 1

Уровень сложностиСредний
Время на прочтение19 мин
Количество просмотров5.5K

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

В основе кэширования лежит сокращение лишней работы. Каждый раз, когда браузер, CDN или прокси обращается к серверу за ресурсом, который не изменился, впустую тратятся время и трафик. Когда сервер заново формирует или повторно отдает идентичный контент, это лишь добавляет нагрузки и увеличивает затраты. А при пиковом трафике — например, в "черную пятницу", во время вирусной публикации или DDoS-атаки — такие ошибки стремительно накапливаются и приводят к сбоям всей системы.

Читать далее

О миграции с Angular на React в деталях

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

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

Меня зовут Александр Марченко. Я руководитель команды Frontend-разработки в ОК. В этой статье я расскажу о особенностях и способах миграции Angular приложения на React, а также поделюсь своим опытом.

Читать далее

Одна строка — тысячи горутин: как мы поймали утечку памяти в сервисе на Go

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

В этом техническом разборе рассмотрим, как инженеры Harness обнаружили и исправили критическую утечку памяти в Go: переназначение переменной контекста в циклах воркеров порождало невидимые цепочки, мешавшие сборщику мусора освобождать память в тысячах горутин, из-за чего их сервис-делегат CI/CD в итоге потреблял гигабайты памяти.

Читать разбор

Что потеряли вместе с Pascal: типобезопасность, которую мы недооценили

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров18K

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

Читать далее

Мы открыли для всех доступ к Kandinsky Video

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров2.4K

Ура! Состоялся публичный релиз разработанной Сбером модели Kandinsky Video в Telegram-боте GigaChat и Kandinsky. Модель умеет создавать видео по тексту и оживлять изображения.

Узнать, как генерировать

MES без розовых очков. Разбираем внедрение системы на практике, подводные камни и факторы успеха

Время на прочтение7 мин
Количество просмотров5.1K

Аббревиатуры MES, WMS, ERP и им подобные давно стали синонимами цифровизации. О них пишут, их предлагают, их «внедряют». Но за красивыми терминами часто теряется суть — какую конкретно задачу решают эти системы? 

В этом материале мы поговорим о MES (Manufacturing Execution System) — системе управления производственными процессами. Благодаря маркетинговым обещаниям, в массовом представлении MES часто выглядит как «серебряная пуля». Стоит ее внедрить — и брак волшебным образом исчезнет, себестоимость устремится к нулю, а производительность взлетит до небес. Звучит заманчиво, но насколько эта картина соответствует реальности?

Меня зовут Иван Балашов, я руковожу направлением цифрового производства в К2Тех. Мы занимаемся внедрением именно таких решений на промышленных предприятиях. В основе этой статьи — живой кейс, и я предлагаю посмотреть на MES без розовых очков и разобрать на примере, как MES повышает эффективность бизнеса. 

Читать далее

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

Кардинально меняем звучание гитарного звукоснимателя

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

Привет, Хабр! Может ли двухкатушечный датчик (хамбакер) звучать как однокатушечный (сингл) и наоборот? Получится ли заставить бриджевый звукосниматель, расположенный у нижнего порожка электрогитары, звучать подобно нековому, находящемуся ближе к грифу?

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

Читать далее

Гид по Cloudberry ч.2: advanced-возможности, дорожная карта и планы развития

Уровень сложностиСложный
Время на прочтение7 мин
Количество просмотров551

В прошлый раз, в первой части нашего гида по Apache Cloudberry™, мы поговорили об истории проекта, его архитектуре, ядре СУБД и функциях платформы. 

Но помимо ядра СУБД, мы также хотим использовать data‑lakehouse‑запросы. В Data Lakehouse есть некоторые проблемы: мы не можем получать данные оттуда напрямую. В Cloudberry разработана технология, с помощью которой можно это делать, так что поговорим об этом подробнее. А также рассмотрим ещё несколько интересных возможностей и расскажем о планах проекта.

Читать далее

Рекомендации по обеспечению безопасности системного окружения веб-приложения

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

Всем привет! Опыт защиты высоконагруженных сервисов, в том числе на базе 
1С-Битрикс показывает, насколько критичным с точки зрения обеспечения безопасности веб-приложения является настройка его системного окружения. Защита такого приложения - это не только включение подсистем защиты и своевременные обновления, а комплексный подход, охватывающий все слои ИТ-инфраструктуры. Недостаток в любой ее точке может свести на нет все усилия разработчиков по написанию безопасного кода и привести к серьезным последствиям: от утечки конфиденциальных данных до деградации связанных бизнес-процессов с финансовыми и репутационными потерями.

Данный чек-лист будет полезен при формировании внутренних правил безопасного конфигурирования компонентов системного окружения классических веб-приложений, включая продукты 1С-Битрикс. Очевидно, что все предлагаемые рекомендации, реализованные в конкретных настройках, должны быть гармонизированы с эксплуатационной документацией вендоров и протестированы в вашем ИТ-ландшафте.

Читать далее

Практическое тестирование приложений на python

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров4.1K

Всем привет! Эта статья — продолжение материала про универсальный прототип бэкенд-приложений. В ней я поделюсь практическим опытом написания тестов и покажу, как выбранная архитектура упрощает этот процесс.

Ну что ж, приступим

EvoPress: новый подход к оптимизации и сжатию LLM от исследователей Яндекса

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров3.3K

Всем привет! Меня зовут Денис Кузнеделев, я работаю в команде Yandex Research. Моё основное направление деятельности на данный момент — задача сжатия и ускорения больших языковых и картиночных моделей. Затраты на обучение, инференс и деплой LLM стали одной из ключевых инфраструктурных проблем индустрии: дефицит вычислительных ресурсов, нехватка видеопамяти и высокие требования языковых моделей к вычислительным ресурсам препятствуют масштабированию решений. 

Сегодня я расскажу о методе неравномерного сжатия нейронных сетей EvoPress, который мы предложили совместно с коллегами из ETH Zurich и представили в июле этого года на одной из ведущих конференций по машинному обучению — ICML.

Читать далее

Недельный геймдев: #248 — 19 октября, 2025

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров1.3K

Из новостей: продажи No, I’m not a Human превысили 500к копий, BALL x PIT про шары продался тиражом 100к копий за сутки, умер дизайнер Томонобу Итагаки, Heroes of Might & Magic: Olden Era добавили в вишлист более миллиона человек.

Из интересностей: Furnish Master EA 100к продаж, про важность обсуждений, Александр Тужик — хочу и буду: пишу движок для игры.

Читать далее

Сокращаем расходы на Kubernetes: практические подходы для pet-проектов и продакшена

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров6.3K

Привет! Я — Дима, менеджер продукта Managed Kubernetes в Selectel. Каждый день я вижу, как компании разных масштабов — от небольших стартапов до крупных enterprise — переносят свои сервисы в Kubernetes. Это логично: Kubernetes стал стандартом де-факто для оркестрации контейнеров, и с ним проще масштабировать и управлять приложениями.

Но как только кластер растет, почти всегда возникает вопрос: как оптимизировать расходы? Ведь большая часть стоимости — это воркер-ноды, на которых крутятся поды. Значит, первое, на что стоит обратить внимание, — выбор подходящих типов виртуальных машин или серверов. Под катом разберем варианты для разных сценариев: от pet-проектов до продакшен-сервисов.

Под кат →