Работал ли с generics или VIPER архитектурой на реальных проектах
Python
Middle
Без компании
Работал ли с generics или VIPER архитектурой на реальных проектах
Ответы
Да, работал с VIPER на коммерческих проектах. Основные плюсы: четкое разделение ответственности, тестируемость, масштабируемость.
Пример структуры модуля:
```
# View
class UserView:
def show_user(self, user_data): ...
# Interactor (бизнес-логика)
class UserInteractor:
def get_user_data(self): ...
# Presenter
class UserPresenter:
def __init__(self, view, interactor):
self.view = view
self.interactor = interactor
def present_user(self):
data = self.interactor.get_user_data()
self.view.show_user(data)
```
С generics в Python работал через `TypeVar` и `Generic` из `typing` для создания универсальных репозиториев/сервисов. Например:
```
from typing import TypeVar, Generic
T = TypeVar('T')
class Repository(Generic[T]):
def get(self, id: int) -> T: ...
```
VIPER требует больше boilerplate-кода, но окупается на крупных проектах. Generics полезны для DRY-кода при работе с разными типами данных.