Обновить

Разработка

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

Как ускорить массовую вставку данных в PostgreSQL при использовании Spring

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

Меня зовут Дмитрий Фатов, я разработчик в Газпромбанке — вместе с командой создаю платформу G2, на которой мы разрабатываем свои решения. Одно из решений — SaaS, система, в которой есть внешние интеграции через xml. До какого-то момента к нам приходило максимум 30 тыс. документов в одной выгрузке, но после подключения очень крупного клиента в одной выгрузке начали получать до 2 млн документов. Это около 4 млн записей в базе данных. 

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

В этой статье расскажу именно про последнюю часть — как ускорить вставку данных. Покажу, какие настройки стоит применить для Spring и Hibernate, для чего они нужны и какой буст по производительности дают. Здесь же разберем, как можно создать свою собственную прослойку для вставки данных в PostgreSQL. Эта прослойка позволит нам использовать разные подходы к вставке данных, в том числе кастомные методы PostgreSQL, а также распараллелить процесс вставки. Посмотрим, как ее можно подружить со Spring, а также какой профит нам даст каждый из рассмотренных подходов. 

Читать далее

«Паяем правильно и точно» — тест-драйв набора DIY для детей

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

Привет, хабровчане! На связи руководитель проектов редакции компьютерной литературы издательства «БХВ» @Holmogorov Признаюсь честно: паять я люблю, но не сказать, что умею это делать профессионально. Так, в состоянии починить ёлочную гирлянду или водрузить на место отвалившийся конденсатор в блоке питания. Поэтому когда у нас в «БХВ» придумали детский набор «Паяем правильно и точно. Уроки мастера + 4 набора для пайки», я сразу решил взять его на тест-драйв. Благо, все необходимое для «ходовых испытаний» у меня в наличии имеется: ребенок мужского пола, никогда до этого не державший паяльник в руках, и я, который хотя бы приблизительно помнит, как этот самый паяльник выглядит. Тем более, набор изобретали совершенно другие люди в совершенно другом подразделении нашей компании, поэтому я могу без особых угрызений совести изучать его более-менее непредвзято и писать про него гадости обзоры.

Погнали!

Нейро-дайджест: ключевые события мира AI за 3-ю неделю ноября 2025

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

Привет! Это новый выпуск «Нейро-дайджеста» — коротких и полезных обзоров ключевых событий в мире искусственного интеллекта и технологий.

Неделя выдалась насыщенной: OpenAI тихо обновили пятёрку до GPT-5.1, Google вытащили Gemini 3 Pro на первые места топовых бенчмарков, Anthropic заключили сделку с Microsoft и Nvidia на десятки миллиардов долларов. Измены с чат-ботами уже приводят к разводам, а в пакистанской газете засветилась подсказка от нейронки.

Всё самое важное — в одном месте. Поехали!

Читать дайджест →

Не интерфейсом единым —  куда движется дизайн в 2026 году

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

Рассказываем, почему главный инструмент дизайнера будущего — эмпатия 

Меня зовут Саша, и последние 12 лет моя жизнь — это дизайн. Сегодня я руковожу дизайн-командой в KISLOROD, а в прошлом — помогал крупным брендам и миллионным сервисам обрести их уникальный голос и форму.

Помните, пару лет назад мы всерьез обсуждали, что ИИ скоро оставит дизайнеров без работы? На дворе уже почти 2026-й — а мы все еще здесь. Алгоритмы научились рисовать и подбирать цвета, но считывать контекст, настроение, тревогу, усталость клиента — все еще наша зона ответственности. Поэтому тренды 2026 года — именно про ощущения. Проанализировал и собрал, что, на мой взгляд, будет максимально востребовано. 

Читать далее

Мечтают ли ИИ-агенты об удобных IDE?

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

О программировании с помощью AI-агентов трубят из-за каждого угла. Последнее время появилось достаточно много инструментов, которые буквально пишут код за разработчика. Наша команда следит за индустрией ИИ в разработке достаточно давно. Помимо внедрения ИИ в сам процесс разработки наших продуктов, мы активно занимаемся интеграцией Amplicode с современными AI-агентами и не только. И у нас есть свои мысли на этот счет :-)

