Backend Portal | Программирование


Kanal geosi va tili: Rossiya, Ruscha


Присоединяйтесь к нашему каналу и погрузитесь в мир Backend-разработки
Связь: @devmangx
РКН: https://clck.ru/3FobxK

Зарегистрирован в РКН
Связанные каналы  |  Похожие каналы

Kanal geosi va tili
Rossiya, Ruscha
Statistika
Postlar filtri


Если изучаете Kubernetes, стоит посмотреть на этот репозиторий — внутри 24 практические лабораторные работы 😆

Он охватывает

→ Pods, Deployments, ReplicaSets, StatefulSets и DaemonSets
→ развёртывания, откаты и масштабирование на ходу
→ Secrets, ConfigMaps, PV и PVC
→ привязку к узлам, taints и tolerations, RBAC
→ Services, Ingress и Helm
→ настройку кластера через Kubeadm

В каждой лабораторной есть YAML, команды kubectl и полноценное практическое задание.

Выберите одну. Откройте терминал. Начинайте ломать.

Репозиторий — https://github.com/omerbsezer/Fast-Kubernetes

👉 @BackendPortal


Tobi Lütke, сооснователь и CEO Shopify, на выходных сделал открытую реализацию подхода из статьи Cursor «Git at Scale».

Проект называется walgit. Это один бинарный файл на Rust, который можно подключить к любому S3-совместимому объектному хранилищу. Он использует WAL и CAS и при этом не требует отдельной базы данных.

Также есть поддержка bundle-uri, благодаря чему большие Git-репозитории и монорепозитории можно гораздо быстрее скачивать как цепочку статических бандлов.

Плюс добавлен базовый привычный интерфейс.

Исходный код открыт - https://github.com/tobi/walgit

👉 @BackendPortal


Эти заметки — структурированное руководство по собеседованиям по проектированию систем.

Внутри разбираются как базовые подходы к System Design, так и конкретные архитектуры: веб-краулеры, системы уведомлений, платёжные платформы и другие типичные задачи с собеседований.

https://github.com/liquidslr/system-design-notes

👉 @BackendPortal


Создатель PostgreSQL фактически поблагодарил Oracle за успех своей базы данных.

Майкл Стоунбрейкер создал PostgreSQL. Ему уже за 80, а он до сих пор продолжает запускать компании.

Его слова

«Мы должны поблагодарить Oracle за популярность PostgreSQL, потому что когда они купили MySQL, все испугались... Именно тогда и начался подъём PostgreSQL».

Oracle купила MySQL в 2010 году. Разработчики начали мигрировать ещё до того, как компания успела сделать что-то плохое.

Спустя 15 лет Стоунбрейкер считает, что страхи были оправданы.

В сентябре 2025 года Oracle провела масштабные сокращения в основной команде MySQL.

А PostgreSQL тем временем стал самой популярной базой данных среди разработчиков ещё в 2023 году. Microsoft, Google и Amazon построили вокруг его протокола собственные сервисы.

О нынешнем положении MySQL Стоунбрейкер говорит просто

«Исчезает как конкурент».

А главную причину успеха PostgreSQL он объясняет так

«Им управляет группа из 20–30 очень умных суперпрограммистов... Это открытый исходный код в своём лучшем проявлении».

Получается красиво.

Oracle 15 лет подряд случайно строила главное преимущество PostgreSQL.

У него никогда не было одного владельца, которого все могли бы бояться.

👉 @BackendPortal


Когда впервые сталкиваешься с гонками данных и моделью памяти Go, многое выглядит довольно странно.

Например, почему код ниже вообще может не работать?

Официальное описание модели памяти Go довольно большое и сложное, поэтому автор решил объяснить всё намного проще.

И тема оказалась куда интереснее, чем кажется — через неё хорошо видно, как Go на самом деле работает с памятью и горутинами.

https://func25.dev/posts/go-memory-visibility/

👉 @BackendPortal


Подзапросы в SQL сначала могут казаться запутанными, но на деле это просто запросы, которые передают данные другому запросу.

В этой статье Абдулла объясняет, как работают подзапросы и где они используются в SQL.

Разбираются некоррелированные и коррелированные подзапросы, производные столбцы и таблицы, а также операторы IN, ANY, ALL, EXISTS и многое другое.

https://freecodecamp.org/news/how-to-work-with-subqueries-in-sql/

👉 @BackendPortal


Shell Gym – интерактивный тренажёр командной строки Linux, созданный на основе многолетнего опыта преподавания. По сути, автор выделил ядро iximiuz Labs и превратил его в отдельный демон.

https://github.com/iximiuz/shellgym

👉 @BackendPortal


Video oldindan ko‘rish uchun mavjud emas
Telegram'da ko‘rish
Вам доклады по Go или Java? VK приглашает на митап с двойной начинкой
26 августа VK собирает Go- и Java-инженеров, чтобы прокачать знания.

В программе два трека — Go и Java, по три доклада в каждом.

