Приступим к ревью своего кода 🧐
Мне написали несколько человек с предложениями по улучшению этого кода
Что можно изменить и как улучшить свое тестовое:
📌 Группировка импортов по смыслу - начинайте с системных библиотек, делайте разделение пустой строкой, далее внутренние либы, потом из проекта и, если есть, уже импорты из вложенных файлов
📌 Обязательно делайте аннотирование функций, приучайте себя к этому - это очень удобно для работы в команде, когда видно что получает на входе функция и что возвращает.
Так же, документируйте код, прочитайте об этом, в гугле достаточно инфы, чтобы понять как правильно)
def sum_func(a: int, b: int) -> int:
return a + b
📌 Не делайте длинные функции или блоки try - если код можно отрефакторить на части по смыслу, то лучше так и сделать, а далее, сделать main файл с функцией, которая запускает каждую отдельную - так будет и читабельнее и вам удобнее. А длинный try в момент ошибки не даст подробной картины на каком же моменте он сорвался - добавляйте логгирование
def some_func(pet: str, num: int) -> list:
try:
logger.info("trying... %s", pet)
...some code...
except ValueError as e:
logger.error("Value error %s", e)
raise e
📌 Избегайте хардкода и давайте понятные имена переменным
Например вам приходит json с данными и вам нужно посчитать сколько дней прошло
{'time': [{'time_from': datetime.datetime(2021, 1, 1, 1, 0), 'time_to': datetime.datetime(2022, 1, 1, 1, 0)}], 'flow_id': [], 'load': 'links'}
Хардкод (ТАК ДЕЛАТЬ НЕ НАДО)
date_interval = data["time"][0]["time_from"] - data["time"][0]["time_to"]
Будет очень тяжело понять, особенно другому человеку что же тут и откуда берется
Более читаемо
data_time = data["time"][0]
date_interval = data_time["time_from"] - data_time["time_to"]
📌 Иногда лучше найти уже готовое решение или библиотеки, чтобы не терять время и не изобретать велосипед)
🖖
Post #40
423
Сибирский Dev | IT survival Посмотрите каждый это сообщение 👀 Это займет всего 5-10 минут) В обсуждении появилась идея для поста - как положено джуну оформлять тестовое задание на гите для работодателя, чтобы показать, что вы джун 😰 Предлагаю каждому на уже ранее выложенном моем ТЗ…
- 👍 6