🐍⚙️ Python + Docker совет:
Не устанавливай зависимости в образ на «сыром» pip install — используй фиксированные версии и слой кеширования. Правильный паттерн:
1) сначала COPY requirements.txt
2) затем RUN pip install -r requirements.txt
3) потом COPY исходники
Так Docker кеширует слой с зависимостями — при изменении кода пересобирается только последний слой, а не весь образ. Это ускоряет CI/CD в разы и делает сборки предсказуемыми.
Не устанавливай зависимости в образ на «сыром» pip install — используй фиксированные версии и слой кеширования. Правильный паттерн:
1) сначала COPY requirements.txt
2) затем RUN pip install -r requirements.txt
3) потом COPY исходники
Так Docker кеширует слой с зависимостями — при изменении кода пересобирается только последний слой, а не весь образ. Это ускоряет CI/CD в разы и делает сборки предсказуемыми.
👍8❤5
🧠 Продвинутая типизация Python, о которой почти никто не знает
Статья показывает, что Python уже давно вышел за рамки простых
Главные идеи:
✔️
✔️
✔️ Python 3.13+ добавляет улучшенный вывод типов и строгие проверки, чтобы типизированный код стал надёжнее.
✔️ Поддержка typed function overloading - теперь можно описывать разные сигнатуры для одной функции, и анализаторы понимают их корректно.
📌 Вывод из статьи - Python типизация уже стала инструментом для архитектуры и предотвращения ошибок, особенно в больших проектах. Но большинство разработчиков использует только её простейший слой.
Кому полезно:
• работаешь с крупными кодовыми базами
• пишешь библиотеки
• хочешь меньше скрытых багов и более предсказуемые refactor-ы
Источник: martynassubonis.substack.com/p/advanced-overlooked-python-typing
Статья показывает, что Python уже давно вышел за рамки простых
List[int] и Optional[str].Главные идеи:
✔️
TypeGuard и новый TypeIs позволяют писать функции, которые доказательно сужают типы - например, проверка превращает Any в конкретный тип для дальнейшего кода.✔️
assert_never из typing помогает ловить случаи, когда ты забыл обработать один из вариантов, что особенно важно в match и сложных условных ветках.✔️ Python 3.13+ добавляет улучшенный вывод типов и строгие проверки, чтобы типизированный код стал надёжнее.
✔️ Поддержка typed function overloading - теперь можно описывать разные сигнатуры для одной функции, и анализаторы понимают их корректно.
📌 Вывод из статьи - Python типизация уже стала инструментом для архитектуры и предотвращения ошибок, особенно в больших проектах. Но большинство разработчиков использует только её простейший слой.
Кому полезно:
• работаешь с крупными кодовыми базами
• пишешь библиотеки
• хочешь меньше скрытых багов и более предсказуемые refactor-ы
Источник: martynassubonis.substack.com/p/advanced-overlooked-python-typing
👍6❤2🔥2🥰2
This media is not supported in your browser
VIEW IN TELEGRAM
🔥 Удобный контекстный менеджер для работы с файлами
Использование контекстного менеджера делает работу с файлами более безопасной и удобной. В этом примере мы создадим собственный контекстный менеджер для автоматического закрытия файла и обработки ошибок.
Использование контекстного менеджера делает работу с файлами более безопасной и удобной. В этом примере мы создадим собственный контекстный менеджер для автоматического закрытия файла и обработки ошибок.
class ManagedFile:
def __init__(self, filename, mode):
self.filename = filename
self.mode = mode
self.file = None
def __enter__(self):
self.file = open(self.filename, self.mode)
return self.file
def __exit__(self, exc_type, exc_val, exc_tb):
if self.file:
self.file.close()
with ManagedFile('example.txt', 'w') as f:
f.write('Hello, Custom Context!')
😁3❤2👍1🔥1