Обновить

Бэкенд

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

Как одновременно заварить кофе для 10 000 сотрудников — и еще 7 неожиданных вопросов архитектору ПО

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

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

Привет, Хабр! Меня зовут Дмитрий Овчаренко, я технический директор департамента разработки для финансового сектора IBS, более десяти лет создаю сложные ИТ-решения для лидеров рынка, а также преподаю в Учебном центре IBS.

Недавно мы провели внутрикорпоративный эфир Ask Me Anything («Спроси меня о чем угодно»). Коллеги могли задать любой вопрос о работе архитектора ПО. В этой статье поделюсь самыми интересными и неожиданными из них.

Читать далее

VibeCode. Как не назови все равно полетит

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

Plain Text vs XML or Markdown: на чём писать промпты для ИИ‑кодера?

Структура - это новый язык общения с ИИ. Особенно когда дело касается кода.
Есть миф: чтобы попросить ИИ написать код, достаточно набросать запрос в чат «как есть». Plain text, без правил. Сработает? Иногда. Будет эффективно? Редко.
Почему ИИ «понимает» структурированный промпт (с тегами, отступами, чёткими блоками) лучше, чем простой текст?

Читать далее

[Алгоритмы, Задачки] Элегантно и идиоматично обходим двоичное дерево поиска на Python 3

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

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

Читать далее

Кластеры Patroni 4.0.7 и etcd 3.6.5 в docker-контейнерах

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

В статье рассматривается создание кластера Patroni последней версии 4.0.7 и etcd 3.6.5 в контейнерах docker. Приводится пример, когда Patroni не может автоматически восстановить и запустить кластер PostgreSQL. 

Patroni в докере

Задача запуска Patroni в докере обсуждалась на реддит и гитхаб. Приводился пример наиболее простой сборки batonogov/patroni-docker, которая состоит из 7 контейнеров: трёх с кластером etcd и трёх с PostgreSQL 17 под управлением Patroni (мастер и две реплики), один контейнер с HAProxy.

Читать далее

Всё что нужно и не нужно знать про заимствование в Rust

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

Привет, Хабр!

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

Читать далее

Раскрываем всю мощь динамических матриц GitHub Actions

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

Сегодня мы с вами на практике разберем что такое динамические матрицы в Github Actions и как с их помощью экономить время и ресурсы на практике.

Я подготовил монорепозиторий с несколькими микросервисами url-shortener-demo с очень коротким флоу: feature_branch(через PR) →  main. Как понятно из названия это проект позволяющий генерировать короткие ссылки.

Читать далее

Навыки (Skills) для Claude: почему папка с Markdown-файлами может оказаться важнее кастомных GPT

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

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

Читать далее

Генераторы в Python для начинающих с практическим домашним заданием

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

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

Читать далее

Строим GitOps-платформу: Argo CD и всё, что к нему прилагается. Часть 2 — про практическое использование

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

Привет, Хабр! Это вторая часть большой статьи, где мы — Егор Салиев и Николай Пушкарев, DevOps-инженеры Hilbert Team, — рассказываем, как построить GitOps-платформу на Argo CD.

В первой части разобрали базу: познакомились и установили Argo CD, изучили его компоненты и показали установку через Helm и Terraform. В этой — перейдём к практике и ответим на вопрос, что делать, когда команда растёт вместе с количеством приложений и усложняется инфраструктура. Пройдём по сценариям от маленькой команды до большой организации и соберём рабочую GitOps-модель на Argo CD.

Читать далее

Как реализовать CRDT-структуры в Go для офлайн-режима

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

Привет, Хабр!

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

Классические решения вроде Operational Transformation давно применяются, например, в совместном редактировании документов. Но сегодня я хочу рассказать про другой подход — CRDT.

Перейти к разбору CRDT

Как я автоматизировал свои эмоции

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

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

Читать далее

Swift 6.2

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

Apple представила очередное крупное обновление языка программирования Swift. Версия 6.2 призвана повысить производительность и расширить сферу применения языка. Ключевые улучшения затронули три основных направления: параллелизм, безопасность и инструменты разработки.

В области параллелизма Swift 6.2 делает написание безопасного конкуррентного кода более интуитивным. Новая модель изоляции главного актора по умолчанию упрощает работу с UI, а модификатор @concurrent позволяет точно контролировать параллельное выполнение кода. Для низкоуровневой разработки добавлены новые типы данных InlineArray и Span, обеспечивающие безопасную работу с памятью без потери производительности.

