CODERIKK
91 subscribers
68 photos
59 links
Лучший авторский контент 💙
По вопросам: @AgentCoderikkBot
Изучаем Python, SQL и tg-ботов
Download Telegram
Что такое Apache Airflow?

Apache Airflow — это open-source платформа для управления и автоматизации рабочих процессов и потоков данных. Она позволяет планировать, отслеживать и управлять задачами, которые необходимо выполнять в определённое время или при определённых условиях.

🔸Зачем нужен Apache Airflow?

1) Оркестрация рабочих процессов: Airflow упрощает создание и управление сложными пайплайнами данных, где задачи зависят друг от друга.
2) Автоматизация: Позволяет автоматизировать выполнение задач по расписанию, например, ежедневную обработку данных.
3) Мониторинг и управление: Предоставляет визуальные инструменты для отслеживания статуса выполнения задач и управления ими.

🔸Что такое DAG?

DAG (Directed Acyclic Graph) — это основная концепция в Airflow. DAG представляет собой граф, где вершины (задачи) связаны направленными рёбрами, которые показывают порядок их выполнения. Важно, что DAG не содержит циклов, то есть задачи выполняются в определённой последовательности от начала до конца.
Вопросы с собеседований #18

🔹Как в Python реализован механизм управления памятью?

🔸
В Python управление памятью осуществляется с помощью автоматического сборщика мусора (Garbage Collector). Python использует подсчет ссылок и алгоритм циклического сбора мусора для управления памятью. Подсчет ссылок отслеживает количество ссылок на объект, а циклический сборщик обнаруживает и удаляет циклические ссылки, которые не могут быть очищены подсчетом ссылок.

➡️Читайте нас в Telegram и Сетке

#Coderikk #Собеседование #Python
Автоматический сборщик мусора в Python #1

Python — это мощный и удобный язык программирования, и одной из его ключевых особенностей является автоматический сборщик мусора (Garbage Collector).

🔹Как работает сборщик мусора в Python?

🔸Garbage Collector (GC) в Python автоматически управляет памятью, освобождая её от объектов, которые больше не используются программой. Это помогает избежать утечек памяти и улучшить производительность.

🔹Принцип работы

🔸Подсчет ссылок (Reference Counting)
: Python отслеживает количество ссылок на каждый объект в памяти. Когда количество ссылок на объект становится нулевым, память, занимаемая этим объектом, автоматически освобождается.

🔸Сборка циклических ссылок (Cycle Detection)
: Иногда объекты могут ссылаться друг на друга, образуя циклы, которые невозможно удалить с помощью подсчета ссылок. Python использует алгоритм сборки циклических ссылок, чтобы обнаружить и удалить такие циклы.

➡️Читайте нас в Telegram и Сетке

#Coderikk #Собеседование #Python
Автоматический сборщик мусора в Python #2

🔹Особенности GC в Python

🔸Автоматическое управление
: Пользователям не нужно вручную управлять памятью, что упрощает разработку.

🔸Настраиваемый GC: Python предоставляет модули gc, с помощью которых можно контролировать поведение сборщика мусора, включая настройку порогов для запуска сборки.

🔸Сборка циклов: GC эффективно обнаруживает и устраняет циклы ссылок, предотвращая утечки памяти.

Пример использования модуля gc:

import gc

# Включение автоматического сборщика мусора
gc.enable()

# Отключение сборщика мусора
gc.disable()

# Принудительный запуск сборщика мусора
gc.collect()

# Получение информации о текущем состоянии GC
print(gc.get_stats())


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

➡️Читайте нас в Telegram и Сетке

#Coderikk #Python
Вопросы с собеседований #19

🔹Объясните разницу между deepcopy и shallow copy в Python.

🔸
shallow copy создаёт поверхностную копию объекта, что означает копирование только самого объекта, но не вложенных объектов. deepcopy создаёт глубокую копию объекта, включая все вложенные объекты, создавая независимые копии всех уровней.

➡️Читайте нас в Telegram и Сетке

