Большинство статей про Rust заканчиваются на borrow checker и lifetimes, как будто внутри компилятора живёт только проверяльщик заимствований и злой шрифтовый дизайнер для сообщений об ошибках. На деле там целый зоопарк механизмов, о которых редко пишут даже на конференциях. Я собрал несколько по настоящему любопытных вещей, которые меняют представление о том, как устроен язык изнутри, и подкрепил каждый сюжет кодом, который можно скопировать и проверить самому.
Рубрика «backend»
Как Rust обманывает процессор: тайная жизнь niche-оптимизации, drop flags и MIR
2026-05-04 в 18:46, admin, рубрики: backend, Rust, seniorShine — C++ Фреймворк для десктоп приложений с использованием React
2026-05-04 в 12:12, admin, рубрики: backend, c++, React, Shine Framework, tauriДоброго времени суток, уважаемые пользователи Хабра.
Я не то что бы профессиональный разработчик на C++, в основном я занимаюсь геймдевом на UE5 (по крайней мере последнее время). Но последнее время достаточно часто я балуюсь разработкой десктоп приложений под Windows. Для красоты и простоты я задумывался об использовании именно react. Но из выбора что я увидел было 2 варианта:
-
Tauri - Фреймворк под Rust с отрисовкой фронтенда сделанном на React и т.п.
-
Electron - фреймворк для разработки кроссплатформенных настольных приложений с использованием веб-технологий (скопировал описание с гугла)
GraphCompose: как я приволок ECS из геймдева и снапшот-тесты из фронта в PDF-генерацию на Java
2026-05-03 в 8:15, admin, рубрики: backend, document generation, graphcompose, java, layout engine, open source, pagination, PDF, PDFBox, visual regressionС чего всё началось: проблема, которая бесила
В мире Java для генерации PDF исторически есть три лагеря:
-
Низкоуровневые рисовалки — iText, PDFBox. Быстро, мощно, но ты буквально пишешь на бумаге пиксели координатами. Любой инвойс превращается в 200 строк
contentStream.beginText() / setFont() / newLineAtOffset(...). А потом приходит дизайнер и говорит: «отступ должен быть 14, а не 12». -
Шаблонные движки — JasperReports, OpenPDF. Удобно для отчётов, но XML-шаблон — это отдельный язык, отдельный инструментарий, отдельная боль на ревью. Изменения логики растекаются между Java-кодом, JRXML и DTO.
-
HTML→PDFЧитать полностью »
Clean Architecture + DDD в Go: как не превратить проект в 200 файлов ни о чём
2026-04-18 в 16:58, admin, рубрики: backend, clean architecture, DDD, Go, архитектура, паттерны проектированияНемного цифр, прежде чем начать
Прежде чем погружаться в архитектуру, давайте посмотрим на контекст, в котором всё это происходит.
По данным исследования McKinsey 2022 года, технический долг составляет до 40% всего технологического портфеля компаний. И это не просто цифра в отчёте. Согласно опросу 2024 года среди технических руководителей, у более чем 50% компаний технический долг занимает свыше четверти всего IT-бюджета, блокируя внедрение новых функций. (Источник: vFunction, 2025)
Guardrails для LLM на Java: как приручить промпт‑инъекции и токсичные ответы
2026-04-15 в 11:43, admin, рубрики: AI Security, backend, guardrails, jailbreak, java, langchain4j, llm, prompt injection, spring ai, безопасность llmSystem prompt — это просьба. Guardrails — это принуждение.
1. Введение
Когда я впервые внедрял LLM в production-сервис, схема безопасности выглядела примерно так: написать хороший system prompt, поставить галочку «мы всё предусмотрели» и жить дальше. Жизнь не дала долго наслаждаться этим спокойствием — первый же тест показал, что пользователи довольно быстро находят способы заставить модель «забыть» всё, что мы написали в системном промпте.
Проблема фундаментальная: system prompt — это инструкция, которую LLM старается выполнить, но не обязанЧитать полностью »
Dart на бекенде: почему его бросила бывшая
2026-04-13 в 10:16, admin, рубрики: backend, benchmark, claude code, cloud native, dart, Go, kubernetes, node.js, performance, архитектураДисклеймер: самая большая ошибка в этой истории даже не выбор Dart, порядок действий. Вместо того чтобы в первый же день сделать честный raw benchmark на нашем production-like сценарии, я поверил в AOT, в статическую типизацию и в обещания ready for cloud - и сразу начал переносить сервис. Поэтому этот текст не только про Dart, но и про очень дорогой инженерный урок: сначала валидируй runtime-гипотезу, потом строй архитектуру вокруг неё. Чтобы не превращать текст в войну микрооптимизаций — все raw results, k8s manifests, CPU profiles, Dockerfiles и исходники рантаймов вынесены в репозиторийЧитать полностью »
Куда идет программирование на самом деле?
2026-04-10 в 11:16, admin, рубрики: AI, api, architecture, backend, c++, DDD, Go, Rust, tdd
Монолит с отчётами на 30 секунд: как я переписал архитектуру и что из этого вышло
2026-04-05 в 13:45, admin, рубрики: backend, DDD, django, explain analyze, highload, N+1, postgresql, python, архитектура, оптимизацияПришёл в проект, там легаси погоняет легаси. Спагетти такие что уже в рот лезут. Отчёты по филиалам открывались 30 секунд. Команда реально боялась нажать кнопку в рабочее время, а вдруг база ляжет.
Это была система управления розничной сетью: несколько филиалов, сотни тысяч записей о заказах, ежедневные отчёты по выручке и остаткам. На бумаге ничего страшного. На практике монолит на Django где бизнес-логика размазана по контроллерам так, что поменяй что-то одно и сломается три другого.
Первое что я сделал: открыл EXPLAIN ANALYZE.
Что показал EXPLAIN ANALYZE
Запрос для отчёта по филиалу выглядел примерно так:
Читать полностью »
Почему одна запись может изменить KPI: разложение агрегированных метрик на вклад отдельных событий
2026-04-04 в 6:16, admin, рубрики: backend, explainability, explainable KPI, KPI, remove-one analysis, sensitivity analysis, агрегированные метрики, вклад записиМеня зовут Иван Васильев, я ведущий аналитик в Ви.Tech, IT-дочке ВсеИнструменты.ру. Хочу показать, как из на первый взгляд простой формулы KPI выросла инженерная задача: нам нужно было не просто посчитать интегральный показатель эффективности поставщика, а объяснить, какая именно закупка его ухудшила и почему. В статье разберу, почему для агрегированных метрик не работает наивный подход, как мы пришли к remove-one analysis и где пришлось отдельно фиксировать логику расчета, чтобы результат вообще можно было интерпретировать.
Параллелизм с общим состоянием в Rust
2026-04-02 в 15:15, admin, рубрики: backend, backend-программирование, Rust, Параллелизм, параллельное программирование, параллельные вычисленияПривет! Сегодня я бы хотел обратить ваше внимание на важную тему работы с общим состоянием при параллельном выполнении кода на Rust. В этой статье я не буду распыляться на базовые определения параллельности, потоков, так как если вы уже оказались здесь, значит у вас есть хотя бы примерное понимание этого.
Почему нет?
Прежде чем раскрыть саму тему статьи, необходимо указать явные причины, почему не рекомендуется использовать одну и ту же область памяти между потоками:
