Как стать автором
Поиск
Написать публикацию
Обновить

Разработка

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

Быстро — не всегда хорошо: рейтлимиты в мультикластерном окружении

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

Всем привет! Кажется, настало время поговорить о том, как внедрялись ограничители частоты запросов на бэкенд в Wildberries. В статье — о том, с какими трудностями мы столкнулись на этом благородном пути и как прошли через четыре схемы реализации — от простейшей in-memory до собственных gRPC-сервисов. Не обойдём вниманием и парочку лайфхаков ;) Например, с помощью рейтлимитов мы неожиданно решили проблему плавного отключения старых версий API.

Меня зовут Дмитрий Виноградов, и я лид команды публичного API Wildberries. До этого почти 18 лет занимался промышленной автоматизацией в Schneider Electric — от программирования контроллеров и embedded-устройств до собственных SCADA-систем. Хочешь не хочешь, а научишься делать красивые интерфейсы :)

Читать далее

Основы успешного агентного кодинга (LLMDD)

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

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

Рассмотрим их в этой короткой статье

JEP 519: Компактные заголовки объектов — теперь официально

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

Команда Spring АйО представляет одну немаловажную фичу Java 25: компактные заголовки объектов (Compact Object Headers). Это позволит JVM экономить память и ускоряться без вмешательства в код.

Читать далее

Как мы измерили удобство для курьеров-партнёров: создаём свою метрику юзабилити

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

Привет, Хабр! Меня зовут Эля, я исследователь в ecom.tech. В этой статье расскажу, как мы измеряли юзабилити приложения для курьеров‑партнёров, зачем мы это делали — и что из этого получилось.

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

Читать далее

Кража NFT-подарков в Telegram: механизмы, инструменты и рекомендации по защите

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

Кража NFT-подарков в Telegram: механизмы, инструменты и рекомендации по защите

Последние обновления в мессенджере Telegram расширили пользовательские возможности, которые открыли новые двери для злоумышленников.

Тема NFT снова стала популярна благодаря открытому рынку подарков в Telegram, одновременно с этим в приложении мессенджера появились новый функционал.

Сегодня разберемся с трендом на NFT-подарки: их довольно сложно получить из-за конкуренции с ботами, а потерять — проще простого.

Читать далее

Эффективные практики программирования с использованием ИИ чат-бота

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

В этой статье мы разберём, как использовать агентов в процессе разработки ПО и какие изменения это влечёт в повседневной работе разработчика. Чтобы показать, как может выглядеть подобный новый рабочий процесс на практике, мы создадим простое Angular-приложение, которое ищет статьи в Википедии и выводит результаты в виде списка, используя «режим агента» GitHub Copilot. Назовём его «Search wiki app».

Читать далее

OWASP Top 10 API: Полный разбор всех угроз и как от них защититься

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

API — это «кровеносная система» современного веба, но без должной защиты они становятся лёгкой добычей для хакеров. OWASP выделил Топ-10 уязвимостей API, которые чаще всего эксплуатируют злоумышленники. Разберём ключевые риски и методы защиты.

Читать далее

Стартап за выходные: AI-агент для БД, часть 1

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