#Coderikk #Собеседование #Python
Вопросы с собеседований #20

🔹Как в Python работают декораторы?

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

def decorator_func(original_func):
def wrapper_func():
print("Something is happening before the function.")
original_func()
print("Something is happening after the function.")
return wrapper_func

@decorator_func
def say_hello():
print("Hello!")

say_hello()



➡️Читайте нас в Telegram и Сетке

#Coderikk #Собеседование #Python
Вопросы с собеседований #21

🔹Как вы можете обработать исключения в Python?

🔸
В Python исключения обрабатываются с помощью конструкции try-except. В блоке try помещается код, который может вызвать исключение, а в блоке except — код для обработки возможных исключений. Можно также использовать finally для кода, который выполнится независимо от того, произошло исключение или нет.

try:
result = 10 / 0
except ZeroDivisionError:
print("Cannot divide by zero.")
finally:
print("This is executed regardless of exceptions.")


➡️Читайте нас в Telegram и Сетке

#Coderikk #Собеседование #Python
Вопросы с собеседований #22

🔹Что такое генераторы и как они работают?

🔸
Генераторы в Python — это функции, которые возвращают итератор и используются для генерации последовательности значений при запросе. Они определяются с помощью ключевого слова yield вместо return, что позволяет сохранять состояние функции между вызовами.

def simple_generator():
yield 1
yield 2
yield 3

gen = simple_generator()
for value in gen:
print(value)


➡️Читайте нас в Telegram и Сетке

#Coderikk #Собеседование #Python
Вопросы с собеседований #23

🔹Объясните разницу между list, tuple и set.

🔸
list — изменяемая последовательность, допускающая дубликаты. tuple — неизменяемая последовательность, также допускающая дубликаты. set — изменяемое множество, не допускающее дубликаты и не гарантирует порядок элементов.


➡️Читайте нас в Telegram и Сетке

#Coderikk #Собеседование #Python
Вопросы с собеседований #24

🔹Как создать класс в Python?

🔸
Класс создаётся с помощью ключевого слова class. В классе могут быть определены методы и атрибуты. Метод __init__ является конструктором класса и вызывается при создании нового объекта. Можно также определить другие методы, такие как str для строкового представления объекта.

class Person:
def __init__(self, name):
self.name = name

def greet(self):
return f"Hello, my name is {self.name}."



➡️Читайте нас в Telegram и Сетке

#Coderikk #Собеседование #Python
Вопросы с собеседований #25

🔹Как Python реализует многопоточность и какие есть ограничения?

🔸
В Python многопоточность реализована с помощью модуля threading. Однако из-за Global Interpreter Lock (GIL) настоящая параллелизация потоков в CPython невозможна. GIL позволяет только одному потоку выполнять Python байт-код в данный момент времени. Для истинной параллельной обработки можно использовать модули multiprocessing или asyncio.


➡️Читайте нас в Telegram и Сетке

#Coderikk #Собеседование #Python
Вопросы с собеседований #26

🔹Что такое lambda функции и когда их стоит использовать?

🔸
lambda функции — это анонимные функции, которые определяются с помощью ключевого слова lambda. Они могут содержать только одно выражение и используются для создания небольших, одноразовых функций, например, в качестве аргумента для функции map или filter.

add = lambda x, y: x + y
print(add(5, 3))


➡️Читайте нас в Telegram и Сетке

#Coderikk #Собеседование #Python
Вопросы с собеседований #27

🔹Что такое SQL и для чего он используется?

🔸
SQL (Structured Query Language) — это язык программирования, используемый для управления и манипуляции данными в базах данных. SQL позволяет выполнять запросы к базе данных, извлекать, обновлять, вставлять и удалять данные, а также управлять структурой базы данных.

➡️Читайте нас в Telegram и Сетке

#Coderikk #Собеседование #SQL
Шардирование в SQL #1

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

🔹Преимущества шардирования

