Backend Portal | Программирование
17.4K subscribers
1.47K photos
136 videos
41 files
1.29K links
Присоединяйтесь к нашему каналу и погрузитесь в мир Backend-разработки

Связь: @devmangx

РКН: https://clck.ru/3FobxK
Download Telegram
Proxyman_App 6.3 для macOS добавляет поддержку HTTP/2, захват трафика на localhost для Chrome и Firefox, prettify для XML, новые команды в CLI, поддержку командных лицензий, определение IPv4-адресов, улучшенную проверку сертификатов и другие изменения.

👉 @BackendPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4
Совет по Kubernetes

С этим ресурсом можно утащить управление схемой БД прямо в Kubernetes

» Описываешь схему как K8s-ресурсы
» Atlas сам сверяет текущее состояние БД и генерирует ALTER’ы
» Хранишь ресурс в Git и синкаешь через Argo CD, чтобы конфигурация приложения и схема БД управлялись одинаково

apiVersion: db.atlasgo.io/v1alpha1
kind: AtlasSchema
metadata:
name: sample-schema
spec:
urlFrom:
secretKeyRef:
key: url
name: postgresql-credentials
schema:
sql: |
create table person (
id serial primary key,
name varchar(255),
gender varchar(255),
age int,
external_id int // (+)
);


👉 @BackendPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍2💊2
Kafka и NATS — это не просто два брокера, разница глубже: pull против push моделей.

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

В NATS всё наоборот: push-консьюмеры получают данные сразу по факту появления. Быстро, реактивно, без ощутимой задержки.

JetStream позволяет смешивать подходы: push для широкого фан-аута, pull для контролируемых воркеров. Комбо, которое закрывает оба сценария.

Но есть нюанс: push + медленный обработчик = тихий рост нагрузки в памяти. Держите под контролем max_ack_pending.

Pull-режим в NATS отлично заходит для автоскейлинга воркеров: вытянули N сообщений → масштабируем поды дальше.

Kafka: настройка max.poll.interval.ms важнее, чем кажется. Промахнулись — поймаете ребаланс и просадку по работе консьюмера.

Общее правило: нужно стримить и переобрабатывать — берут Kafka. Нужны мгновенные реакции и низкая задержка — ближе NATS.

👉 @BackendPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥1
Твое приложение тормозит не потому что оно плохое. Оно тормозит потому что растет.

В начале все идет легко.
Мало юзеров.
Ответы летят.
Никакого давления.

Берешь Supabase и все просто работает.
Авторизация выглядит аккуратно.
Данные ощущаются надежными.
Время уходит на разработку, а не на фикс проблем

Потом нагрузка начинает расти.

Запросы копятся.
Одни и те же данные дергаются снова и снова.
Бэкенд тихо начинает пахать сильнее, чем должен.

Ничего не падает, но ощущение уже не то.

Вот тут в игру заходит Redis.

Не как огромная архитектурная перестройка.
Не потому что все сломалось.
А потому что рост меняет поведение системы.

Supabase держит достоверность и консистентность.
Redis берет на себя скорость, повторяющиеся запросы и нагрузку.

Один дает структуру.
Второй дает пространство для дыхания.

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

Пользователь не замечает технологию, он просто чувствует что все работает плавно.

И вот это настоящая победа.

Масштабирование это не про "делать больше". Это про убрать трение.

Supabase дает стабильность. Redis дает свободу.

Вместе они позволяют работать спокойно,
выкатывать фичи увереннои расти без всяких нежданчиков

👉 @BackendPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
6💊3👍2
Complete Backend Development Roadmap (all Major Tech Stacks).pdf
24.9 KB
Полный роудмап по Backend-разработке (все основные стеки)
Это подробный, реально производственный роудмап по бэкенду, который закрывает все ключевые технологии, используемые в боевых системах.|

👉 @BackendPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
10 задач по Docker, которые стоит закрыть перед переходом на Kubernetes

1. Задокеризировать продакшн-веб-приложение с использованием переменных окружения.
2. Собрать оптимизированные multi-stage Dockerfile’ы.
3. Запускать контейнеры не от root ради безопасности.
4. Пушить версионированные образы в Docker Hub или ECR.
5. Поднимать мультисервисные стеки через docker-compose.
6. Управлять персистентными данными с помощью Docker volumes.
7. Добавить healthcheck’и в контейнеры.
8. Сканировать образы на уязвимости и фиксить их.
9. Автоматизировать сборку и публикацию образов в CI.
10. Дебажить контейнеры через логи и docker exec.

👉 @BackendPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
3🔥1
Когда вы забываете добавить CORS.

Бэкэнд:

👉 @BackendPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
😁17💊1
Локальный S3-совместимый сервер для разработки и тестов.

