Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Code review #60

Open
BigDeepBlue opened this issue Oct 7, 2023 · 1 comment
Open

Code review #60

BigDeepBlue opened this issue Oct 7, 2023 · 1 comment

Comments

@BigDeepBlue
Copy link
Collaborator

Здравствуйте ! Хорошо поработали, аккуратный код, постарались с архитектурой. ! Есть совсем небольшие замечания:

  1. Тут немного не понял зачем обернули в dataclass ?
  2. Тут я бы рекомендовал придержаться PEP8 https://peps.python.org/pep-0008/#method-names-and-instance-variables при именовании полей.
  3. Тут использовали драйвер psycopg (вижу что 3й) , тут https://docs.sqlalchemy.org/en/20/orm/extensions/asyncio.html описан подход с asyncpg и на практике я использовал именно его. Если можно отпишите в коментах к тикету почему не взяли asyncpg и если можно ссылки где можно почитать что эта связка удачно работает. Есть небольшие сомнения https://github.innominds.com/psycopg/psycopg/issues/527 и насколько я знаю как реализована асинхронность в алхимии есть шанс что связка может быть проблемной. (но не утверждаю, сам пользуюсь проверенным asyncpg)
  4. Тут можно тоже использовать HTTPStatus как в остальных случаях.
@mspiridonov2706
Copy link
Collaborator

mspiridonov2706 commented Oct 7, 2023

@BigDeepBlue
Здравствуйте! Спасибо за ревью.

  1. Что бы не писать
def __init__(self, session: Session) -> None:
    self._session = session

Так просто компактнее и более симпатично получается. Особенно если нужно много параметров передать

  1. Поправили

  2. Честно говоря не знал про возможные проблемы с psycopg. Мы его использовали, чтобы иметь возможность работать с базой в асинхронном режиме (в fastapi приложении) и в синхронном (в worker’е) без добавления дополнительного драйвера в зависимости проекта

  3. Поправили

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants