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

Бэкенд

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

Коротко про TTL в NoSQL-хранилищах: Redis, MongoDB и Cassandra

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

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

В этой статье мы коротко рассмотрим, как работает TTL в трёх популярных NoSQL-хранилищах — Redis, MongoDB и Cassandra.

Читать далее

Как написать торгового робота для API Т-Инвестиций на Java

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

Привет! Я Алексей Кабанов, младший разработчик в команде публичного API Т-Инвестиций. Занимаюсь разработкой и поддержкой Java SDK и внутренних сервисов. Изучаю анализ рыночных закономерностей и программную реализацию алгоритмов торговли, построенную на них.

Расскажу о Java SDK для работы с API Т-Инвестиций и покажу, как использовать его для создания торгового робота. Мы сосредоточимся на стратегии, основанной на технических индикаторах, и продемонстрируем, как ее реализовать с помощью новых возможностей SDK.

Современная алгоритмическая торговля предлагает множество инструментов и стратегий, которые могут значительно повысить эффективность торговли на финансовых рынках. В статье покажу, как использовать обновленный Java SDK для создания робота, который будет торговать по стратегии, основанной на технических индикаторах. А еще подробно рассмотрим, как с его помощью можно настроить и протестировать робота, чтобы запустить его на реальном рынке.

Читать далее

Создаём конвейер обработки запросов в платформе Serverless

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

За 10 лет, что существует Serverless‑подход, бессерверные функции стали для многих разработчиков чем‑то привычным и удобным. С их помощью можно быстро написать несколько строк кода для реализации конкретной бизнес‑логики и задеплоить, не думая о развёртывании, настройке и обслуживании инфраструктуры. Нужный код запустится автоматически при срабатывании триггера, как это принято в событийно‑ориентированной архитектуре. Но если таких функций в приложении потребуется очень много — что поможет сохранить нужную скорость работы и другие преимущества Serverless?

Меня зовут Сергей Ненашев, последний год я разрабатываю в Yandex Cloud сервис бессерверных функций Cloud Functions. В нашем облаке с ним можно запускать код в виде функции без создания и обслуживания виртуальных машин.

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

Читать далее

Как я встраивал wysiwyg редактор в свой django проект

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

Разрабатывая сервис генерации AI курсов, я столкнулся с тем, что мне захотелось решить вопрос с удобным редактированием уроков.

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

Почитав разные статьи про то, какие есть редакторы, я остановился на TinyMCE.

Читать далее

Equity «на салфетке»: как договориться с партнёром в стартапе и не пожалеть

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

Мы договорились устно. Всё по-братски. Что может пойти не так?

Всё. Абсолютно всё.

Вы запускаете стартап. Прототип работает, первые пользователи тестируют MVP, впереди демо-день в акселераторе. Один пишет код, другой — тянет связи и питчи. Делёж долей — «когда-нибудь потом». Пока же — драйв, энергия и ощущение, что всё получится.

Но потом наступает «завтра». Один уходит в найм, другой зовёт инвестора, третий хочет «справедливости». А договорённости? Их либо нет, либо они живут где-то в переписке и туманном «вроде договаривались».

Когда на этом фоне начинается конфликт — спасать уже нечего. Ни стартап, ни отношения.

Читать далее

Как хранить деньги в базах данных и почему это не так просто, как кажется

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

Хранение денежных сумм в базах данных и API: анализ подходов платежных систем

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

Разбираем, как решают эти проблемы Stripe, PayPal, Google Wallet и другие платежные системы. Сравниваем три основных подхода: Integer minor units, Decimal base units и String base units.

Читать далее

Типизация в Python: как аннотации спасают ваш код и ускоряют разработку

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

Ошибки из-за несоответствия типов — самые обидные и распространенные. Аннотации в Python решают это раз и навсегда. В этой статье я покажу, как они делают ваш код безопаснее и красивее

Читать далее

System Design: Как бизнес влияет на финальный вид ИТ-Системы и выбор технологий

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

В System Design нет «правильных» решений — только компромиссы. Бюджет, сроки, команда и законы диктуют, какие технологии выбрать, как масштабироваться и когда идти на жертвы. Разберём, почему определение бизнес-ограничений это важный этап System Design и почему они диктуют Айтишникам как и с чем работать.

Читать далее

Telegram Bot API 9.1 — чеклисты, подарки и другое

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

Telegram продолжает расширять возможности своего мессенджера — в свежем обновлении Bot API 9.1 разработчикам стали доступны удобные инструменты для работы с чек-листами, подарками и рядом других функций.

Рассмотрим их подробнее.

Читать далее

