TGViewer
FastNews | Никита Пастухов FastNews | Никита Пастухов @fastnewsdev · 2.62K subscribers
Post #19 511
Самое интересное: я тут написал какую-то муть про организацию кода библиотек или оно применимо в реальных приложениях? Ну, конечно же применимо! Например, подобным образом вы можете прятать *не очень красивые* Repository из Litestar за своими "красивыми" протоколами и реализациями


# author_repo_protocol.py
from typing import Protocol

class GetAuthorRepo(Protocol):
async def get(self, author_id: int, /) -> Author:
...

class DeleteAuthorRepo(Protocol):
async def delete(self, author_id: int, /) -> None:
...

class AuthorRepo(GetAuthorRepo, DeleteAuthorRepo):
pass

# author_repo_impl.py
from litestar.contrib.sqlalchemy.repository import SQLAlchemyAsyncRepository

class AuthorRepository(SQLAlchemyAsyncRepository[Author]):
model_type = Author


Если все ссылаются на ваш "правильный" протокол, а реализация подмешивается не из litestar модуля, а вашего, собственного!!!, то никто и не узнает, что вы ничего и не писали, а взяли грязь из Litestar и выдали ее за свою. И никто даже не заметит, когда вы ее замените на нормальную реализацию

#программирование
More from @fastnewsdev
  1. Oct 4, 2026Как я учу английский с помощью AI Насколько вы знаете, я большую часть работы веду в OpenS…
  2. Oct 2, 2026Чтож, антропики добрались и до меня и забанили аккант😢 В связи с этим посты ближайшие пар…
  3. Sep 30, 2026Последний месяц на мой канал жестко нападают всякие-разные ИТшницы и ИИшницы, которые поче…
  4. Sep 27, 2026Я уже жаловался на то, что конференции как формат изживают себя. И поэтому мне нравится, ч…
  5. Sep 22, 2026Еще недавно я вайнил, что нейронки нельзя использовать в OpenSource, т.к. они не вывозят т…
  6. Sep 20, 2026Последние 2 недели я заметил, что Opus 5 значительно отупел в Claude Code. Обычно такое сл…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →