#Собес #deployment #probe #resource_limits
🤔 Каковы лучшие практики развертывания приложений в Kubernetes?
💬 Кратко:
Чтобы правильно развернуть приложение в Kubernetes, следует:
- Использовать декларативный подход (Deployment, Helm).
- Разделять сервисы по разным namespace.
- Настраивать liveness и readiness probe для мониторинга состояния Pod-ов.
- Определять resource limits и requests для оптимального распределения ресурсов.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🤔 Каковы лучшие практики развертывания приложений в Kubernetes?
💬 Кратко:
Чтобы правильно развернуть приложение в Kubernetes, следует:
- Использовать декларативный подход (Deployment, Helm).
- Разделять сервисы по разным namespace.
- Настраивать liveness и readiness probe для мониторинга состояния Pod-ов.
- Определять resource limits и requests для оптимального распределения ресурсов.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
#tool #графы
📚 Терялся в собственном коде?
Встречай Gitvizz, инструмент, который мгновенно превращает кодовую базу в интерактивные графы, чтобы наглядно увидеть, как всё связано
Перейти к материалу
👉 База вопросов 👉 Новости
📚 Терялся в собственном коде?
Встречай Gitvizz, инструмент, который мгновенно превращает кодовую базу в интерактивные графы, чтобы наглядно увидеть, как всё связано
Перейти к материалу
👉 База вопросов 👉 Новости
👍1
Forwarded from YeaHub
1. Миграция на Next.js
Мы перевели публичную часть проекта на Next.js, а дашборд оставили на React.js. Основные работы почти завершены — сейчас занимаемся тестированием и финальными правками.
В процессе столкнулись с рядом инфраструктурных вызовов: текущих ресурсов сервера оказалось недостаточно под новые проекты, поэтому пришлось масштабироваться. Впереди также большая работа по настройке SEO.
2. Сервис для лайвкодинга
Мы разрабатываем сервис лайвкодинга — аналог LeetCode с задачами российских компаний с реальных собеседований. У проекта большие планы:
— проведение контестов,
— обучающие модули,
— курс по алгоритмам,
— ИИ-помощник с построчным разбором решений,
— челленджи и соревнования между пользователями (пока держим в секрете).
Базовая версия сервиса уже готова и проходит тестирование. Совсем скоро — релиз.
3. Сервис уведомлений
Мы начали разработку сервиса уведомлений, который объединит всю нашу экосистему: платформу, Telegram-каналы и бота.
В Telegram будут публиковаться:
— новые собеседования,
— вопросы и задачи,
— статьи и подборки,
— анонсы,
— вакансии,
— статистика с HH.
Наша цель — сделать каналы максимально полезными, чтобы вы всегда были в курсе обновлений и нового контента.
Дополнительно
В работе также находится сервис тестов с вариантами ответов и системой разделения вопросов по темам — для будущего роадмапа. Пока эти направления развиваются в «лайт»-режиме.
Параллельно мы готовимся к запуску нового крупного сервиса, связанного с поиском работы. Он откроет для нас новые возможности и направления развития. Сейчас активно прорабатываем концепцию и архитектуру — идей очень много.
P.S. Новогодние скидки продолжают действовать до запуска сервиса лайвкодинга. После релиза цены увеличатся в 2 раза — сейчас самое выгодное время подключиться и поддержать нас.
👉 Членство YeaHub
Впереди много интересного. Спасибо, что вы с нами.✊🏻
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес #denormalization #optimization #database
🤔 Где может быть полезно отсутствие нормализации?
💬 Кратко:
Отсутствие нормализации (денормализация) полезно в системах, где важнее скорость чтения данных, чем их целостность и эффективность записи. Это часто встречается в хранилищах данных и системах бизнес-аналитики, где выполняются сложные аналитические запросы. Денормализация уменьшает количество JOIN-операций между таблицами, что ускоряет выполнение запросов. Она также применяется в базах данных, оптимизированных для записи, где данные редко изменяются. Однако это требует более тщательного контроля за целостностью данных на уровне приложения.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🤔 Где может быть полезно отсутствие нормализации?
💬 Кратко:
Отсутствие нормализации (денормализация) полезно в системах, где важнее скорость чтения данных, чем их целостность и эффективность записи. Это часто встречается в хранилищах данных и системах бизнес-аналитики, где выполняются сложные аналитические запросы. Денормализация уменьшает количество JOIN-операций между таблицами, что ускоряет выполнение запросов. Она также применяется в базах данных, оптимизированных для записи, где данные редко изменяются. Однако это требует более тщательного контроля за целостностью данных на уровне приложения.
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Потоковая обработка данных. Как еще можно применять генераторы в Python
Генераторы стали основой для работы с непрерывными потоками информации: live-метрики, события IoT, стримы логов и real-time аналитика
Например генератор потока данных от сенсора
Фильтрация + агрегация на лету
Применение в мониторинге систем
Ключевые преимущества такого подхода:
1. Композируемость — генераторы легко объединяются в цепочки
2. Ресурсная эффективность — не храним полные массивы данных
3. Раннее обнаружение проблем — многие проблемы видно сразу, а не после обработки всего массива
⚡️ Генераторы позволяют обрабатывать данные в момент их появления, что критично для систем, в которых нужно отслеживать данные в реальном времени
⭐️ Пост Guru Python:
Сергей Филичкин
Генераторы стали основой для работы с непрерывными потоками информации: live-метрики, события IoT, стримы логов и real-time аналитика
Например генератор потока данных от сенсора
import time
import random
def sensor_stream(sensor_id):
"""Поток показаний сенсора"""
value = 50.0
while True:
value += 1 # Новое показание
yield {
'sensor': sensor_id,
'value': value,
'timestamp': time.time()
}
time.sleep(1) # Задержка между измерениями
Фильтрация + агрегация на лету
def process_stream(stream, max_value=100):
"""Фильтрует аномалии и считает среднее за последние 5 значений"""
buffer = []
for point in stream:
if 0 < point['value'] < max_value: # Фильтрация
buffer.append(point['value'])
buffer = buffer[-5:] # Последние 5 значений
point['avg'] = sum(buffer) / len(buffer)
yield point
Применение в мониторинге систем
# Создаём поток данных
stream = sensor_stream('server_temp')
processed = process_stream(stream)
# Мониторим
for point in processed:
print(f"{point['sensor']}: {point['value']}°C (avg: {point['avg']:.1f})")
if point['avg'] > 30:
print("⚠️ Внимание")
Ключевые преимущества такого подхода:
1. Композируемость — генераторы легко объединяются в цепочки
2. Ресурсная эффективность — не храним полные массивы данных
3. Раннее обнаружение проблем — многие проблемы видно сразу, а не после обработки всего массива
⚡️ Генераторы позволяют обрабатывать данные в момент их появления, что критично для систем, в которых нужно отслеживать данные в реальном времени
Сергей Филичкин
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2🔥1
#Собес #scrape #metrics #prometheus
🤔 Middle Python Backend-разработчик в компанию ОКБ
Техническое собеседование. Вилка 220к. Много тупых и ненужных вопросов на второстепенные технологии.
💬 Вопросы:
- Что такое Redis и как он используется?
- Какие инструменты используются для мониторинга? (Prometheus, Grafana, Sentry)
- Как Redis может помочь в кэшировании данных?
- Разница микросервисов и монолита
- Каковы преимущества и недостатки использования ORM, такой как SQLAlchemy?
👉 Все вопросы из этого собеседования (15)
📣 Хочешь больше собесов?
Подпишись на наш главный канал
🤔 Middle Python Backend-разработчик в компанию ОКБ
Техническое собеседование. Вилка 220к. Много тупых и ненужных вопросов на второстепенные технологии.
💬 Вопросы:
- Что такое Redis и как он используется?
- Какие инструменты используются для мониторинга? (Prometheus, Grafana, Sentry)
- Как Redis может помочь в кэшировании данных?
- Разница микросервисов и монолита
- Каковы преимущества и недостатки использования ORM, такой как SQLAlchemy?
👉 Все вопросы из этого собеседования (15)
📣 Хочешь больше собесов?
Подпишись на наш главный канал
#Собес #gitignore
🤔 Что делает файл .gitignore?
💬 Кратко:
Файл
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🤔 Что делает файл .gitignore?
💬 Кратко:
Файл
.gitignore определяет файлы и папки, которые Git должен игнорировать. Это используется для исключения временных файлов, логов, зависимостей, сгенерированных файлов и других ненужных элементов.📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
#podcast #всё
📚 Подкасты Y_LAB
Здесь вы найдете разнообразный IT-контент: от глубоких технических обсуждений до увлекательных и расслабляющих бесед. Наши эпизоды охватывают широкий спектр тем, связанных с разработкой и новейшими технологиями, чтобы каждый разработчик нашел что-то для себя. Присоединяйтесь к нам, чтобы углубить свои знания, оставаться в тренде и вдохновляться новыми идеями!
Перейти к материалу
👉 База вопросов 👉 Новости
📚 Подкасты Y_LAB
Здесь вы найдете разнообразный IT-контент: от глубоких технических обсуждений до увлекательных и расслабляющих бесед. Наши эпизоды охватывают широкий спектр тем, связанных с разработкой и новейшими технологиями, чтобы каждый разработчик нашел что-то для себя. Присоединяйтесь к нам, чтобы углубить свои знания, оставаться в тренде и вдохновляться новыми идеями!
Перейти к материалу
👉 База вопросов 👉 Новости
#Собес #aenter #aexit
🤔 Какие методы используются в асинхронном контекстном менеджере
💬 Кратко:
Асинхронный контекстный менеджер использует два метода:
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
🤔 Какие методы используются в асинхронном контекстном менеджере
💬 Кратко:
Асинхронный контекстный менеджер использует два метода:
__aenter__ и __aexit__. Они являются асинхронными и возвращают корутины. __aenter__ вызывается при входе в async with. __aexit__ вызывается при выходе из блока, даже если произошла ошибка. Эти методы позволяют управлять ресурсами безопасно.📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Хочешь получать больше таких разборов?
Подпишись на наш главный канал
Когда действительно нужны итераторы в python
И первое с чего нужно начать — итераторы нужны не ради экономия памяти, а они нужны ради контроля над чтением данных
Самый простой пример:
Такой объект читает данные по одному элементу и запоминает позицию
Т.е. состояние хранится внутри и повторно пройтись по данным нельзя
Итератор — это одноразовый поток
В целом можно сделать и через генератор:
Но так стоит делать в следующих ситуациях:
- нет необходимости возвращаться назад
- нет внешних эффектов
- не нужно управление процессом чтения
Но как только появится задача вроде "продолжить с места последнего падения" или "повторить последний шаг" — с генератором может быть больше проблем, чем пользы
Как можно сохранить позицию, например:
Так работают пакетные обработки, конвейеры данных и повторные запуски после ошибок
А асинхронный вариант может выглядеть так:
Если подытожить:
Генератор — удобный синтаксис
Итератор — инструмент управления
Если контроль над данными и позициями не нужен — не усложняйте код, можете просто использовать генератор
⭐️ Пост Guru Python:
Сергей Филичкин
И первое с чего нужно начать — итераторы нужны не ради экономия памяти, а они нужны ради контроля над чтением данных
Самый простой пример:
class DataStream:
def __init__(self, source):
self.source = source
self.pos = 0
def __iter__(self):
return self
def __next__(self):
if self.pos >= len(self.source):
raise StopIteration
value = self.source[self.pos]
self.pos += 1
return value
Такой объект читает данные по одному элементу и запоминает позицию
Т.е. состояние хранится внутри и повторно пройтись по данным нельзя
stream = DataStream([1, 2, 3])
list(stream) # [1, 2, 3]
list(stream) # []
По сути если объект можно читать сколько угодно раз — это скорее коллекция
А если можно прочитать только один раз — это поток
Итератор — это одноразовый поток
В целом можно сделать и через генератор:
def stream(data):
for x in data:
yield x
Но так стоит делать в следующих ситуациях:
- нет необходимости возвращаться назад
- нет внешних эффектов
- не нужно управление процессом чтения
Но как только появится задача вроде "продолжить с места последнего падения" или "повторить последний шаг" — с генератором может быть больше проблем, чем пользы
Как можно сохранить позицию, например:
class CheckpointStream(DataStream):
def checkpoint(self):
return self.pos
def restore(self, pos):
self.pos = pos
stream = CheckpointStream([100, 200, 300])
print(next(stream)) # 100
saved = stream.checkpoint()
print(next(stream)) # 200
stream.restore(saved)
print(next(stream)) # снова 200
Так работают пакетные обработки, конвейеры данных и повторные запуски после ошибок
А асинхронный вариант может выглядеть так:
class AsyncStream:
def __aiter__(self):
return self
async def __anext__(self):
...
# Дальше обычный цикл:
async for item in stream:
...
Если подытожить:
Генератор — удобный синтаксис
Итератор — инструмент управления
Если контроль над данными и позициями не нужен — не усложняйте код, можете просто использовать генератор
Сергей Филичкин
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2🔥1
#Собес #hash #idempotency #index
🤔 Middle+ Python Backend-разработчик в компанию GoSolve
Техническое собеседование в USA компанию. Вилка 6500$.
💬 Вопросы:
- Что такое FastAPI и какие у него ключевые особенности?
- Что произойдёт, если перед корутиной не использовать await?
- В чём заключаются ключевые различия между FastAPI и Django, и в каких случаях предпочтительно использовать каждый из этих фреймворков?
- Как интегрировать сторонние API и какие подходы позволяют корректно обрабатывать входящие webhook-события?
- Как следует действовать, если во входящем событии отсутствует идентификатор, но необходимо обеспечить идемпотентную обработку без повторного выполнения действий?
👉 Все вопросы из этого собеседования (12)
📣 Хочешь больше собесов?
Подпишись на наш главный канал
🤔 Middle+ Python Backend-разработчик в компанию GoSolve
Техническое собеседование в USA компанию. Вилка 6500$.
💬 Вопросы:
- Что такое FastAPI и какие у него ключевые особенности?
- Что произойдёт, если перед корутиной не использовать await?
- В чём заключаются ключевые различия между FastAPI и Django, и в каких случаях предпочтительно использовать каждый из этих фреймворков?
- Как интегрировать сторонние API и какие подходы позволяют корректно обрабатывать входящие webhook-события?
- Как следует действовать, если во входящем событии отсутствует идентификатор, но необходимо обеспечить идемпотентную обработку без повторного выполнения действий?
👉 Все вопросы из этого собеседования (12)
📣 Хочешь больше собесов?
Подпишись на наш главный канал
🔥2
#Собес #seq_scan #index #b-tree
🤔 Если в запросе Seq Scan по полю с датой, что это значит? Какой индекс накинуть на дату и почему? (B-tree vs Hash).
💬 Кратко:
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
🤔 Если в запросе Seq Scan по полю с датой, что это значит? Какой индекс накинуть на дату и почему? (B-tree vs Hash).
💬 Кратко:
Seq Scan (sequential scan) means что база данных читает всю таблицу для выполнения запроса, что медленно для больших таблиц. Для поля с датой следует создать B-tree индекс, потому что B-tree поддерживает range queries (например, поиск по периоду), while Hash индекс only supports equality checks.📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
👍2
#tool #профиль
📚 Awesome GitHub Profile: ваш профессиональный бренд в цифровом мире
Это уникальный инструмент для персонализации вашего GitHub-профиля, который поможет вам создать впечатляющее портфолио и выделиться среди других разработчиков.
Перейти к материалу
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
📚 Awesome GitHub Profile: ваш профессиональный бренд в цифровом мире
Это уникальный инструмент для персонализации вашего GitHub-профиля, который поможет вам создать впечатляющее портфолио и выделиться среди других разработчиков.
Перейти к материалу
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #typing #static_analysis #mypy
🤔 Плюсы и минусы типизации в Python
💬 Кратко:
Типизация помогает избежать ошибок и улучшает автодополнение. Однако Python остаётся динамическим языком, и типы не проверяются во время исполнения. Главный плюс — читаемость и поддержка. Минус — добавление "шума" и необходимость использования внешних инструментов (например,
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
🤔 Плюсы и минусы типизации в Python
💬 Кратко:
Типизация помогает избежать ошибок и улучшает автодополнение. Однако Python остаётся динамическим языком, и типы не проверяются во время исполнения. Главный плюс — читаемость и поддержка. Минус — добавление "шума" и необходимость использования внешних инструментов (например,
mypy).📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#Собес #python #dict #solid
🤔 Middle Python (Fast API) Backend разработчик в компанию НПФ Будущее
Техническое собеседование. Весна 2025.
💬 Вопросы:
- Какие есть типы данных в Python?
- Что такое абстрактные классы?
- Как реализовать транзакции через SQL-запросы?
- Для нагрузочного тестирования нужно добавить 10,000 клиентов в базу данных. Как бы вы это сделали?
- Использовали ли Redis для Celery?
👉 Все вопросы из этого собеседования (16)
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
🤔 Middle Python (Fast API) Backend разработчик в компанию НПФ Будущее
Техническое собеседование. Весна 2025.
💬 Вопросы:
- Какие есть типы данных в Python?
- Что такое абстрактные классы?
- Как реализовать транзакции через SQL-запросы?
- Для нагрузочного тестирования нужно добавить 10,000 клиентов в базу данных. Как бы вы это сделали?
- Использовали ли Redis для Celery?
👉 Все вопросы из этого собеседования (16)
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
❤1
#Собес #sql #postgres #database
🤔 Что такое транзакция в базе данных? + ACID
💬 Кратко:
Транзакция — это набор операций, выполняемых как единое целое. Гарантирует ACID (атомарность, согласованность, изоляция, долговечность).
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
🤔 Что такое транзакция в базе данных? + ACID
💬 Кратко:
Транзакция — это набор операций, выполняемых как единое целое. Гарантирует ACID (атомарность, согласованность, изоляция, долговечность).
📌 Полный разбор + примеры использования — на платформе:
👉 Перейти к разбору
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
#repository #собес
📚 Interactive Coding Challenges от Donne Martin
Более 120 интерактивных задач по кодированию Python (алгоритмы и структуры данных) — поставляется с картами программы для запоминания Anki.
Перейти к материалу
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
📚 Interactive Coding Challenges от Donne Martin
Более 120 интерактивных задач по кодированию Python (алгоритмы и структуры данных) — поставляется с картами программы для запоминания Anki.
Перейти к материалу
📣 Все для прокачки навыков:
✅ Анонсы → канал
✅ Комьюнити → чат
✅ База задач и вопросов → платформа
Forwarded from YeaHub
👨🏻💻 Сервис лайвкодинга в YeaHub
Фактически — релиз уже состоялся.
Но честно: мы не успели загрузить ту огромную базу задач, которую планировали, и ещё не всё успели полноценно протестировать.
Поэтому до 23 февраля работаем в режиме «вместе доделываем продукт»:
— мы активно добавляем задачи и чиним баги, все
— пока тестируем, все задачи открыты, после этого примерно 50% закроем для членов
— вы решаете, находите проблемы, пишете в поддержку и даёте фидбек
— ну и оформляете подписку 😜
Что уже есть:
• база реальных задач с собеседований
• JavaScript / Python / Java / Go
• удобный редактор и проверка решений
Что скоро:
• связь задач с компаниями и коллекциями собеседований (не успели в этот релиз)
• другие языки
• контесты
• обучающие модули и курс по алгоритмам
• AI-разбор решений построчно
• челленджи и соревнования
👉 Задачи: https://yeahub.ru/dashboard/tasks
👉 Членство: https://yeahub.ru/dashboard/settings#select-tariff
Новогодние цены действуют только до полноценного запуска. После — x2.
Сейчас лучший момент подключиться и поддержать проект.
Спасибо, что помогаете нам запустить это правильно✊🏻🚀 💪
Фактически — релиз уже состоялся.
Но честно: мы не успели загрузить ту огромную базу задач, которую планировали, и ещё не всё успели полноценно протестировать.
Поэтому до 23 февраля работаем в режиме «вместе доделываем продукт»:
— мы активно добавляем задачи и чиним баги, все
— пока тестируем, все задачи открыты, после этого примерно 50% закроем для членов
— вы решаете, находите проблемы, пишете в поддержку и даёте фидбек
— ну и оформляете подписку 😜
Что уже есть:
• база реальных задач с собеседований
• JavaScript / Python / Java / Go
• удобный редактор и проверка решений
Что скоро:
• связь задач с компаниями и коллекциями собеседований (не успели в этот релиз)
• другие языки
• контесты
• обучающие модули и курс по алгоритмам
• AI-разбор решений построчно
• челленджи и соревнования
👉 Задачи: https://yeahub.ru/dashboard/tasks
👉 Членство: https://yeahub.ru/dashboard/settings#select-tariff
Новогодние цены действуют только до полноценного запуска. После — x2.
Сейчас лучший момент подключиться и поддержать проект.
Спасибо, что помогаете нам запустить это правильно✊🏻
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👎2🔥1🤡1🥱1🤝1