Ну кто не мечтает запустить стартап за одни выходные?
Давно хотел развеяться, и чутка отвлечься от рутины и работы.
А ещё давно хотел пощупать Tauri v2, и новомодные фреймворки для построения AI-агентов (ai-sdk / mastra / llamaindex.

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

Так как весь код открытый, то процесс я буду логировать в репозитории: https://github.com/ElKornacio/qyp-mini

Читать далее

Выжимаем максимум из Postgres на RTABench Q0

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

Время от времени приходится слышать мнение, что Postgres никуда не годится для решения задач аналитики. При при этом, в качестве аргументации приводятся в пример результаты тестирования на TPC‑H или ClickBench. Что ж, когда стоит простая задача перебрать 100 млн строк на диске и посчитать набор агрегатов над ними — формат хранения и распараллеливания действительно сильно ограничивают нас в возможностях оптимизации СУБД. Однако когда запросы высоко селективны, им по факту требуется не так много строк таблицы и фокус внимания смещается на порядок JOINов, кэширование промежуточных результатов и минимизацию операций сортировки. В этом случае Postgres, имеющий весьма широкий выбор различных стратегий выполнения запроса, может получить преимущество...

Читать далее

Занимательная некромантия 01H: ломаем программу под MS-DOS

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

Давным-давно, когда F11 и F12 еще не придумали, F1-F10 располагались слева, Ctrl жил на месте CapsLock, а IBM продавала компьютеры с гарантией на 90 дней, владельцы компьютеров работали в MS-DOS. Процессор еще не знал, что такое защищенный режим, память не делилась на области пользователя и ядра, виртуальной памяти не было, как не было и многозадачности. MS-DOS программа на счет "раз" нарушала работу ядра и компьютер приходилось перезагружать. Программы скромно умещались в 64 Кб, а, если превышали это ограничение, жизнь их становилась труднее.

Дизассемблируем 16-битную программу: InDuLgEo V3-B горит пламенем на экране, печатает текст и трезвонит, как старый телефон.

Вперед к 16 битам

Резервные копии PostgreSQL: сравнение скорости pg_dump в разных форматах и с разными уровнями сжатия

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

Я сделал резервную копию через pg_dump и восстановился из неё 22 раза. Резервные копии делал в 4 разных форматах с использованием от 1 до 7 уровней сжатия под каждый формат. Записал результаты и сделал сравнение разных видов, чтобы понимать, какие способы более эффективны для моего сценария использования.

Детали и замеры — ниже.

Читать далее

Как в 90-х началась борьба между поисковыми машинами и почему почти никто не выжил на рынке

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

Сегодня невозможно представить интернет без поисковиков. Нужна информация? Указываем необходимое ключевое слово или слова в Яндексе (Google) — получаем ответ.

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

Читать далее

Переход к Индустрии 4.0: роль беспроводных датчиков в повышении эффективности производства

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

Российская промышленность находится в фазе активной цифровизации, где концепции Индустрии 4.0 и Промышленного интернета вещей (IIoT) перестают быть просто трендами, а становятся необходимым инструментом для повышения эффективности, гибкости и глобальной конкурентоспособности предприятий. Эти технологии кардинально меняют подходы к управлению производством, открывая путь к созданию «умных» заводов нового поколения.

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

Опираясь на обширный опыт внедрения решений для промышленного IIoT, в этой статье мы рассмотрим:

1. Суть и принципы Индустрии 4.0 и IIoT: Как они меняют промышленный ландшафт?

2. Важную роль сбора данных: Почему надежные датчики — фундамент для цифровизации?

3. Конкретные решения для российских реалий: Как преодолеваются вызовы суровых условий эксплуатации и специфических требований?

4. Реальные примеры применения: Какие практические задачи решаются с помощью современных технологий беспроводного мониторинга на отечественных предприятиях?

Читать далее

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

Книга: «Изучаем Kali Linux»

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

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

Автор не ограничивается рамками тестирования безопасности и дополнительно рассказывает о криминалистическом анализе, в том числе анализе дисков и памяти, а также базовом анализе вредоносных программ.

Читать далее

Мои первые впечатления от программирования с ИИ

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

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

Читать далее

Web Workers и React: как разгрузить UI и ускорить приложение

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

Всем, привет, меня зовут Дмитрий, я React-разработчик, и я снова здесь и попробую сегодня рассказать про Web Workers.

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

Почему так происходит? Всё дело в том, что React, как и JS, в браузере работает на одном основном потоке. Точнее, чтобы меня не закидали помидорами, React — это библиотека JS, и она полностью работает в основном потоке браузера, который однопоточен. Когда вы запускаете тяжёлую синхронную задачу, она полностью занимает этот поток и блокирует его, мешая браузеру рендерить интерфейс и обрабатывать события пользователя.

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

В этой статье мы разберём, как можно решить эту проблему одним из вариантов — с помощью Web Workers.

Читать далее

Уже завтра! OpenIDE — профессиональные инструменты без ограничений

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

Уже завтра, 31 июля состоится публичный запуск OpenIDE — новой мультиязычной среды разработки, построенной на базе IntelliJ IDEA Platform.

Мероприятие пройдет онлайн на YouTubeVK и RUTUBE каналах Spring АйО. Участие абсолютно бесплатное.

Главное — зарегистрироваться, чтобы получить на почту ссылки на трансляцию и файл .ics для добавления события в календарь.

Читать далее

Micro-LLM: почему будущее за миниатюрными моделями

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

Когда-то программные системы строились как монолиты. Огромные, неповоротливые, требующие много ресурсов и постоянного внимания. Сегодня мир ИТ массово переходит на микросервисную архитектуру. Подобный сценарий вполне реален и в мире искусственного интеллекта, особенно в области больших языковых моделей (LLM).

Сейчас мы наблюдаем впечатляющий рост моделей вроде GPT-4 с сотнями миллиардов параметров. Их возможности завораживают, но и издержки огромны: дорогие вычисления, высокие задержки и огромный углеродный след. Возникает вопрос: действительно ли будущее за такими гигантами?

Читать далее

Книга: «Грокаем безопасность веб-приложений»

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

Привет, Хаброжители! Безопасность приложений — приоритетная задача для веб-разработчиков. Вы работаете над интерфейсом фронтенд-фреймворка? Разрабатываете серверную часть? В любом случае вам придется разбираться с угрозами и уязвимостями и понимать, как закрыть, дырки через которые хотят пролезть черные хакеры.

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

Читать далее

Рисуем чайник в Metal

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

Сегодня научимся рендерить 3D модель чайника при помощи Metal API. В процессе познакомимся с устройством простой модели, настроим пайплайн Metal и напишем шейдеры. Поиграться с кодом рендера можно в демо проекте.

Читать далее