Читать далее

Twake Drive. Опенсорсный клон GDrive на своём сервере

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

Французская компания Linagora продвигает облачный сервис Twake Workplace как опенсорсную и безопасную альтернативу Google Workspace и прочим корпоративным платным облакам. В комплект с чатом и почтой входит Twake Drive — защищённое файлохранилище.

В Twake Workplace код открыт, используются защищённые протоколы JMAP и Matrix, шифрование по умолчанию. В публичном облаке бесплатно дают 5 ГБ на файлы. Но самое главное, что Twake Drive можно установить на собственном сервере, с неограниченным дисковым пространством.

Читать далее

Код-гольф в Яндексе: как нерды развлекаются

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

Что такое код-гольф? Это соревнование, в котором надо решить задачу по программированию (как правило, несложную), используя наименьшее количество символов. Соревнование довольно известное. Можно поиграть, например, на одноимённом сайте, есть целая секция на CodinGame, иногда такие соревнования публикует kaggle, была такая секция на HackerRank (сейчас её я не нашёл).

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

Временами мы развлекаемся таким форматом. В какой-то момент на внутренних ивентах подняли свою платформу для соревнований, а потом она протекла и на внешние конференции.

Эта статья — смесь разбора задач и истории появления соревнования по код-гольфу на конференциях Яндекса.

Про нас и кодгольф

Призыв к компактному программному обеспечению

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

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

Читать далее

Excel-лайфхаки, о которых не знают «эксперты»

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

Я наблюдал, как мой опытный коллега-финансист целый час колупался в Excel. Он гуру экселя, работает с ним 20 лет. Но увидев, как он печатает формулы, я не выдержал и показал пару простых трюков, от которых он пришёл в восторг.

Это была проблема незнания — незнания о функциях, которые лежат в Excel годами, экономят часы работы, но о которых просто никто не рассказывает.

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

Читать далее

Аморальный патч для Intel DRM

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

На свете есть не так много вещей, способных выбесить программиста. И лишь одна делает это с гарантией: оборзевшая в край машина, возомнившая себя умнее человека.

А значит снова пришло время карать и патчить!

Читать далее

Google Antigravity и Gemini 3 Pro: что реально меняется в разработке и почему это не убийца Cursor

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

18 ноября 2025 Google представил новую связку: модель Gemini 3 Pro и IDE Google Antigravity. Первая - про управляемое рассуждение, длинный контекст и мультимодальность. Вторая - про мультиагентную разработку с артефактами и «прозрачными» шагами. В ленте мгновенно пошли заголовки «Cursor мертв».

В этой статье разбираем, что именно Google запустил, почему слова "самая умная модель" - преувеличение, чем Antigravity отличается от Cursor, какие сценарии разработки уже меняются, и где пока еще рано бросать привычный стек.

Читать далее

Щёлк-щёлк — и поехали: как релейная автоматика стала прообразом IIoT. Часть 2

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

Напомню, что мы исследуем историю релейной автоматики и, неразрывно связанной с ней, релейной логики. И пытаемся понять, как в первой половине ХХ века огромные заводы работали, выполняли сложнейшие операции и почти не сбоили. Хотя все современные инженеры IIoT на тот момент еще даже не родились, а устройства ПЛК только шли в разработку. 

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

Читать далее

Космотекст: отправляем статьи в космос — и объявляем победителей 🚀

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

Привет от Хабра! Несем вам буквально космическую новость — мы подвели итоги конкурса космических статей и выбрали те, что отправятся в настоящий КОСМОС 🛸. А еще отобрали автора лучшей статьи за время существования Хабра, который забирает экскурсию на Байконур! 

Рассказываем, какие авторы стали космическими победителями и о чем они написали.  

Читать далее

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

Люди, которые писали код на голых нервах. О практике девяностых и нулевых, которая до сих пор работает

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

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

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

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

Читать далее