Трек Go:
• «Компиляция Go в динамическую либу, или как мы ускорили выкатку фичи в два раза, но нам не понравилось», Михаил Кичигин, бэкенд-разработчик, Avito Tech
• «Go-платформа VK: как мы построили единую основу для создания Go-сервисов», Александр Апанасенко, руководитель команды SDK Backend, VK
• «Почтальон от Kubernetes до Palo Alto. Как осуществляется доставка информации об адресах», Дарья Кулькина, бэкенд-разработчик, Точка Банк

Трек Java:
• «Перформанс-трюки в поисковой платформе Ozon», Пётр Портнов, ведущий разработчик среднего поиска, Ozon
• «Архитектура современного движка платёжной системы и переход к новой архитектуре», Игорь Крикунов, технический лидер разработки DBC, Альфа-Банк
• «Переход от федерации S3-кластеров в пользу коммунального и мультитенантного кластера», Кирилл Боблак, ведущий разработчик One-cloud, VK

А ещё будет мастер-класс по прокачке навыка, который сделает вас звездой любого вечера, и афтепати, чтобы обсудить доклады в неформальной обстановке.

Встречаемся в 17:00, начало в 18:00. Участие бесплатное, регистрация обязательна.


С Lazydocker работать с Docker становится заметно проще

Lazydocker – это опенсорс TUI для управления Docker и Docker Compose прямо из терминала.

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

github.com/jesseduffield/lazydocker

👉 @BackendPortal


20 Kubernetes-челленджей

Итак, вот 20 вопросов (и ответов):

1. Подсчёт endpoints

2. Ждём чуда

3. Я сказал стоп

4. Проектирование shared-кластеров

5. Kernel panic

6. Прыгай, кролик

7. Сколько — это слишком много

8. Держим свет включённым

9. Прожорливый etcd

10. Умножение pod’ов

11. В одиночку

12. Rollin’

13. All you can eat

14. Bounce

15. В кроличью нору

16. Throttled

17. Липкий бардак

18. Жив или мёртв

19. Связанный по рукам

20. Один, чтобы связать их всех


Вы можете использовать эти задания, чтобы прокачать свои знания, как (очень сложные) вопросы на собеседованиях или чтобы подготовиться к интервью

👉 @BackendPortal


Репозиторий TypeScript больше не на JavaScript. Теперь он на Go.

TypeScript 7 только что влили в основную ветку.

✓ Нативный компилятор — до 10 раз быстрее
✓ Значительная часть JavaScript-кода уходит в прошлое

Конец одной эпохи. И начало другой:

https://github.com/microsoft/TypeScript/pull/63763


Разработчику стоит знать основные концепции системного дизайна.

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

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

https://freecodecamp.org/news/learn-system-design-principles/

👉 @BackendPortal


Этот репозиторий на GitHub собрал больше 1000 бесплатных публичных API практически на любой случай.

Финансы, погода, карты, музыка, игры, машинное обучение, крипта, транспорт, наука, безопасность и десятки других категорий — всё собрано в одном месте.

Полезная штука, если нужен готовый API для пет-проекта, прототипа или тестирования идеи.

https://github.com/public-apis/public-apis

👉 @BackendPortal


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

Огромный открытый гайд со всем, что нужно для старта и дальнейшего изучения self-hosting:

Docker, Kubernetes, базы данных, LLM, сети, Raspberry Pi, Home Assistant, безопасность, программирование и ещё куча всего.

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

Источник: github.com/mikeroyal/Self-Hosting-Guide

👉 @BackendPortal


Бенчмарки – оружие массового заблуждения?

E2E-бенчмарк может показать впечатляющие цифры, но при этом тестовые сценарии расходятся с реальностью. Что с этим делать расскажет Антон Курако на JVM Day от Т-Банка – конференции для Java-, Scala- и Kotlin-разработчиков, архитекторов и тимлидов. Спикер объяснит, где заканчивается полезное измерение и начинается погоня за красивыми показателями, а также как проверять производительность так, чтобы не стать жертвой собственного графика.

Еще в программе – доклад Сергея Петрелевича о Mechanical Sympathy. На примере Spring Boot MVC он покажет, как такой подход помогает добиться большей скорости с помощью простых решений и готовых библиотек. Александр Ланцов разберет разные модели конкурентного программирования после появления Virtual Threads, а Андрей Кулешов поделится последними новостями из мира JVM-языков.

После деловой программы начнется афтепати с играми, ИТ-квизом и диджей-сетом на виниле. Количество мест на ивент ограничено, поэтому есть смысл зарегистрироваться заранее. Пишите, если пойдете, в комментах: тем, кто тоже собирается на JVM Day, будет проще вас найти и организовать совместный поход.

👉 @BackendPortal


Импортируете CSV в Postgres? Используйте COPY или \copy.

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

Что важно знать:

FORMAT csv
Включает стандартный разбор CSV: запятые, поля в кавычках и экранированные кавычки.

