Такой вопрос:
В решении задачи ввод можно читать либо из файла «input.txt», либо из stdin.
Это как-то влияет на скорость выполнения в вашей системе? Были ли с этим проблемы и, если были, то как вы их обошли?
Большое спасибо за статью!
Принимал участие в конкурсе (не прошел, не успел задеплоиться).
Подскажите, пожалуйста, по следующим вопросам:
1. Почему не прикрутили NGINX? Не будет ли standalone сервер aiohttp медленее, чем с NGINX?
2. Почему citizens не разбиты на отдельные таблицы для каждого импорта? Намек на это также был в вашем FAQ видео. Еще это позволило бы лочиться только по citizens.id, а не по всей выгрузке (import_id).
3. Не рассматривался ли вариант получения (от клиента) выгрузки по частям? Возможно ли это сделать средствами aiohttp/python? Например, через request.content: docs.aiohttp.org/en/stable/streams.html или это не поможет читать данные кусками?
4. Не очень понял используется ли connection pool. В коде, при старте, приложение коннектится к postgres, но не очень понятен размер пула (или коннекшн один?).
5. Я c экосистемой python не очень хорошо знаком (в последние пару лет сижу на java), немного смутило, что нет разделения на слои («луковой» архитектуры).
Транспортный слой (контроллеры, у вас это handlers) перемешан со слоем бизнес логики и со слоем БД. Можно было бы как-нибудь разделить, часть вынести в сервисы. Кмк, это уменьшило бы связанность (если говорить о проекте, который будет со временем расти).
6. Так же не используется DI. Для python есть библиотека injector, но создается впечатление что в экосистеме python'a так не принято :)
Кстати, в Яндексе где-нибудь используется injector или своя DI-библиотека для python'а?
В целом, статья очень поучительная, многие вещи не знал :)
Спасибо!
Такой вопрос:
В решении задачи ввод можно читать либо из файла «input.txt», либо из stdin.
Это как-то влияет на скорость выполнения в вашей системе? Были ли с этим проблемы и, если были, то как вы их обошли?
Принимал участие в конкурсе (не прошел, не успел задеплоиться).
Подскажите, пожалуйста, по следующим вопросам:
1. Почему не прикрутили NGINX? Не будет ли standalone сервер aiohttp медленее, чем с NGINX?
2. Почему citizens не разбиты на отдельные таблицы для каждого импорта? Намек на это также был в вашем FAQ видео. Еще это позволило бы лочиться только по citizens.id, а не по всей выгрузке (import_id).
3. Не рассматривался ли вариант получения (от клиента) выгрузки по частям? Возможно ли это сделать средствами aiohttp/python? Например, через request.content: docs.aiohttp.org/en/stable/streams.html или это не поможет читать данные кусками?
4. Не очень понял используется ли connection pool. В коде, при старте, приложение коннектится к postgres, но не очень понятен размер пула (или коннекшн один?).
5. Я c экосистемой python не очень хорошо знаком (в последние пару лет сижу на java), немного смутило, что нет разделения на слои («луковой» архитектуры).
Транспортный слой (контроллеры, у вас это handlers) перемешан со слоем бизнес логики и со слоем БД. Можно было бы как-нибудь разделить, часть вынести в сервисы. Кмк, это уменьшило бы связанность (если говорить о проекте, который будет со временем расти).
6. Так же не используется DI. Для python есть библиотека injector, но создается впечатление что в экосистеме python'a так не принято :)
Кстати, в Яндексе где-нибудь используется injector или своя DI-библиотека для python'а?
В целом, статья очень поучительная, многие вещи не знал :)
Спасибо!