| Linha 23: | Linha 23: | ||
<br> | <br> | ||
<b>Single Responsibility Principle - Responsabilidade Única</b> | <b>Single Responsibility Principle - Responsabilidade Única</b> | ||
A classe <code>class UserRepository(BaseRepository)</code> | |||
Possui métodos de responsabilidade única como mostrado abaixo: | |||
<pre> | <pre> | ||
def | def get_user_by_id(self, user_id: int) -> Optional[User]: | ||
"""Busca um usuário pelo ID.""" | |||
stmt = select(User).where(User.id == user_id) | |||
result = self.execute_stmt(stmt) | |||
return result.scalar_one_or_none() | |||
</pre> | </pre> | ||
Edição das 01h31min de 18 de novembro de 2025
Fase 2
Escopo
- Desenvolver um sistema que facilite o encontro entre pessoas que estão à procura de um quarto para alugar e as que já possuem o quarto disponível para locação em seus imóveis
- A proposta é criar uma plataforma digital (via web) que funcione como um matchmaking de moradia, similar ao funcionamento de apps de relacionamento, com base em critérios como localização, orçamento, perfil de convivência e preferências pessoais
Requisitos Funcionais
[RF001] Implementar visualização de detalhes (quarto e perfil)
[RF002] Implementar match
Requisitos Não-Funcionais
Melhores práticas
Single Responsibility Principle - Responsabilidade Única
A classe class UserRepository(BaseRepository)
Possui métodos de responsabilidade única como mostrado abaixo:
def get_user_by_id(self, user_id: int) -> Optional[User]:
"""Busca um usuário pelo ID."""
stmt = select(User).where(User.id == user_id)
result = self.execute_stmt(stmt)
return result.scalar_one_or_none()
Open/Closed Principle - Aberto para Extensão, Fechado para Modificação
def soma(a, b):
return a + b
Liskov Substitution Principle - Substituição de Liskov
def soma(a, b):
return a + b
Interface Segregation Principle - Segregação de Interfaces
def soma(a, b):
return a + b
Dependency Inversion Principle - Inversão de Dependência
def soma(a, b):
return a + b