Как стать автором
Обновить

Помощь логистам: как сделать SMS-уведомления о разгрузке товара на складе на основе FastAPI

Время на прочтение8 мин
Количество просмотров1.6K
Всего голосов 5: ↑4 и ↓1+5
Комментарии4

Комментарии 4

Извините, но написано как-то... не очень.

Основная претензия - зачем использовать словари, когда у вас используются модели на базе pydantic? Причём FastAPI умеет с ними работать и конвертировать их в JSON в ответе. Лично я считаю использование словарей в данном случае антипаттерном, так как нельзя просто посмотреть на них и понять, что в них может лежать.

В том же pydantic (правда, в отдельном пакете) есть очень удобная работа с настройками приложения - хоть из переменных окружения, хоть из файла .env, хоть откуда. Причём с валидацией значений, алиасами, подстановкой значений по умолчанию и прочим функционалом.

Непонятно, зачем нужно кеширование. Да, оно полезно, но конкретно здесь оно будет отдавать неактуальные данные. Кто-нибудь сделает запрос на ручку /work/workday для изменения статуса worker'а, следом запросит/work/read и удивится, почему данные не поменялись. В таком случае нужно сбрасывать кеш.

Сам код написан довольно небрежно. Где-то указаны типы, где-то нет. Длинные строки кода при работе с массивами. Непонятная конструкция list(worker_free.keys())[0] - в чём проблема сразу взять ключ? В "Завершение и начало рабочего дня" кажется, что просто логически неверно поставлены True/False.

Согласен с тем, что код написан кое-как, например, в send_sms если не найден ни один free_worker, то все упадет. Да и тестировать эти спагеттины явно сложно.

Только я не понял, а в чем проблема длиных строк? На понимание алгоритма не влияет, я бы даже сказал, что и хорошо, что не в несколько строк, а то спагеттина станет еще длиннее. На быстродействие вроде тоже не влияет.

Мне статья понравилась. Считаю ее очень полезной. На мой взгляд автор просто показал возможности кэширования и как его настраивать в коде. Кэш кстати хранится всего 30 сек, так что на счет неактуальности данных это преувеличение. То что используются словари вместо модели pydantic...., ну собственно и что? Как я думаю такой подход более нагляден для начинающих программистов, да и автор дал ссылки на них в pastebin. Тем более для моделей необходим дополнительный пакет.

Особенности асинхронного подхода

Асинхронность должна быть асинхронной? И это все особенности?)

Зарегистрируйтесь на Хабре, чтобы оставить комментарий