Список целевых столбцов
Порядок столбцов в CSV редко совпадает с таблицей. Всегда указывайте целевые столбцы в том порядке, в котором они идут в файле. Postgres сопоставляет их по позиции, а не по имени из заголовка CSV.

HEADER / HEADER n
Пропускает строки заголовка. Обычный HEADER пропускает первую строку. Ожидается, что Postgres 19 позволит передавать число, например HEADER 2, чтобы пропускать несколько начальных строк.

DEFAULT 'string'
Позволяет сопоставить специальную строку в CSV, например '__DEFAULT__', с выражением DEFAULT соответствующего столбца.

Неуказанные столбцы
Столбцы таблицы, которые не указаны в списке целевых столбцов, автоматически получают DEFAULT или NULL.

Лишние столбцы в CSV
Postgres выдаст ошибку, если в CSV больше полей, чем указано целевых столбцов. Обрежьте файл или сначала загрузите данные в более широкую промежуточную таблицу.

NULL-значения
В формате csv стандартным представлением NULL является пустая строка без кавычек. Это можно изменить через NULL 'string'.

Обработка ошибок через ON_ERROR и REJECT_LIMIT
Исторически COPY останавливался на первой ошибке преобразования. В новых версиях появились:

• ON_ERROR ignore в Postgres 17 — пропускает некорректные строки и сообщает их количество
• REJECT_LIMIT n в Postgres 18 — задаёт максимальное число плохих строк при ON_ERROR ignore, после которого импорт будет остановлен
• ON_ERROR set_null в Postgres 19 — заменяет некорректное поле на NULL вместо того, чтобы отбрасывать всю строку

👉 @BackendPortal


Linux 101: Практика по управлению хранилищами

Отработайте основы управления хранилищами в Linux на серии практических заданий – от монтирования существующих файловых систем до разметки дисков и автоматизации их подготовки:

- Смонтировать диск с уже существующими данными и прочитать его содержимое
https://labs.iximiuz.com/challenges/storage-simple-mount

- Создать файловую систему ext4 на неформатированном диске
https://labs.iximiuz.com/challenges/storage-simple-format

- Создать таблицу разделов GUID Partition Table (GPT) на пустом диске
https://labs.iximiuz.com/challenges/storage-simple-partition-table

- Разбить диск на несколько разделов и отформатировать их в ext4 и Btrfs
https://labs.iximiuz.com/challenges/storage-partition-drive

- Смонтировать существующую директорию по новому пути с помощью bind mount
https://labs.iximiuz.com/challenges/storage-bind-mount

- Настроить постоянное монтирование файловой системы, чтобы оно сохранялось после перезагрузки
https://labs.iximiuz.com/challenges/storage-persistent-mount

- Автоматизировать подготовку диска с помощью shell-скрипта
https://labs.iximiuz.com/challenges/storage-provision-drive-script


👉 @BackendPortal


Илон теперь взялся за Microsoft!!

Cursor планирует убить GitHub.

Вчера GitHub не работал семь с половиной часов. Сайт, Actions, Copilot, слияние кода — всё лежало. О сбое сообщили 15 000 разработчиков.

Технический директор GitHub признал, что они закладывали запас мощностей в 10 раз, а в итоге поняли, что нужен запас в 30 раз. Теперь GitHub арендует серверы у AWS — крупнейшего облачного конкурента Microsoft.

И в тот же день Cursor запустил Origin.

👉 @BackendPortal


На одном собеседовании по системному дизайну я использовал Kafka.
На другом — Redis.
На ещё одном — S3.
На ВСЕХ собеседованиях по системному дизайну я использовал базы данных.

Базы данных — основа любой архитектуры независимо от масштаба, стека или предметной области.

Если вы понимаете, как данные хранятся, запрашиваются, индексируются, реплицируются и партиционируются, то вы уже понимаете 70% системного дизайна.

Не отвлекайтесь на каждый новый модный компонент. Очереди, кэши и оркестраторы приходят и уходят.

А базы данных остаются.

Реляционные, NoSQL, временные ряды, векторные базы — подходы меняются, но принципы остаются теми же:

- пути чтения и записи
- индексация и кэширование
- транзакции и изоляция
- репликация и партиционирование

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

Изучайте базы данных глубоко.

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

👉 @BackendPortal


Microsoft открыла исходный код одного из лучших из своих инструментов для анализа данных с помощью ИИ.

Он называется Data Formulator.

Подключите любой источник — CSV, Postgres, BigQuery или даже URL с актуальными данными, а затем создавайте графики с помощью сочетания перетаскивания и обычного языка.

ИИ-агент сам пишет SQL и выполняет преобразования, а затем выдаёт график, который можно редактировать.

Можно перетаскивать поля на X/Y/Color, закреплять очищенный результат, чтобы последующие запросы не возвращались к исходным данным, создавать ответвления от любого графика для изучения других вариантов и подключать актуальные данные с автоматическим обновлением.

Используйте ключ своей модели, и всё будет работать локально.

👉 @BackendPortal

20 ta oxirgi post ko‘rsatilgan.