Arquitetura e desenho de software

Responsabilidades, estilos, vistas UML, reutilização e decisões de desenho detalhado.

TLDR

Perguntar sobre esta página

ChatGPTClaudePerplexityGrokGeminiCopiar e abrirDeepSeekCopiar e abrir

Responsabilidades e contratos

  • Arquitetura: elementos principais, responsabilidades, relações e princípios de evolução. O desenho detalhado escolhe classes, operações, algoritmos e estruturas internas.

  • Um requisito arquiteturalmente significativo influencia a estrutura ou uma decisão difícil de alterar. Concorrência, vários dispositivos e funcionamento sem rede podem exigir escolhas diferentes.

  • Coesão: relação entre responsabilidades de um módulo. Acoplamento: dependências entre módulos; devem ser explícitas e limitar a propagação de mudanças.

  • Ocultação de informação: esconder decisões mutáveis atrás de uma interface. O contrato define entradas, garantias, resultados e falhas.

  • Para reservas concorrentes, o contrato deve oferecer criarSeLivre atómica, com confirmação ou conflito. consultar seguido de guardar permite que dois pedidos leiam «livre» e criem reservas sobrepostas. Trocar armazenamento só preserva consumidores se conservar estas garantias.

Estilos arquiteturais

EstiloOrganização e limite
CamadasSepara níveis de abstração. Na forma estrita usa a camada seguinte; na relaxada admite atalhos para camadas inferiores.
Cliente-servidorClientes usam uma autoridade remota; exige tratar rede, disponibilidade e segurança.
MVCSepara modelo, vista e controlo da interação, com responsabilidades concretas.
Pipes and filtersEtapas transformam dados num fluxo; conversão e coordenação têm custo.
Repositório centralSubsistemas partilham dados; dependem do esquema e da disponibilidade comuns.

Podem coexistir, como cliente-servidor organizado em camadas. O repositório arquitetural não é sinónimo de uma classe Repository.

Um importador pode usar filtros para ler, normalizar, validar e agrupar registos, enquanto a interface usa MVC. Os contratos entre filtros precisam de fixar formatos e erros: trocar datas locais por UTC pode invalidar o resultado sem mudar o estilo arquitetural.

Vistas 4+1 e UML

VistaPreocupação
LógicaResponsabilidades e abstrações, classes/pacotes
ImplementaçãoUnidades de desenvolvimento, componentes
ProcessoInterações em execução
ImplantaçãoRecursos onde os elementos correm
Casos de uso, +1Cenários que relacionam e avaliam as quatro vistas

Pacote agrupa elementos do modelo; componente expõe interfaces fornecidas/requeridas; artefacto é um ficheiro concreto; nó é um recurso de execução.

Vista lógica e vista de implantação das reservasA Apresentação depende do Serviço de reservas, que depende do Acesso a dados. O artefacto móvel corre no telemóvel e o artefacto do servidor corre no servidor, ligados por um caminho de comunicação.Vista lógicaApresentaçãoServiço de reservasAcesso a dadosVista de implantaçãonó telemóvelapp móvelnó servidorservidorbase de dadosrede
Lógica responde quem depende de quem: as setas apontam para o elemento usado. Implantação responde onde corre cada artefacto: a linha contínua é o caminho de comunicação, sem direção. A interface ReservaAPI expõe criarSeLivre e declara o conflito como resultado possível.
  • Três responsabilidades lógicas podem correr em dois nós: apresentação no telemóvel, serviço e acesso a dados no servidor. Módulo não significa máquina.

Desenho, reutilização e decisões

  • Na aplicação, separa apresentação, regras de reserva, acesso a dados e adaptador da API externa. Avalia a arquitetura com um cenário crítico de ponta a ponta.
  • Em MVVM, a View apresenta estado; a ViewModel prepara-o e coordena operações; Repositories gerem dados e Services isolam fontes externas. A camada de domínio depende da complexidade das regras.
  • Uma biblioteca é chamada pela aplicação; um framework organiza execução e chama código da aplicação, por inversão de controlo. Avalia função, interfaces, qualidade, licença, suporte e integração.
  • Regista decisões com contexto, alternativas, escolha e consequências. Uma validação no ecrã melhora feedback; a autoridade dos dados tem de preservar as regras.

Contratos e desenho da aplicação.

À tua maneira

Aparência

Modo de cor
Tema
Cor de destaque

Leitura

Fonte de leitura

Álgebra, lógica e uma ideia de cada vez.

Código

Fonte do código

Navegação

Cursor de leitura, sem edição. h, j, k, l movem; / pesquisa nesta página. v seleciona caracteres; V seleciona linhas; y copia. Tab permite destacar ou comentar. Espaço ou Enter abre blocos recolhíveis. Nos cartões, h, j, k, l mudam o foco.

CSS personalizado

Ativa uma sugestão ou guarda o teu CSS. Só muda este navegador.

Usa --page, --text e --accent para acompanhar o tema.

Seletores e recuperação

.site-header, .prose, .course-card, [data-reading-history], [data-playground] e .page-actions.

Abre a aparência com a tecla vírgula ou no rodapé. Se o CSS esconder os controlos, abre esta página sem CSS personalizado.

Pesquisar

Escreve para pesquisar em todo o site.

para escolher · Enter para abrir · Esc para fechar

Copiar fórmula

A cópia automática não está disponível. Copia o LaTeX abaixo.

Pesquisar nesta página

Enter procura · n / N repetem · Esc cancela. Ctrl / Cmd K pesquisa todo o site.

Atalhos de teclado

Clica numa tecla para a mudar. Esc cancela. Backspace desativa.

PesquisarCtrl / Cmd K

Os atalhos não interferem enquanto escreves. Tab e Enter funcionam sempre.