👉 @BackendPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
1
Этот GitHub-репозиторий выглядит просто дико

Это огромная подборка из 2600+ API для скрейпинга, с помощью которых можно вытаскивать данные с сайтов, соцсетей, e-commerce-платформ и много чего ещё.

👉 @BackendPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
7
This media is not supported in your browser
VIEW IN TELEGRAM
Бесплатный API для определения геолокации по IP-адресу.

Безлимитные запросы и без регистрации.

ip․guide

Подходит для JavaScript, Python, PHP и любого другого языка.

👉 @BackendPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
10
Правила выбора структур данных:

* Небольшие коллекции (<100) → линейный проход быстрее HashMap
(хэш + лишняя индирекция дороже, чем O(n))

* В основном чтение, записи редкие → иммутабельные структуры
(JIT оптимизирует, нет рехэша, проще рассуждать о коде)

* Высокая частота записей → избегай отсортированных структур
(ротации деревьев добавляют скрытую стоимость)

* Порядок нужен только на выходе → храни без порядка, сортируй при чтении
(одна сортировка дешевле, чем поддерживать порядок всегда)

* Частые итерации → оптимизируй локальность памяти
(arrays > ArrayList > HashMap > TreeMap)

* Hot path → избегай полиморфных структур
(виртуальные вызовы мешают инлайнингу)

* Стабильные ключи → заранее агрессивно задавай размер HashMap
(resize = всплеск латентности)

* Разреженные числовые ключи → массивы лучше мап
(смещение по индексу быстрее хэширования)

* Плотные enum-ключи → EnumMap
(реализация на массиве, без хэширования)

* Нужны и membership, и порядок → LinkedHashSet
(платишь памятью, но избегаешь TreeSet)

👉 @BackendPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍61
SQL-совет: как работает ORDER BY с несколькими колонками

Когда в запросе используется ORDER BY с несколькими полями, база сначала сортирует весь результат по первой колонке (в примере — sales).
Так формируются группы строк с одинаковым значением первичного поля, например все строки с sales = 12000.

Дальше включается вторичная сортировка (age ASC).
Она применяется не ко всей таблице, а только внутри этих групп.

В результате видно, что строки с одинаковым sales стоят рядом.
Например, Mira и Bob сгруппированы вместе, потому что у них одинаковые продажи (12000).
Первичная сортировка по sales DESC дала равенство, и тут в дело вступает второе поле.

Так как сортируем по age по возрастанию, Mira (30) идет перед Bob.

То же самое происходит для всех значений, которые совпали в первой сортировке:
каждое следующее поле в ORDER BY работает как тай-брейкер для предыдущего.

👉 @BackendPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Сгенерируй headless-бэкенд для e-commerce за считанные секунды 🤯

Есть open-source проект Storecraft, который позволяет быстро поднять полностью AI-управляемый бэкенд интернет-магазина. Ты сам выбираешь стек, базу данных и все необходимые компоненты.

👉 @BackendPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5🤔2
Что общего у Git, Cursor и Dynamo?

Деревья Меркла.

Это отличная структура данных для отслеживания изменений файлов и инкрементальной синхронизации с удалёнными серверами.

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

Дальше строится дерево по структуре директорий. Хеш родительского узла — это хеш от конкатенации хешей всех его дочерних узлов. Хеши внутренних узлов зависят от данных или хешей всех их потомков. В итоге всё сходится в корневой узел, хеш которого зависит от ВСЕХ отслеживаемых исходников.

Если изменить один файл, изменения хеша прокатятся вверх по дереву вплоть до корня.

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

В итоге получаем быстрое обнаружение изменений (O(log n)) и экономию трафика, потому что мы пересылаем только те файлы, которые точно были изменены.

👉 @BackendPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
6
Нашли способ быстро превратить уже существующую БД в наглядную админ-панель: basemulti

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

Доступны варианты локального деплоя и деплоя в Vercel в один клик. 👏

👉 @BackendPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Жизненно? Понять эту боль смогут только коллеги из IT 😂

Нашли канал классного IT-комьюнити от компании IT_One, которая занимается заказной разработкой ПО.

Там вы найдете рекомендации по трудоустройству и прокачке скиллов от тех, кто уже стал senior-специалистом в крупных компаниях.

Кстати, ребята иногда делятся горящими вакансиями. Кажется, это шанс начать год с нового листа.

➡️ Подписаться: https://t.me/+StxAZ8l1XQw0MjVi?erid=2W5zFHnCoXv
#реклама
О рекламодателе
😁1
Лучшая альтернатива POSTMAN получила новую версию

Bruno это минималистичный и опенсорсный API-клиент

✓ без проблем с приватностью
✓ коллекции можно синкать через Git
✓ есть Windows, Linux и macOS сборки

usebruno․com

👉 @BackendPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
10👍1