Бот для написания постов в Телеграм. Создание и запуск

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

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

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

Читать далее

Разбираемся со Spring Boot с помощью Spring Debugger

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

Команда Spring АйО перевела статью о работе со Spring Debugger и о том, как его применение существенно облегчает отладку приложений, написанных с использованием Spring Boot. На момент написания статьи фича доступна только в Ultimate версии IntelliJ IDEA.

Читать далее

Vue Teleport: как работает

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

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

Сегодня разберём один из недооценённых, но крайне полезных инструментов во Vue 3 — <Teleport>. Это встроенный механизм, который позволяет рендерить часть шаблона вне текущего DOM‑контекста. Он нужен при реализации модалок, тултипов и других компонентов, которые должны «выпрыгивать» из дерева компонентов, но при этом сохранять реактивность, фокус и доступность. Без этих костылей, z-index: 9999 и appendChild.

Читать далее

Сквозь тернии к апдейту: история о том, как мы обновляли стриминг ОК

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

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

Меня зовут Алина Шестакова. Я разработчик в команде разработки DataPlatform единой облачной платформы One-сloud. В этой статье расскажу о том, как устроен стриминг данных в ОК, а также обо всех патчах и челленджах, возникших в процессе обновления стримингового фреймворка.

Читать далее

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

Как работает ingress-nginx: нырнем еще глубже. Часть 2 — балансировка

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

В первой части мы разобрались с принципами работы Ingress-nginx контроллера. Теперь пришло время углубиться в то, как в Ingress-nginx устроен механизм обновления бэкендов и как реализована балансировка нагрузки на примере sticky sessions. Готовы узнать больше? Поехали!

Напомню, если вдруг забыли, эта статья написана по мотивам выступления на DevOpsConf’25, а меня зовут Алексей Колосков, я Lead DevOps из Hilbert Team.

Итак, рассмотрим, как реализовано обновление бэкендов в самом контроллере.

Читать далее

System Design: Чек-лист по сбору и фиксации требований на все случае жизни

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

Если на собеседовании по System Design не уделить внимание требованиям, это почти гарантированно приведёт к провалу — даже если ваше техническое решение идеально. Игнорирование требований — главная причина провала на собеседовании. Уделите этому 5-10 минут, и ваше решение сразу станет в разы сильнее. Расскажем, как собрать и зафиксировать требования чтобы повысить свои шансы при прохождении собеседования в IT-компанию.

Читать далее

Excel больше не нужен: как автоматизировать бизнес дистрибьютора автозапчастей

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

Представьте: каждый день менеджеры вручную переносят данные из 1С в Excel, чтобы рассчитать маршруты водителей и их зарплату. Два часа на каждого водителя, риски ошибок, бесконечные перепроверки. Именно с этим столкнулась компания по оптовой продаже и доставке автозапчастей по Москве.

Расскажу про систему учета в 1С, которая автоматизировала расчеты зарплат водителей и уменьшила ручной документооборот.

Читать далее

FastCGo: как мы ускорили вызов C-кода в Go в 16,5 раза

Уровень сложностиСложный
Время на прочтение19 мин
Количество просмотров8.4K

В Deckhouse Prom++ мы переписали ядро хранения и обработки горячих данных на C++, при этом вся оркестрация и периферия остались в Prometheus на Go, что позволило сохранить полную совместимость с Prometheus. Для частых вызовов кода C++ мы использовали механизм CGo, однако первые тесты показали, что производительность CPU практически не улучшилась из-за его медлительности. В итоге мы переписали CGo, создав собственный механизм вызова.

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

Читать далее

CryptoProBuilder — fluent-интерфейс для КриптоПро на PHP: подпись, шифрование и работа с контейнерами

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

КриптоПро предоставляет мощные, но неудобные для автоматизации утилиты. CryptoProBuilder — это fluent-интерфейс на PHP, который упрощает подписание, шифрование и работу с сертификатами, без необходимости использовать сложный SDK.

Читать далее

Как работает Injector в Angular и что такое @Optional, @SkipSelf, @Host

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

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

Сегодня мы рассмотрим, как работает Injector в Angular, зачем нужны декораторы @Optional, @SkipSelf, @Host, и чем отличаются провайдеры на уровне root, модуля и компонента.

Читать далее

Как работает fillfactor и как его настраивать вручную в PostgreSQL

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

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

Сегодня рассмотрим, как работает fillfactor в PostgreSQL — тот самый параметр, который никто не трогает, пока таблицы не начинают раздуваться как на дрожжах. Разберём, зачем он нужен, что происходит при UPDATE, когда стоит менять его вручную и как не наломать дров.

Читать далее