Присоединяйтесь к нашему каналу и погрузитесь в мир Backend-разработки Связь: @devmangx РКН: https://clck.ru/3FobxK
IT_ONE Cup. ML Challenge от IT_ONE и Sk FinTech Hub — создай AI-ассистента, который будет помогать в работе дизайнерам, системным и бизнес-аналитикам. Участвуй онлайн с 12 по 29 апреля и поборись за 1 500 000 рублей.
Регистрация открыта до 11 апреля
Твоя формула победы:
✅ Разбираешься в машинном обучении.
✅ На ты с NLP и LLM.
✅ Концептуально понимаешь принципы работы веб-приложений.
Также приглашаем Backend и Frontend-разработчиков, системных и бизнес-аналитиков, UI/UX-дизайнеров. Участвуй онлайн соло или командой до 5 человек.
Задачи IT_ONE Cup. ML Challenge:
🔤 Динамические контекстные подсказки для системного аналитика.
🔤 AI-генератор дизайн-макетов по описанию требований.
🔤 Система визуализации BPMN-диаграмм.
4 апреля приходи на митап с экспертами соревнования — задай вопросы и узнай больше о задачах.
Создай AI-ассистента, который облегчит выполнение рабочих задач — регистрируйся на IT_ONE Cup. ML Challenge
❤️ Backend Talks от Яндекс 360
17 апреля, Москва, 19:00
Поговорим про три основы, без которых невозможно создавать высоконагруженные сервисы для миллионной аудитории: инфраструктура, архитектура и команда.
В программе:
📌На пути к 9999: принципы и практики построения высоконагруженных сервисов — Игорь Обручев, руководитель группы SRE
📌Эволюция проектирования общих решений в Яндекс 360 — Евгений Ширанков, руководитель команды платформенных сервисов
📌Ценности и культура команды. Почему они важны и как их сохранить в период роста — Роман Акинфеев, руководитель бэкенд-разработки Яндекс 360
Команда Яндекс 360 работает с нагрузками >1 000 000+ RPS и создает продукты которыми пользуются 95+ млн человек каждый месяц — Диск, Почта, Телемост, Мессенджер и другие.
🍻Приходите на митап обсуждать инженерные практики, качественно нетворкаться с разработчиками и классно провести время!
Регистрируйтесь
Крутейшая онлайн-платформа для практики программирования, которая предлагает более 7000 упражнений на 75 различных ЯП
Каждый язык представлен целой дорожкой с задачами, которые помогут разобраться во всех тонкостях шаг за шагом.
А если застрял, можно получить обратную связь от опытных менторов — не всегда сразу, но всегда по делу ✌️
👉 @BackendPortal
SSH-туннелирование – трюк, который позволяет безопасно передавать данные через зашифрованное соединение.
Разберем основные виды
🟡Локальное перенаправление
Хочешь получить доступ к веб-ресурсу на удаленном сервере? Используй:
ssh -L 8080:localhost:80 user@server
http://localhost:8080
, а трафик пойдет через SSH к серверу.ssh -L 8080:server:80 user@bastion
localhost
на bastion
), то тогда команда будет:ssh -L 8080:localhost:80 user@bastion
ssh -R 0.0.0.0:8080:localhost:80 user@gateway
8080
и перенаправлять запросы на твой локальный компьютер.Проектирование надежных микросервисов требует выбора правильных шаблонов для обеспечения производительности, отказоустойчивости и масштабируемости.
Вот основные шаблоны, которые должен знать каждый архитектор.
⏩Шаблон "База данных на сервис"
Каждый микросервис управляет собственной базой данных, что обеспечивает слабую связанность и полное владение данными.
⏩Шаблон "Источник событий"
Сохраняет каждое изменение как событие, а не только последнее состояние. Отлично подходит для журналов аудита и отладки.
⏩Шаблон "API-шлюз"
Выступает в качестве единой точки доступа, которая направляет запросы к микросервисам, обрабатывая такие задачи, как аутентификация и ограничение частоты запросов.
⏩Шаблон "Сага"
Координирует распределенные транзакции, используя последовательность шагов и компенсирующие действия для обработки отказов.
⏩Шаблон "BFF (Backend for Frontend)"
Создает разные бэкенды для веба и мобильных приложений, улучшая производительность и настраивая обработку данных под каждого клиента.
⚡ Новые каналы с вакансиями и стажировками для джунов
В этих каналах публикуются все свежие вакансии и стажировки
🔺 ВАКАНСИИ
Горячие вакансии с привлекательными офферами для джуниор разработчиков, аналитиков, дизайнеров и QA-специалистов.
Стажировки для начинающих специалистов в IT независимо от возраста!
Свежие стажировки для junior специалистов в топовых компании России и мира
Вакансии и стажировки для junior-разработчиков на удалёнке.
Junior вакансии и стажировки в крупнейших IT-компаниях мира: NVidia, Apple, T-банк, Яндекс, Google и т. д.
Эксперименты про трудоустройство в IT, советы для быстрого поиска работы и офферы для джунов.
Язык программирования Go - отличный выбор для создания бэкэнда ваших приложений.
В этом курсе вы создадите фронтэнд React на основе бэкэнда Go.
Вы узнаете, как настроить проект, создать API, обработать логику на стороне сервера и многое другое.
⏩ Источник: смотреть
👉 @BackendPortal
Сила CI/CD:
Пайплайны непрерывной интеграции и непрерывного развертывания (CI/CD) упрощают процесс разработки, автоматизируя тестирование и развертывание, что приводит к более быстрой доставке и улучшенному качеству программного обеспечения.
🍩Начало → Разработчик делает коммит кода.
🍩Автоматизированные тесты → Проверка кода.
❌Если тесты не пройдены → исправление ошибок.
☑Если тесты пройдены → сборка приложения.
🍩Развертывание на staging → запуск интеграционных тестов.
❌Если тесты не пройдены → исправление ошибок.
☑Если пройдены → развертывание в продакшн.
🍩Финал → Приложение успешно развернуто.
👉 @BackendPortal
🇷🇺«Сталинские Соколы» объявляют первый крупнейший в России турнир «Drone-Con» в номинациях:
- Настройка WiFi
- Пилотирование FPV дронов
- Онлайн стратегия «Битва Дронов»
🕙Когда? 11-13 апреля 2025 года
Заезд участников с 10.04.2025
Приз за выход в 1/8 финала в каждой номинации – 300 000 рублей
За победу в номинации:
🥇I место – 3 000 000 рублей
🥈II место – 2 000 000 рублей
🥉III место – 1 000 000 рублей
Пройди заочный онлайн этап до 1 апреля, и получи возможность попасть на очный этап «Drone-Con»!
Подать заявку и узнать подробности – @dronecon
8 алгоритмов балансировки нагрузки, которые вы должны знать:
🍩Round Robin (Круговой метод) – запросы распределяются равномерно между серверами по очереди.
🍩Least Connections (Наименьшее количество соединений) – запрос направляется на сервер с наименьшим числом активных соединений.
🍩Weighted Round Robin (Взвешенный круговой метод) – серверам присваиваются веса, и запросы распределяются с учетом этих весов.
🍩Weighted Least Connections (Взвешенный метод наименьших соединений) – учитывается как число соединений, так и вес сервера.
🍩IP Hash (Хэширование по IP) – запрос направляется на сервер в зависимости от хэша IP-адреса клиента.
🍩Least Response Time (Наименьшее время отклика) – запрос идет на сервер с наименьшим временем ответа.
🍩Random (Случайный выбор) – сервер выбирается случайным образом.
🍩Least Bandwidth (Наименьшая пропускная способность) – запрос идет на сервер с наименьшей текущей загрузкой сети.
👉 @BackendPortal
Нашел для вас мощный инструмент — Apidog
Бесплатная платформа для полного цикла разработки API, объединяющая дизайн, отладку, тестирование, документацию и мокирование в одном месте.
Визуальный редактор для проектирования и отладки API с поддержкой JSON Schema. Автоматизация тестирования и генерация документации — легко
Интеграция на всех этапах разработки API, обеспечивая синхронизацию спецификаций и изменений. 👍
👉 @BackendPortal
Файл содержит вопросы и ответы для собеседований по Git и GitHub.
В нем рассматриваются основные концепции, такие как контроль версий, создание и управление репозиториями, работа с ветками, команды для коммитов, пушей, пулов и мерджей, а также различия между Git и SVN. 📰
⚡Также затрагиваются вопросы управления доступом, разрешения конфликтов и использования стэша
👉 @BackendPortal
Безсерверные вычисления имеют множество преимуществ, таких как отсутствие необходимости вручную управлять или масштабировать серверы.
И в этом подробном руководстве Ифеани обучит вас созданию безсерверного CRUD REST API.
Вы будете использовать Serverless Framework, Node.js и GitHub Actions.
⏩Держи гайд: ссылка
👉 @BackendPortal
Принёс вам удобную шпаргалку по Python 😍
На quickref.me/python всё чётко и по делу — команды, примеры, быстрые подсказки. Никакой воды, только полезный контент.
Учишь Python? Сохраняй, пригодится.
👉 @BackendPortal
Kafka vs Bufstream — В чем разница?
Kafka — это распределенная система обмена сообщениями в модели pub-sub (издатель-подписчик), позволяющая приложениям публиковать и подписываться на потоки данных в реальном времени.
Благодаря высокой пропускной способности, масштабируемости, отказоустойчивости, долговечности и развитой экосистеме, Kafka стала популярным выбором для задач, требующих обработки данных в реальном времени.
Однако Kafka — это сложная и дорогостоящая система.
Bufstream — это полноценная замена Kafka, которая в 8 раз дешевле, гораздо проще в масштабировании и ориентирована на облачную инфраструктуру.
Как и Kafka, Bufstream является распределенной системой pub-sub.
Но в отличие от Kafka, которая требует управления состоянием брокеров, использования реестров схем, выделенных команд администраторов и значительных расходов, Bufstream реализует другой подход, который дает ряд преимуществ:
⏩ Вместо брокеров с хранением состояния и локальных дисков Bufstream использует облачное хранилище объектов, такое как S3 и Apache Iceberg. Это снижает операционные расходы на 800%.
⏩ Встроенная валидация схем на уровне брокера предотвращает попадание некорректных данных в систему.
⏩ gRPC используется для более эффективной сериализации и транспортировки данных.
🟡 Когда Bufstream лучше:
Если критичны низкие затраты, простота управления, масштабируемость и соответствие требованиям безопасности, Bufstream — отличный выбор.
🟡 Когда Kafka лучше:
Если ключевое требование — ультранизкая задержка, и вы готовы платить больше за сложность и операционные расходы, тогда Kafka подойдет лучше.
Ключевые особенности и преимущества Bufstream:
☑ Протестирован Jepsen — единственная облачная реализация Kafka, прошедшая независимое тестирование Jepsen (золотой стандарт для распределенных систем).
☑ Архитектура с приоритетом конфиденциальности — в отличие от Warpstream, Bufstream полностью размещается в вашем облаке без общего метаданных.
☑ Значительное сокращение затрат — снижает операционные расходы и инфраструктурные издержки.
☑ Встроенная валидация схем — предотвращает попадание некорректных данных в систему.
☑ Поддержка Protobuf + gRPC — увеличивает эффективность сериализации и скорость передачи данных.
☑ Не требует внешнего реестра схем — уменьшает сложность системы.
👉 @BackendPortal
Анализ логов в Linux – полезные команды
⏩Найти все строки с "ERROR" в логах
grep "ERROR" /var/log/syslog
grep -i "failed" /var/log/auth.log
awk '{print $1}' /var/log/access.log | sort | uniq
grep -c "timeout" /var/log/nginx/error.log
awk '{print $1, $2, $3}' /var/log/syslog
sed 's/ERROR/ALERT/g' /var/log/syslog
grep "disk full" /var/log/messages | tail -n 10
grep ' 500 ' /var/log/nginx/access.log
grep -v "DEBUG" /var/log/app.log
awk '$3 == "username"' /var/log/app.log
sed -E 's/([0-9]{4})-([0-9]{2})-([0-9]{2})/\2\/\3\/\1/' /var/log/app.log
tail -f /var/log/syslog | grep "ERROR"
📕 Открытый урок по разработке веб-приложений на Scala
На открытом уроке 1 апреля в 20:00 мск мы погрузимся в мир бэкенд-разработки на Scala.
📗 В результате вы:
— Узнаете ключевые аспекты создания современных веб-приложений на Scala;
— Познакомитесь с популярными фреймворками и инструментами для работы с базами данных;
— На практике создадите простое CRUD-приложение для закрепления навыков.
Спикер: Алексей Воронец — руководитель разработки департамента проектных решений и поисковых систем в компании Naumen, эксперт с 14-летним опытом, специализирующийся на Scala и функциональном программировании.
👉 Регистрируйтесь прямо сейчас, чтобы не пропустить мероприятие
https://otus.pw/3X5o/
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Все надоело и пропал интерес, чувствуешь себя амебой и хочется только залипать в телефоне. Бывает?
Психолог взрослого человека - канал для айтишников, у которых периодически опускаются руки и отключается мозг, ибо переработки и постоянная тревожность не приводят к другим исходам.
✔️ Как научиться отвлекаться от работы и отдыхать?
✔️ Как совместить кучу рабочих задач и время с семьей?
✔️ Как справиться с прокрастинацией?
✔️ Как не растерять запал, даже если кажется, что ничего не выходит?
Подписывайтесь на канал @vadimpetrov_psy и научитесь работать без упахивания, выгорания и ущерба для личной жизни!
👨🏻💻 Псс. Заходите в закреп канала - там много полезного, и даже бесплатный мини-курс.
Что такое HTTP Downgrading, зачем его использовать и как это работает?
HTTP/2 является стандартом для большинства веб-приложений в наши дни, однако не редкость, когда серверы на бэкенде все еще используют HTTP/1.1, что может приводить к несоответствиям при разборе запросов между фронтендом и бэкендом.
И вот здесь и появляется HTTP downgrading! Но что это такое?
HTTP downgrading — это процесс принуждения запроса обрабатываться через HTTP/1.1 вместо HTTP/2.
Это позволяет манипулировать тем, как серверы на фронтенде и бэкенде интерпретируют запросы, а также использовать уязвимости, уникальные для разбора HTTP/1.1, такие как атаки Content-Length Transfer-Encoding (CL.TE).
Как понизить HTTP/2 до HTTP/1.1 с помощью Burp Suite 🤔
1️⃣ Откройте Burp Suite и перейдите в Proxy → HTTP History
2️⃣ Найдите запрос, который в данный момент использует HTTP/2.
3️⃣ Отправьте запрос в Repeater
4️⃣ В вкладке Repeater откройте панель "Inspector" → Request Attributes → Protocol
5️⃣ Измените версию HTTP на HTTP/1.1
6️⃣ Нажмите "Send" в Repeater.
Если все прошло успешно, вы получите валидный ответ, подтверждающий, что сервер принимает HTTP/1.1.
Вот и все! Вы только что понизили протокол HTTP и подтвердили, что сервер на фронтенде принимает HTTP/1.1!
👉 @BackendPortal
Что такое предметно-ориентированное проектирование (DDD) и как оно работает?
Программное обеспечение, которое органично интегрируется с бизнес-доменами, приносит организации значительные преимущества.
Оно может оптимизировать операции, улучшать пользовательские функции и предоставлять заинтересованным сторонам актуальную аналитику для быстрого и продуманного принятия решений.
Это подход к разработке ПО, который обеспечивает согласованность между бизнес-экспертами и разработчиками, связывая функциональность программного обеспечения с потребностями бизнеса. 🔥
Основные концепции DDD: 👇
⏩Ограниченные контексты (Bounded Contexts)
Это логическая граница, в пределах которой термины остаются последовательными. Универсальный язык (Ubiquitous Language) служит мостом между технической и бизнес-коммуникацией в этом контексте, позволяя всем участникам говорить на одном языке — это одно из самых мощных преимуществ DDD.
⏩Сущности и объекты-значения (Entities & Value Objects)
Оба играют ключевую роль в точном моделировании бизнес-домена:
🟡Сущности (Entities) — это объекты с уникальной идентичностью, которая сохраняется во времени и в разных состояниях.
🟡Объекты-значения (Value Objects) описывают характеристики, но не имеют концептуальной идентичности. Они неизменяемы (в отличие от сущностей, которые могут менять свое состояние).
⏩Агрегаты (Aggregates)
Это группы взаимосвязанных объектов (сущностей и объектов-значений), которые рассматриваются как единое целое. Они обеспечивают механизм управления и поддержания согласованности внутри набора связанных объектов.
Преимущества DDD:
☑ Согласованность: DDD соединяет бизнес-домены и программное обеспечение, обеспечивая их тесную интеграцию.
☑ Гибкость: Четкие модели домена позволяют легче вносить изменения в соответствии с развивающимися бизнес-требованиями.
☑ Улучшенное взаимодействие: Универсальный язык способствует лучшему пониманию между разработчиками и бизнес-экспертами.
Когда применять DDD:
— Сложные системы: DDD особенно эффективен в сложных доменах с детализированными бизнес-правилами.
— Крупные команды: Обеспечивает единое понимание домена для междисциплинарных команд.
— Быстро развивающиеся бизнесы: Позволяет гибко адаптировать программное обеспечение к изменениям в бизнесе.
Недостатки DDD:
❌ Затраты на внедрение: Проектирование правильных контекстов, сущностей и объектов-значений требует времени.
❌ Сложность: Для простых доменов может оказаться избыточным, требует высокой дисциплины и значительного обучения.
❌ Риск рассинхронизации: Без регулярных консультаций с бизнес-экспертами модель может отдалиться от реальных потребностей бизнеса.
Brain fog - это настоящая эпидемия нашего времени, но есть вещество, которое способно пробудить даже мертвеца..
Alpha GPC + CDP Choline = увеличение скорости и объема электрических импульсов в синапсах головного мозга🧠
Добавка повышает концентрацию внимания и скорость реакции, а так же действует как очень мягкий антидепрессант 🧘♂️
Не оказывает сильный стимулирующий эффект и не нарушает качество сна 💤
Ты не можешь сделать 36 часов в сутках, но ты можешь увеличить скорость своего мышления ⚡️
👇👇👇
ЗАКАЗАТЬ НА WILDBERRIES
Что такое Cross-Origin Resource Sharing (CORS)?
Браузеры используют CORS, чтобы предотвратить загрузку данных с других доменов. Когда браузер делает запрос, он добавляет в заголовок origin (источник запроса). Если запрос идёт на сервер того же источника, браузер его разрешает. Если нет — блокирует.
Как решить проблемы с CORS?
Настроить CORS можно на сервере. Сервер должен добавлять заголовок Access-Control-Allow-Origin в ответ. Этот заголовок должен совпадать с origin из запроса, чтобы браузер разрешил загрузку.
Есть два способа исправить ошибки CORS:
🍩 Настроить сервер для поддержки CORS
Можно разрешить доступ ко всем доменам с Access-Control-Allow-Origin: *
, но это небезопасно. Лучше разрешить запросы только с определённого домена, например:
Access-Control-Allow-Origin: https://somedomain.com
6 ключевых видов тестирования API
⏩ Тестирование рабочих процессов – проверяет, корректно ли работают последовательности API-запросов (например, процесс покупки в интернет-магазине).
⏩ Тестирование производительности – оценивает скорость, стабильность и отзывчивость API под разной нагрузкой.
⏩ Тестирование безопасности – выявляет уязвимости, защищая API от атак и утечек данных (используются penetration testing, fuzz testing).
⏩ Тестирование на основе данных – проверяет API на разных входных данных, чтобы убедиться в корректности работы.
⏩ Тестирование конечных точек – проверяет, правильно ли API-эндпоинты возвращают ответы, коды состояния и ошибки.
⏩ Контрактное тестирование – гарантирует, что взаимодействие между API и его потребителями соответствует установленным соглашениям и не ломается при обновлениях.
Эти методы помогают создать надежное, безопасное и эффективное API!
👉 @BackendPortal
Понимание заголовков REST
Протокол передачи гипертекста (HTTP) включает в себя заголовки, которые передают дополнительную информацию во время HTTP-запросов и ответов.
Сервер и браузер используют HTTP-заголовки для обмена метаданными о документе и данных, передаваемых веб-сервером запрашиваемого сайта.
Различные данные в REST-заголовках могут помочь в поиске и устранении проблем по мере их возникновения. Так как они содержат метаданные, относящиеся к API-запросу и ответу, HTTP-заголовки играют важную роль в этих процессах. Заголовки включают информацию о:
⏩Теле запроса и ответа
⏩Авторизации запроса
⏩Кэшировании ответа
⏩Cookies в ответе
Кроме перечисленных категорий, HTTP-заголовки содержат информацию о различных типах HTTP-соединений, прокси-серверах и других аспектах.
Большинство этих заголовков предназначены для поддержания соединений между клиентами, серверами и прокси, поэтому их тестирование часто не требуется.
В общем случае существуют заголовки запроса и ответа. Мы устанавливаем заголовок запроса при отправке запроса к API и получаем заголовки в ответе.
Общая структура заголовка выглядит как Имя: значение, но может включать несколько значений, разделенных запятыми.
Некоторые распространенные заголовки:
🟡 Authorization – содержит информацию об аутентификации клиента для запрашиваемого ресурса.
🟡 Accept-Charset – сообщает серверу, какие наборы символов поддерживает клиент. Этот заголовок передается вместе с запросом.
🟡 Content-Type – указывает тип медиа-данных в ответе (например, text/html или application/json), что помогает клиенту обработать содержимое ответа.
🟡 Cache-Control – определяет правила кэширования для ответа. Клиент может хранить и повторно использовать кэшированный ответ в течение указанного времени.
Таким образом, заголовки HTTP играют ключевую роль в обеспечении взаимодействия между клиентом и сервером, влияя на авторизацию, обработку данных и кэширование.
👉 @BackendPortal
Нашёл удобный способ анализировать сетевой трафик в Kubernetes — Kubeshark
Открываешь сайт или выполняешь kubectl krew install kubeshark
, и сразу можешь следить за запросами в реальном времени
Полезно для отладки, мониторинга и поиска багов. Работает прямо в кластере и показывает всю сетевую активность между подами.
Удобно для DevOps и тестирования ❌
👉 @BackendPortal
Grafana — это платформа для визуализации и мониторинга данных из разных источников с гибкими дашбордами и оповещениями.
👉 @BackendPortal
Если вы пользуетесь Pandas — ловите шпаргалку по Data Wrangling.
В хорошем качестве тут
👉 @BackendPortal
Хотите прокачать свои навыки в Backend-разработке?
- Самые свежие новости о серверных технологиях, базах данных и облачных решениях.
- Полезные статьи и советы для создания масштабируемых и надежных систем.
- Эксклюзивные материалы, которые помогут вам стать экспертом в Backend.
Не тратьте время на поиск — всё, что нужно для роста в Backend, уже собрано в Цифровая кухня. Подпишитесь сейчас и начните получать ценную информацию каждый день!
👉 Подписаться
Примеры Dockerfile для frontend и backend приложений
🟡Frontend Dockerfile: Использует node:18-alpine, устанавливает зависимости и запускает приложение.
🟡Backend Dockerfile: Использует python:3.11-slim-buster, устанавливает зависимости из requirements.txt и запускает app.py
.
🟡Команды для сборки образов: docker build -t frontend . и docker build -t backend .
🟡Команды для запуска контейнеров: docker run -d --name frontend -p 8080:3000 frontend и docker run -d --name backend -p 8081:5000 backend.
Это базовый пример развертывания веб-приложения с фронтендом на Node.js и бэкендом на Python в Docker.
👉 @BackendPortal