Все потоки
Поиск
Написать публикацию
Обновить

Бэкенд

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

Логирование и мониторинг WG

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

Всех приветствую! Послушал обзор курса «Мониторинг высоконагруженных систем» от OTUS, в котором упоминалось, что используется асинхронный подход в мониторинге и решил реализовать его в установленном WG. Готового легковесного в интернете ранее не нашел, а вопрос назрел в ввиду оперативного понимания, кто забивает канал, да и логи хотелось бы увидеть о событиях. Если читатель надеется, что тут я опишу изменение исходника, не тратьте время, будем обрабатывать вывод команды wg в консоли Python-ом, который уже есть в ubuntu 20.04 и содержит asincio. Можете по

Читать далее

Стоит ли переносить правила из Cursor в Copilot и Windsurf: проверка на практике

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

Недавно я показывал, как ускорить создание админ-панели с помощью Admiral — фреймворка от команды dev.family для построения бэк-офиса на React. Тогда я использовал Cursor rules — набор текстовых правил, которые инструмент автоматически превращает в код.

Со временем я заметил, что такие правила универсальны: это обычные .md-файлы, которые можно использовать не только в Cursor, но и в других средах. Например, в GitHub Copilot, Windsurf, Replit, Zed, Continue и т.д. Возникает логичный вопрос: дадут ли они такой же эффект там, где изначально не задумывались?

Чтобы это проверить, я сравнил, как три популярных инструмента — Cursor, Copilot и Windsurf — справляются с одними и теми же инструкциями для админки. В статье разберём:

Choose your fighter

Обзор DATAREON Platform

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

На связи Сергей Скирдин, технический директор компании «Белый код». Поставил себе цель — сделать обзоры на шины данных из реестра отечественного ПО. Сегодня в обзоре продукт DATAREON Platform.

Читать далее

Ваш ИИ-ассистент — это новое поколение компиляторов

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

Команда AI for Devs подготовила перевод статьи о том, как ИИ меняет саму суть программирования. Автор сравнивает LLM с компиляторами и утверждает, что роль разработчиков постепенно смещается от написания кода к управлению архитектурой и обучению ИИ. Как думаете, это угроза или эволюция профессии?

Читать далее

О том, как я победил «ЕСТЬNULL»

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

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

Но не обошлось и без ложки дёгтя. В нашем случае это спецсимволы. Вот эти самые: «&», «#», квадратные скобки «[ ]», угловые «<>». Они-то ладно, мышечная память быстро осваивает ввод через Alt. Но вот ЕСТЬNULL. Считали, сколько клавиш надо нажать, чтобы набрать ЕСТЬNULL в стандартной раскладке? А сколько раз его нужно использовать в среднестатистическом запросе с соединениями? Это как будто маленькая пытка.

В этой статье расскажу, как я победил-таки ЕСТЬNULL и больше не трачу на это свои драгоценные секунды жизни.

Читать далее

Как онтология помогает представить структуру данных и семантику приложения

Время на прочтение11 мин
Количество просмотров995

В больших проектах, которые объединяют множество компонентов, нередко возникают проблемы унификации подходов и понимания связей между всеми сервисами. В результате долгое время у ИТ-команд существовал запрос на новую модель описания структуры данных и семантики приложения. Она появилась благодаря адаптации онтологии под нужны ИТ. 

Меня зовут Алексей Гуляев. Я архитектор решений в команде VK Tech. В этой статье я расскажу об онтологии в ИТ, вариантах ее использования и нашем кейсе применения онтологического подхода для решения внутренней задачи.

Читать далее

Гид по Apache Cloudberry ч.1: история появления, архитектура и функции

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

В конце августа вышел релиз распределённой СУБД Apache Cloudberry 2.0.0 — опенсорс‑проекта, который в режиме инкубации находится в Apache Soft Foundation (ASF). В новой версии состоялся переход на кодовую базу PostgreSQL 14, а также было добавлено множество улучшений.

При этом на Хабре до сих пор незаслуженно мало статей, посвящённых этой СУБД. Мы решили исправить это совместно с Максом Янгом, техническим лидером и участником PPMC Apache Cloudberry (Incubating). Эти статьи созданы по материалам совместного митапа Yandex Cloud Data Platform — про Greenplum® и не только. В этот раз пройдёмся по базовым особенностям и функциям этой СУБД, а в следующий — доберёмся до advanced‑возможностей.

Читать далее

Сборщик мусора в Go. Часть 1: Stop The World, пейсинг и оптимизация

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

Команда Go for Devs подготовила перевод статьи о том, как работает сборщик мусора в Go. Автор подробно объясняет семантику алгоритма триколорной маркировки и очистки, механизмы Stop The World, пейсинг и источники задержек. Главное — не бороться со сборщиком, а работать с ним в унисон: устранять лишние выделения и снижать нагрузку на кучу.

Читать далее

Как мы в T1 строим ALM-платформу нового поколения

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

Всем привет! На связи команда Центра разработки решений ALM‑стримов «ALM 2.0 Платформа» и «Динамическое моделирование баланса». В этой статье расскажем, как в нашей компании создаётся современная ALM‑система: на основе импортонезависимых решений, с расчётным ядром на Spark/Hadoop и интуитивно‑понятной интерфейсной частью на React/Java/Postgres. Ещё расскажем, как устроены витрины, где живёт логика и как запускаются пользовательские расчеты.

