Обновить

Бэкенд

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

Слоистая архитектура для людей

Уровень сложностиСложный
Время на прочтение18 мин
Охват и читатели12K

Для кого статья: для техлидов и системных аналитиков (SA), архитекторов ПО.
О чём статья: об использовании некоторых удобных, современных подходов к проектированию ПО на стеке Java-Spring в enterprise в условиях большого количества команд и большой неопределенности. 
Об авторе: лид стрима в облачном провайдере, в 2024-2025 гг. с коллегами разрабатывавший подходы к архитектуре микросервисов.

В условиях современной разработки, когда компании растут, а команды распределены по офисам и странам, классические подходы к проектированию часто становятся узким местом. Хаос в интеграциях, бесконечные согласования форматов данных и конфликты из-за изменений в API — это знакомые боли для многих архитекторов и тимлидов. Если вы тоже сталкивались с трудностями и конфликтами при разработке платформ с множеством микросервисов или хотите разрабатывать и не хотите сталкиваться – эта статья будет наверняка интересна.

Читать далее

Как векторные базы данных налаживают взаимопонимание между человечеством и роботами

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

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

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

О ВБД простыми словами →

P =? NP: самая дорогая задача в мире, которая может перевернуть всё

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

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

Именно в этом ключике лежит суть проблемы P =? NP — величайшей нерешённой задачи теоретической информатики. За её решение Институт Клэя назначил премию в $1 000 000. Но дело не в деньгах. Дело в фундаменте нашего цифрового мира. Если эта задача будет решена, последствия будут сопоставимы с научной революцией или даже сильнее.

Читать далее

Долгожданный оператор _Countof

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

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

Читать далее

pure-md5: Современная реализация MD5 для JavaScript с поддержкой TypeScript, стримов и нулевыми зависимостями

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

В 2026 году может показаться странным писать новую библиотеку для MD5. Алгоритм считается устаревшим, браузеры постепенно убирают его из Web Crypto API, а в документации Node.js есть предупреждения о его использовании.
Но реальность сложнее. MD5 всё ещё жив в:

Контрольных суммах файлов (многие репозитории до сих пор публикуют MD5-хеши)

Системах кэширования (ключи на основе контента)

Легаси-протоколах (некоторые API требуют MD5-подписи)

Внутренних идентификаторах (где безопасность не важна)

Проблема в том, что существующие реализации либо устарели, либо не имеют TypeScript, либо не работают универсально (Node.js + браузер). Я решил это исправить и представил pure-md5 — современную, типизированную и адаптивную библиотеку.
В этой статье расскажу о технических решениях, архитектуре и покажу, почему это может быть полезно в ваших проектах.

Читать далее

Инструменты навигации в GIGA IDE

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

Добрый день! Меня зовут Андрей Слекеничс, я PO GigaIDE, и сегодня мы продолжаем наш экскурс по функциональности GigaIDE.

Первая и предыдущая статьи цикла доступны здесь и здесь. Сегодняшний материал — последний, затрагивающий функциональность GigaIDE Community, и первый, в котором мы переходим к возможностям уже только GigaIDE PRO.

Читать далее

Маленький bool, сулящий большие беды

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

Признаюсь, я питаю слабость к классическому DOOM. Игре уже 31 год, но благодаря открытому исходному коду она живёт на всём — от смартфонов до осциллографов. В силу разных обстоятельств я стал сопровождать несколько пакетов, связанных с DOOM, в Fedora Linux.

Перед каждым релизом Fedora проводит массовую пересборку всех пакетов — и в этот раз chocolate-doom её не пережил. Виновник этому — маленький bool.

Читать далее

Как мы оптимизировали логику Битрикс на Python/Flask и уложили ее в 1 МБ

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

Привет, Хабр! Принес вам кейс о том, как мы с командой оптимизировали работу одного небезызвестного портала с помощью Python/Flask.

Напомню: я по-прежнему Алексей Постригайло, более 20 лет я занимаюсь системной интеграцией и управлением проектами, сейчас — старший партнер ИТ-интегратора ЭНСАЙН и рассказываю о том, что было «под капотом» в проектах нашей команды.

Поехали!

Читать далее

Разбираем фичи по кусочкам: атомарные коммиты как внутренняя дисциплина

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

Привет! Меня зовут Дима, я руковожу группой прикладной разработки в Naumen. Много лет работаю с командами, которые делают не одноразовые фичи, а долгоживущие системы — те, что развиваются годами, переживают смену людей, требований и контекста.

В этой статье поговорим о декомпозиции: зачем она на самом деле нужна и какую неожиданную роль в этом играют атомарные коммиты.

Читать далее

FreeAIr: доступ к локальной или корпоративной LLM из Visual Studio 2022/2026

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

FreeAIr - это расширение (vsix) для Visual Studio 2022/2026, которое позволяет использовать локальную или корпоративную LLM внутри Visual Studio для помощи программисту. Это не Copilot, а независимая разработка авторов из РФ. FreeAIr не содержит spyware, никуда не отправляет ни код, ни переписку, ни телеметрию (ничего не отправляет), и поэтому может использоваться в компаниях, где использование внешних LLM запрещено политикой конфиденциальности.

Читать далее

Как РСХБ Abbyy импортозамещал

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

Привет, Хабр! Меня зовут Михаил Пушкарёв, в команде РСХБ.Цифра я отвечаю за развитие систем класса ECM и OCR. В РСХБ технологии OCR применяются начиная с 2010 года и развиваются до сих пор. Технология направлена, в первую очередь, на ускорение и обслуживание клиентов банка. Сформированная конструкция контуров и наличие локальных установок делали процесс развития и обновления системы не просто сложным, а очень сложным. Помимо этого, на горизонте всё более явно начинал «маячить» процесс переходов на отечественные ОС, что привело бы к невозможности работы со всеми программными комплексами из-за того, что толстые клиенты предусматривали работу только с ОС Windows.

Конечно же, непосредственный уход с рынка Abbyy накладывал свой отпечаток на данные процесс. К моменту ухода Abbyy мы уже сформировали собственную компетенцию, которая позволяла нам в полной мере заниматься развитием проекта (добавлять новые шаблоны) или решать какие-либо проблемы. Но так как ПО не является свободно распространяемым, по сути мы лишились обновлений комплекса.

Все факторы в совокупности, а также желание навести порядок в архитектуре решений и избавиться нескольких разных решений с разными принципами работы, подвели нас к тому, что проект импортозамещения стал актуальным и нужным для реализации. Первый вопрос, который волновал всех: «А на что собственно меняем?!».

Читать далее

ООП в Python за 1 статью: от «Hello World» до архитектуры

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

Вы освоили переменные, разобрались с циклами и научились писать функции. Ваши скрипты бодро парсят сайты, перекладывают файлы или считают статистику. Жизнь кажется прекрасной, а Python — лучшим языком в мире.

Но однажды проект начинает расти.

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

Читать далее

EVPN-connector от VK Cloud: знакомим с первым Open-Source-компонентом нашего SDN Sprut

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

В современных облаках есть много задач, связанных с проблемами производительности и масштабируемости виртуальных сетей. Кроме этого, есть ряд задач, требующих интеграции с аппаратными сетевыми устройствами. Чтобы преодолеть этот барьер, в собственном SDN (Software Defined Network, программно-определяемая сеть) мы реализовали поддержку технологии EVPN. За это отвечает специальный компонент — EVPN-connector. Он использует OpenVSwitch для передачи данных и GoBGP для передачи информации и позволяет строить распределенные сети с поддержкой L2- и L3-режимов, а также обеспечивает интеграцию с аппаратными устройствами. В этой статье мы, команда IaaS Network в VK Cloud, расскажем о EVPN-connector в деталях.

Читать далее

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

20 тейков по коммерческой разработке за 20+ лет работы разработчиком

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

Всем привет, решил поделиться рандомными мыслями. Более интересно начинающим разработчикам, но думаю все могут что-нибудь добавить или обсудить. Погнали!

#1
Разработка - это про построение систем, а не чисто про написание кода. И да, это сложно. Заниматься этим можно, только если это действительно тебе интересно. Будешь себя насиловать, выгоришь или станешь просто грустным.

Читать далее

Как Майкл Абраш удвоил скорость Quake

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

Вместе с релизом в 1999 году исходного кода Quake был выпущен файл readme.txt, написанный Джоном Кармаком. Особый интерес в нём вызвало одно предложение:

Также для сборки файлов на языке ассемблера требуется Masm. Можно изменить #define и выполнять сборку только с кодом на C, но версии с программным рендерингом при этом потеряют почти половину скорости.

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

Читать далее

Автоматическое создание и настройка глобального роутера в облаке через Terraform Provider

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

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

Привет, Хабр! Меня зовут Сергей, я разработчик облачной платформы в Selectel. В этой статье я расскажу, как с помощью Terraform Provider автоматизировать настройку глобального роутера. DevOps-инженеры и все, кто знаком с Terraform, статья для вас.

Читать далее

Как устроен роутинг в Waypoint: три уровня матчинга, zero-Reflection dispatch и кеш через OPcache shared memory

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

В комментариях к моей предыдущей статье про Waypoint прозвучало: «это стандартный алгоритм, ничего уникального». Trie — стандартный. Хеш-таблица — стандартная. Всё так. Но покажите мне PHP-роутер, который каскадирует O(1) хеш-таблицу, посегментный prefix-trie и prefix-grouped fallback в три уровня матчинга, генерирует именованный PHP-класс с immutable const для OPcache shared memory, а при диспатче не делает ни одного вызова Reflection. В этой статье — не маркетинг, а код и алгоритмы: разбираю каждое архитектурное решение и сравниваю с FastRoute и Symfony Routing.

Читать далее

События плагинов и порядок их срабатывания при работе с пользовательскими полями Joomla и использовании FieldsHelper

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

В процессе работы с Joomla бывает необходимо работать с пользовательским интерфейсом более тонко, чем обычно. Все формы Joomla состоят из стандартных полей, содержанием, стилем отображения, состоянием (включено/выключено, доступно для редактирования или нет и т.д.) можно управлять с помощью плагинов. Да и для нестандартных проектов хорошей практикой является создание одного системного или нескольких плагинов групп "под проект", в которых хранится весь "нестандарт".

В этой статье описаны все триггеры (события), которые вызываются через Event Dispatcher из administrator/components/com_fields/src/Helper/FieldsHelper.php, с привязкой к жизненному циклу (порядку этапов работы запроса), аргументам, изменяемым данным и дальнейшему распространению по Joomla. Это поможет вам работать с Joomla свободнее и не опасаясь при этом потерять изменения при очередном обновлении движка.

Кастомизировать поля ядра Joomla

PostgreSQL для финансов 2.0: Как мы заменили SWIFT на gRPC и внедрили WASM-политики

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

В предыдущих сериях (От стартапа к протоколуПочему финтеху нужен капитальный ремонтПочему мы терпим факс в эпоху ИИ) мы обсуждали, почему современный финтех - это "Ferrari на грунтовке", и зачем мы начали писать с нуля свой леджер Qazna (на Rust) и ERP-систему Orda (на Go).

В комментариях вы справедливо спрашивали: "Зачем изобретать велосипед, если есть PostgreSQL и Kafka?" и "Чем это отличается от Hyperledger/Ripple?".

Сегодня я отвечу на эти вопросы кодом и архитектурой. Мы не просто "переписали базу". Мы построили суверенный стек, который делает три вещи, невозможные в legacy-системах:

Читать далее

28 дней со Spring AI: от простого чата до полноценного инструмента

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

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

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

Читать далее
12 ...
50