Паттерн Transactional Outbox: от теории до продакшена

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

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

В статье разберемся, что именно начинает ломаться в outbox-паттерне под нагрузкой, как выбирать и блокировать события в разных СУБД, почему ретранслятор стоит отделить от API и какие гарантии доставки на самом деле получаются. А ещё — почему консюмеры должны быть идемпотентными, как следить за внутренней очередью в базе и не узнавать о проблемах уже после инцидента.

Разобрать outbox

Как IN (:ids) раздувал Hibernate Query Plan Cache до 100+ МБ и почему ANY(:ids) спас прод

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

При разборе продакшн heap dump я обнаружил странность: Hibernate Query Plan Cache занимал почти треть памяти. Обычный IN (:ids) внезапно генерировал тысячи SQL-планов и раздувал heap.

Почему так происходит и как полностью решить проблему с помощью ANY(:ids) — разбираю пошагово на реальном примере

Читать далее

Астероид для IT-индустрии: как пережить AI-апокалипсис

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

Всем привет! Меня зовут Николай Губин, являюсь Backend-разработчиком в Авито уже четыре года. Я тот, кто за пятнадцать лет пережил несколько революций в индустрии, каждая из которых выглядела как конец безбедной и счастливой жизни каждого разработчика. В этой статье поделюсь своим субъективным мнением на самый холиварный вопрос: с развитием ИИ что ждет IT- специалистов? Закат или новое начало?

Читать далее

Хватит писать CSS с нуля: как Chakra UI экономит время и нервы разработчика

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

В сфере фронтенд‑разработки каждый день приходится решать однотипные задачи: создавать и настраивать внешний вид компонентов, обеспечивать адаптивность и доступность UI без вреда для производительности. Чтобы избавить нас от этой рутины, были созданы библиотеки стилизации.

В данной статье мы рассмотрим одну из таких библиотек — Chakra UI V3 в связке с React, так как она не особо большая и проста в изучении. В разных библиотеках синтаксис может немного отличаться, но в основном они все решают одни и те же проблемы. Давайте разберёмся, как она способна помочь нам в разработке.

Читать далее

Как оптимизация перформанса Debezium JDBC Sink Connector помогла улучшить Open-source версию решения

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

Debezium — популярный фреймворк для Change Data Capture (CDC), позволяющий отслеживать изменения в источниках данных (таких как базы данных) и передавать их в потоковые платформы вроде Apache Kafka. Одним из компонентов Debezium является JDBC Sink Connector, предназначенный для записи данных из Kafka в реляционные базы данных посредством интерфейса Java Database Connectivity (JDBC). 

Debezium JDBC Sink Connector может решать множество задач: от репликации данных между БД и синхронизации обновлений между микросервисами до создания резервных копий данных для целей тестирования или разработки. Мы в VK Tech используем Debezium JDBC sink connector, чтобы строить перформанс-интеграции. Но в нагрузочных тестах столкнулись с проблемой производительности, которая не решалась никакими обходными путями. Поэтому нам пришлось детально погрузиться в нюансы обработки событий в Debezium JDBC connector.

Привет, Хабр. Меня зовут Артём Дубинин. Я старший разработчик Backend в команде Tarantool CDC — решения для репликации данных в реальном времени между системами управления базами данных (СУБД). В этой статье я изложу свою интерпретацию создания Debezium, расскажу о том, как работает Debezium JDBC connector, а также о нашем варианте оптимизации перформанса, который попал в Open-source версию.

Читать далее

Второй мозг для автора — собираем экосистему из нейросетей и заметок

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

Второй мозг для автора — собираем экосистему из нейросетей и заметок

Привет, Хабр! Эта статья - результат совместного труда двух авторов. В своей карьере мы перепробовали много различных методик. Мы искали способы «вытаскивать» мысли из головы в цифровое пространство, где их удобнее структурировать, чтобы затем превратить в связный живой текст. Делимся своим опытом работы с инструментами написания и редактирования текстов, среди которых есть как проверенные временем, так и появившиеся сравнительно недавно.

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