Читать далее

Автоэмбеддинги: поиск на ИИ без лишней мороки

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

Мы рады представить новую возможность, которая делает создание приложений с семантическим поиском таким же простым, как написание SQL-запроса: Автоэмбеддинги. Теперь Manticore Search берёт на себя генерацию эмбеддингов — без дополнительных пайплайнов, внешних сервисов и лишней мороки.

Читать далее

Самая быстрая БД на Диком Западе

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

Всем привет! Пополняю интернеты «еще одной» статейкой с бенчмарками популярных СУБД. Захотелось выяснить, каков оверхед на протокол, работу с сетью и клиентскими соединениями в самом простом кейсе — когда таблица либо совсем пуста, либо данных так мало, что все они в памяти.

Бенчмарк на Rust. Я попросил написать его Chat‑GPT, и он отлично справился.

Исходник здесь

Сравнивал с официальными scylla‑bench и redis‑bench — результаты схожи.

Для теста я специально использовал слабую железку — Orange Pi 3b. Это китайский аналог малинки. Захотелось узнать, на что она способна.

Читать далее

Обмен событиями распределённого приложения на Java

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

Сегодня я хочу рассказать вам об одном из вариантов доставки событий для распределённого приложения на Java.

Это доставка событий через БД, в которой хранится состояние распределённого приложения.

Читать далее

Нейросети в Spring-разработке: убираем рутину, а не интеллект

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

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

Читать далее

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

Обзор WSGI, ASGI и RSGI: лидеры среди веб-серверов в 2025 году

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

Любому веб-приложению нужен веб-сервер для доступа извне. На самом деле, многие даже не уделяют выбору веб-сервера для своего приложения достаточного внимания: на Django берут "популярный" Gunicorn (а кто-то ещё и обвязывает его Uvicorn'ом), а для FastAPI Uvicorn практически стандарт. Тут "на сцену" выходит Granian, представляющий впечатляющие результаты производительности с простой настройкой.

В своём проекте "Код на салфетке" я использовал uWSGI, но недавно узнал про новый Granian и мне стало интересно на что он способен. Так появилась идея для этой статьи.

В этой статье узнаем:

Читать далее

История статической и динамической типизации

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

Привет, Хабр! Меня зовут Глеб, я Java-разработчик в Сбере. Сегодня я хочу рассказать про исторический контекст двух фундаментальных подходов к системе типов в программировании.

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

При динамическом же подходе эта информация для нас открывается только во время выполнения программы (run-time) — это даёт больше гибкости и потенциального удобства при написании кода, однако влечёт за собой множество очевидных проблем: любая ошибка, связанная с типами данных, просто не будет выявлена на этапе компиляции и потребует дополнительного тестирования.

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

Читать далее

Чем хорош Postgres 18?

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

PostgreSQL 18 вот-вот выйдет, и это не просто минорное обновление, а настоящий прорыв для разработчиков и администраторов БД. В новом переводе от команды Spring АйО рассмотрим ключевые новинки — асинхронный I/O для ускорения чтения, поддержка UUID версии 7 с улучшенной сортировкой, skip scans в B-tree индексах, виртуальные вычисляемые столбцы и даже OAUTH 2.0 для аутентификации. Всё это делает Postgres ещё более быстрым, гибким и современным.

Читать далее

Использование файберов в PHP: разбор от команды СберЗдоровье

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

PHP и асинхронность. Такая комбинация долгие годы казалась невозможной, ведь PHP прочно ассоциировался с блокирующим подходом и синхронным выполнением скриптов «от запроса до ответа». С выходом PHP 8.1 ситуация несколько изменилась — появилась возможность реализовать асинхронность в PHP на основе файберов. Но есть нюанс — вопрос о том, действительно ли PHP с приходом файберов стал асинхронным, по-прежнему для многих остается открытым.

Меня зовут Михаил Сазонов. Я работаю в команде «Регистратура» в MedTech-компании №1 в России – в СберЗдоровье. В этой статье я разберу, наступило уже будущее или нет: стал ли PHP действительно асинхронным с приходом файберов или это миф.

Читать далее

Как я пытался подружить PHP с NER — драма в 5 актах

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

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

Читать далее

Дженерики в Python, простыми словами

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

Если вы только начинаете изучать Python и слышите слово дженерики, скорее всего в голове сразу каша: «что это вообще такое?». На самом деле дженерики - это очень простая идея. Представьте, что у вас есть коробка. В коробку можно положить игрушки, яблоки, книжки - всё что угодно.

Но иногда вы хотите, чтобы в коробке лежали только яблоки. А иногда - только игрушки. И вот тут вам помогают generics.

Читать далее

PHP: Общая память

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

Хочется быстрый кеш или общение между процессами? Хочется использовать фишки long-running PHP, но без long-running?

Давайте разберёмся, как работать прямо с оперативной памятью: от System V до MapViewOfFile; От shmop до FFI.

Расшарить оперативу