🔸Масштабируемость: Позволяет обрабатывать большие объемы данных и увеличивать производительность базы данных путем добавления новых серверов.

🔸Производительность: Уменьшает нагрузку на один сервер, распределяя запросы и операции между несколькими серверами.

🔸Отказоустойчивость: Повышает отказоустойчивость системы за счет распределения данных и операций между несколькими узлами. Сбой одного узла не приводит к полной недоступности данных.

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

➡️Читайте нас в Telegram и Сетке

#Coderikk #SQL
Шардирование в SQL #2

🔹Основные подходы к шардированию

🔸Горизонтальное шардирование: разделение данных по строкам. Например, при шардировании таблицы пользователей по диапазонам идентификаторов (ID).

🔸Вертикальное шардирование: разделение данных по столбцам. Каждая шарда хранит подмножество столбцов таблицы.

🔸Диапазонное шардирование: данные разделяются на основе значений ключа шарда в определенных диапазонах.

🔸Хэш-шардирование: данные распределяются между шардами на основе хэш-функции, применяемой к ключу шарда.

🔸Географическое шардирование: данные разделяются на основе географической локации.

➡️Читайте нас в Telegram и Сетке

#Coderikk #SQL
Вопросы с собеседований #28

🔹Объясните разницу между INNER JOIN, LEFT JOIN, RIGHT JOIN и FULL JOIN.

🔸INNER JOIN: Возвращает только те строки, которые имеют совпадения в обеих таблицах.
🔸LEFT JOIN: Возвращает все строки из левой таблицы и совпадающие строки из правой таблицы. Если нет совпадений, возвращаются NULL для столбцов правой таблицы.
🔸RIGHT JOIN: Возвращает все строки из правой таблицы и совпадающие строки из левой таблицы. Если нет совпадений, возвращаются NULL для столбцов левой таблицы.
🔸FULL JOIN: Возвращает все строки из обеих таблиц. Если нет совпадений, возвращаются NULL для столбцов отсутствующих строк.

➡️Читайте нас в Telegram и Сетке

#Coderikk #Собеседование #SQL
Вопросы с собеседований #29

🔹Как можно получить уникальные значения из столбца в SQL?

🔸
Используйте оператор DISTINCT, чтобы получить уникальные значения из столбца.

SELECT DISTINCT column_name
FROM table_name;


➡️Читайте нас в Telegram и Сетке

#Coderikk #Собеседование #SQL
Вопросы с собеседований #30

🔹Что такое агрегатные функции и приведите примеры.

🔸
Агрегатные функции выполняют вычисления на наборе значений и возвращают одно значение.

Примеры включают:
🔸COUNT(): Подсчитывает количество строк.
🔸SUM(): Вычисляет сумму значений.
🔸AVG(): Вычисляет среднее значение.
🔸MAX(): Находит максимальное значение.
🔸MIN(): Находит минимальное значение.

➡️Читайте нас в Telegram и Сетке

#Coderikk #Собеседование #SQL
Вопросы с собеседований #31

🔹Как создать временную таблицу и какие у нее ограничения?

🔸
Временные таблицы используются для хранения данных временно в рамках текущего сеанса или транзакции. Они создаются с помощью CREATE TEMPORARY TABLE. Временные таблицы автоматически удаляются после завершения сеанса или транзакции.

CREATE TEMPORARY TABLE temp_table (
id INT,
value VARCHAR(100)
);



➡️Читайте нас в Telegram и Сетке

#Coderikk #Собеседование #SQL
Вопросы с собеседований #32

🔹Как использовать подзапросы в SQL?

🔸
Подзапросы — это запросы, которые выполняются внутри другого запроса. Они могут использоваться в SELECT, INSERT, UPDATE, и DELETE. Подзапросы могут быть в WHERE, FROM или SELECT частях основного запроса.

SELECT employee_id, name
FROM employees
WHERE department_id IN (SELECT department_id FROM departments WHERE location = 'New York');


➡️Читайте нас в Telegram и Сетке

#Coderikk #Собеседование #SQL