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

Связь: @devmangx

РКН: https://clck.ru/3FobxK
Download Telegram
Локальный S3-совместимый сервер для разработки и тестов.

👉 @BackendPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
2
Этот 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
11
Правила выбора структур данных:

* Небольшие коллекции (<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
👍71
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
8
Нашли способ быстро превратить уже существующую БД в наглядную админ-панель: basemulti

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

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

👉 @BackendPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Лучшая альтернатива POSTMAN получила новую версию

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

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

usebruno․com

👉 @BackendPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
11👍2
в Postgres 18 появился новый возвращаемый полеcет для OLD и NEW данных. куча прикладного кода зависит от того чтобы вставить данные и сразу знать старое и новое состояние. теперь можно сразу подтверждать INSERT и UPDATE без лишних костылей.

👉 @BackendPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
📱 Держите 6 хороших каналов по искусственному интеллекту и программированию для любого уровня!

Выбирай направление:

📱 Нейросети@neuro_prompt

🤖 AI-инструменты @ai_prompt

📱 Python@python_prompt

🤔 InfoSec & Хакинг @infosec_prompt

👩‍💻 IT Новости @it_news

😄 IT Мемы@it_memes

Промпты, обучение, шпаргалки и полезные ресурсы на каждую тему!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
Нашли офигенный способ выучить PostgreSQL в браузере : crunchydata

PostgreSQL-песочница с практическими уроками SQL, транзакциям, индексам, PostGIS и не только

🛌

👉 @BackendPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍4
This media is not supported in your browser
VIEW IN TELEGRAM
Сборник документации множества языков программирования, библиотек и фреймворков в одном интерфейсе

Экономим время ✌️

👉 @BackendPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
5
Бэкапит базы на несколько хранилищ сразу, плюс умеет присылать нотификации.

https://github.com/RostislavDugin/postgresus

👉 @BackendPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍2
Бесплатный опенсорсный Postman-подобный тестер API, который запускается локально. Умеет записывать запросы из браузера и автогенерировать чейненные тесты на Go-бэкенде и туллинге.

👉 @BackendPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
4
Эта open-source система для управления проектами реально впечатляет

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

Если нужен мощный PM-инструмент без дорогих SaaS — стоит глянуть :)

👉 @BackendPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
R-trees это мощная структура для индексации геометрических данных.

Их используют в MySQL, а Postgres применяет похожий на R-tree подход через GiST в PostGIS.

По сути они работают похоже на B-tree: это древовидная структура, где на каждом узле страницы хранится несколько записей. Такой дизайн держит дерево неглубоким и позволяет эффективно искать миллионы элементов на диске. Данные обычно лежат только в листьях, как у B+tree.

Записи в R-tree это ограничивающие прямоугольники. Сами геометрические фигуры обычно сложнее прямоугольников, поэтому на уровне листьев хранят минимальный ограничивающий прямоугольник (MBR) для каждой фигуры, плюс ссылку на полную геометрию, которая лежит отдельно на диске. Родительский узел для листового MBR хранит прямоугольник, который полностью покрывает все дочерние.

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

Ключевое отличие от B-tree: поиск одного прямоугольника может потребовать обхода нескольких путей в дереве. В идеале B-tree даёт O(log n) на поиск, но из-за перекрытий у R-tree худший случай может быть O(n).

R-tree также можно использовать в 3D и выше, обобщая ту же идею ограничивающих регионов.

👉 @BackendPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
👍41
Где получить навыки, для старта карьеры в ИТ?

Развивайтесь в аналитике и разработке на бесплатной программе от экспертов из Т-Банка.

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

А еще:

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

В процессе обучения участники получат шанс пройти собеседование в Т-Банке.

Успейте подать заявку до 23 января
👍1
Автоматизация рабочих процессов с мониторингом серверов: xyops

👉 @BackendPortal
Please open Telegram to view this post
VIEW IN TELEGRAM
😁2