🐍 Python + Ruff: сложность кода под контролем
На скрине — функция `validate_product`, которая проходит несколько вложенных проверок.
Линтер Ruff с правилом `C901` (McCabe Complexity) сигнализирует: сложность функции = 7, что выше лимита 5.
📏 McCabe Complexity измеряет количество ветвлений и условий в функции. Чем выше показатель, тем сложнее код для понимания и поддержки.
⚠️ Почему это важно:
• Снижение читаемости
• Рост вероятности багов
• Трудности при тестировании
💡 Решение:
1. Разбить функцию на несколько маленьких с понятными именами
2. Использовать ранние выходы (`return`) вместо вложенных `if`
3. Упрощать логику с помощью вспомогательных функций или структур данных
#Python #Ruff #CleanCode #Refactoring #McCabeComplexity
@python_be1
На скрине — функция `validate_product`, которая проходит несколько вложенных проверок.
Линтер Ruff с правилом `C901` (McCabe Complexity) сигнализирует: сложность функции = 7, что выше лимита 5.
📏 McCabe Complexity измеряет количество ветвлений и условий в функции. Чем выше показатель, тем сложнее код для понимания и поддержки.
⚠️ Почему это важно:
• Снижение читаемости
• Рост вероятности багов
• Трудности при тестировании
💡 Решение:
1. Разбить функцию на несколько маленьких с понятными именами
2. Использовать ранние выходы (`return`) вместо вложенных `if`
3. Упрощать логику с помощью вспомогательных функций или структур данных
#Python #Ruff #CleanCode #Refactoring #McCabeComplexity
@python_be1
🖥 Python: Совет по работе с серверами
Полезный совет Python-разработчиков, работающих с серверами
Когда вы управляете удалёнными серверами, часто приходится подключаться по SSH, выполнять команды и собирать логи. Банальные вызовы через subprocess или ручное использование ssh не дают гибкости. Куда интереснее использовать программируемое SSH-взаимодействие прямо из Python, с динамическим выполнением команд, обработкой stdout/stderr и тонкой настройкой соединения.
Трюк в том, чтобы работать с сервером так, будто вы пишете локальный скрипт: подключение по ключу, выполнение последовательности команд, сбор результатов и даже поднятие туннелей. Для этого можно использовать библиотеку paramiko. Её «фишка» — вы получаете прямой объект-канал для команд, что позволяет реализовать, например, автоматическое деплой-меню или собственный health-checker для кластера.
#Python #Программирование #Разработка #Python3 #Backend #Frontend #DataScience #MachineLearning #ArtificialIntelligence #DeepLearning #WebDevelopment #Django #Flask #FastAPI #API #REST #Scripting #Automation #DevOps #DataAnalysis #Pandas #NumPy #Matplotlib #Seaborn #Jupyter #BigData #CloudComputing #AWS #Azure #GoogleCloud #Testing #PyTest #UnitTest #CI_CD #Databases #SQL #NoSQL #MongoDB #PostgreSQL #SQLite #OpenSource #SoftwareEngineering #Coding #CleanCode #PythonLibraries #TensorFlow #PyTorch #ScikitLearn #NLP #ComputerVision
@python_be1
Полезный совет Python-разработчиков, работающих с серверами
Когда вы управляете удалёнными серверами, часто приходится подключаться по SSH, выполнять команды и собирать логи. Банальные вызовы через subprocess или ручное использование ssh не дают гибкости. Куда интереснее использовать программируемое SSH-взаимодействие прямо из Python, с динамическим выполнением команд, обработкой stdout/stderr и тонкой настройкой соединения.
Трюк в том, чтобы работать с сервером так, будто вы пишете локальный скрипт: подключение по ключу, выполнение последовательности команд, сбор результатов и даже поднятие туннелей. Для этого можно использовать библиотеку paramiko. Её «фишка» — вы получаете прямой объект-канал для команд, что позволяет реализовать, например, автоматическое деплой-меню или собственный health-checker для кластера.
#Python #Программирование #Разработка #Python3 #Backend #Frontend #DataScience #MachineLearning #ArtificialIntelligence #DeepLearning #WebDevelopment #Django #Flask #FastAPI #API #REST #Scripting #Automation #DevOps #DataAnalysis #Pandas #NumPy #Matplotlib #Seaborn #Jupyter #BigData #CloudComputing #AWS #Azure #GoogleCloud #Testing #PyTest #UnitTest #CI_CD #Databases #SQL #NoSQL #MongoDB #PostgreSQL #SQLite #OpenSource #SoftwareEngineering #Coding #CleanCode #PythonLibraries #TensorFlow #PyTorch #ScikitLearn #NLP #ComputerVision
@python_be1