Pull to refresh

Comments 12

Вы, конечно, выполнили задачу. Но код ужасен и нечитаем, к сожалению.

Согласен, коробит прям от отсуствия аннотация типов, от "нейминга" всех эти "i < j", короче такой код не прошел был код ревью) пришлось краснеть)

Спасибо за отзыв! Код был необходим для одноразового решения конкретной задачи, а не вставки его в пром) С такой логикой и для “Hello world” нужна полная техдокументация) Но, вы правы, и некоторые переменные действительно стоит расшифровать

Да, хорошо, что оно работает. Но большую часть кода занимает преобразование данных, выполненное прямо, без архитектуры (модульности) и распараллеливания. А большую часть статьи занимает код, поэтому статья выглядит удручающе

Спасибо за комментарий! Код был сделан для одноразового решения задачи, и мы не увидели необходимости в распараллеливании запросов или написании детальной архитектуры решения)

Глядя на некотрые участки кода, хочется посоветовать ознакомиться с таким понятием как цикломатическая сложность.

Спасибо за комментарий!

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

Можете привести примеры этих участков кода, где бы мы могли сделать рефакторинг, чтоб учли на будущее?

Для примера, можно избавиться от if в этом месте:

...
if not os.path.exists('./areas/'):
	os.makedirs('./areas/')
...

У функции makedirs есть опциональный параметр exist_ok, я бы написал так:

os.makedirs(dir_name, exist_ok=True)

И в целом можно "высушить" код, в некоторых местах можно смело убирать else.

Также сделать except избирательным.

Это первое, что бросается в глаза, а так много чего ещё исправить можно.

Библиотека requests умеет работать с JSON из коробки.
req = requests.get('https://api.hh.ru/areas').json()

А еще не забывайте оборачивать все это в try/except.

Действительно забыли про то, что requests может самостоятельно в json, спасибо!

Казалось бы, решение задачи выглядит как один скл запрос к БД. А тут вот целое апи

Спасибо за интерес к нашей статье!

Sign up to leave a comment.

Articles