Какие знаешь архитектуры построения приложений
Python
Senior
СБЕР Роботы
Какие знаешь архитектуры построения приложений
Ответы
В Python популярны несколько архитектурных подходов:
**MVC (Model-View-Controller)**
Разделение на модель (данные), представление (UI) и контроллер (бизнес-логика). Пример - Django.
```
# models.py (Model)
class User(models.Model):
name = models.CharField()
# views.py (Controller)
def user_list(request):
users = User.objects.all()
return render(request, 'users.html', {'users': users})
# users.html (View)
{% for user in users %}{{ user.name }}{% endfor %}
```
**Микросервисы**
Приложение разбивается на независимые сервисы. Используется Flask/FastAPI:
```
# service_a.py
@app.get('/users')
def get_users(): ...
# service_b.py
@app.get('/orders')
def get_orders(): ...
```
**Событийно-ориентированная (Event-Driven)**
Компоненты общаются через события (RabbitMQ, Kafka):
```
# producer.py
channel.basic_publish(exchange='', routing_key='queue', body='event')
# consumer.py
def callback(ch, method, properties, body):
print("Received", body)
```
**Слоистая (Layered)**
Разделение на presentation, business, data слои. Чистая архитектура с зависимостями внутрь.
Выбор зависит от масштаба, требований к гибкости и сложности приложения.