Значительно улучшена инструментальная поддержка: официальное расширение для VS Code теперь включает встроенный отладчик LLDB и панель управления проектами. Ускорена сборка проектов с макросами, а система диагностики компилятора стала более гибкой. Библиотеки также получили важные обновления, включая современный API NotificationCenter и новый пакет Subprocess для работы с внешними процессами.

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

Читать далее

Облачная vs локальная LLM: что выбрать для своего проекта

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

Привет! На связи София Филиппова, AI-engineer at Innova и спикер курса «AI в DevOps» от Слёрма. Сегодня хочу поговорить о том, как сделать выбор между облачной и локальной LLM.

Читать далее

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

Новый сезон «Битовых масок» — подкаста о системном программировании и разработке процессоров

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

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

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

Читать далее

Бенчмарк lakehouse-движков, часть 1: StarRocks и Doris падают под нагрузкой, Presto аутсайдер, CedrusData быстрее всех

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

В этой статье мы детально рассмотрим поведение аналитических движков при выполнении отдельного TPC-DS запроса на одном узле.

Это глубоко технический текст, в котором мы увидим, как (1) три родственных движка (Impala, StarRocks и Doris) с трудом справляются с конкурентной нагрузкой, (2) разработчики StarRocks и Doris затачивают дефолты своих движков под бенчмарки, (3) Trino реализует эффективный шедулер запросов, но имеет ряд дефектов, ухудшающих производительность, (4) Presto строит хорошие планы запросов, но демонстрирует катастрофически плохую производительность из-за отсутствия буквально одной фичи. Ну а победит, конечно, наш движок CedrusData.

Хочу, чтобы подгорело

Оптимизируем производительность веб-приложения с Redis

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

Привет, Хабр! С вами Александр Константинов, технический эксперт по облачным технологиям из Cloud.ru. Сегодня хочу показать вам наглядно, как можно оптимизировать производительность веб-приложения. Рассмотрим это на усредненном примере кейса, который типичен для многих наших клиентов, пройдем весь путь настройки, выполним нагрузочное тестирование и сравним до/после.

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

Узнать больше

Как я построил RAG-систему за вечер с помощью 5 open source-инструментов

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

Команда Python for Devs подготовила практическое руководство по сборке полноценной RAG-системы из пяти open source-инструментов. MarkItDown, LangChain, ChromaDB, Ollama и Gradio превращают разрозненные документы в умную базу знаний с потоковой генерацией ответов. Всё локально, без облаков и с открытым кодом — попробуйте собрать свой ChatGPT прямо у себя.

Читать далее

Obsidian-совместимые заметки в своём приложении: Nest.js, Prisma, gray-matter

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

В этой статье я покажу, как связать Nest.js и Obsidian: хранить заметки в формате Markdown прямо из бэкенда, редактировать и синхронизировать их с базой данных. Если вы тоже любите Obsidian и пишете pet-проекты — это может вам помочь.

Читать далее

Телеграмм бот на Python aiogram 3. Часть 4

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

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

В Telegram существует два принципиально разных типа клавиатур, каждый из которых служит своей цели:

ReplyKeyboardMarkup: Постоянные кнопки, заменяющие стандартную клавиатуру.

InlineKeyboardMarkup: Встроенные в сообщение кнопки, которые отправляют боту "сигналы" (callback) и позволяют редактировать уже отправленный контент.

Читать далее

Строим GitOps-платформу: Argo CD и всё, что к нему прилагается. Часть 1 — базовая настройка

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

Многие компании реализуют GitOps-подход как часть внутренней Developers Platform. Он помогает унифицировать и автоматизировать доставку кода, повысить надёжность деплоя и дать разработчикам удобный интерфейс для работы с инфраструктурой. Один из самых популярных инструментов для этого — Argo CD.

Статья основана на воркшопе Егора Салиева и Николая Пушкарева, DevOps-инженеров Hilbert Team, проведённом на DevOps Conf 2025. В ней мы разберемся, как внедрить Argo CD и его ключевые компоненты, чтобы построить масштабируемую GitOps-платформу.

Материал будет в двух частях. Он будет полезен разработчикам и DevOps-инженерам, которые хотят понять, с чего начать внедрение GitOps в команде, организовать инфраструктуру под разные масштабы, а также всем, кто ищет способы унификации деплоя.

Читать далее