𝗣𝗿𝗼𝗰𝗲𝘀𝘀𝗼 𝗱𝗲 𝗗𝗲𝘀𝗶𝗴𝗻 𝗟𝗟𝗗 (𝗗𝗼𝘀 𝗥𝗲𝗾𝘂𝗶𝗿𝗶𝘁𝗼𝘀 𝗮𝗼 𝗖ó𝗱𝗶𝗴𝗼)
O Low Level Design não consiste em escrever código imediatamente. Trata-se de seguir um processo estruturado.
Siga estes passos para passar de um enunciado de problema para um código funcional.
- Entenda os Requisitos Não pule direto para as classes. Primeiro, descubra o que o sistema deve fazer.
- Quais funcionalidades ele precisa?
- Quais ações ele deve suportar?
- Quais mudanças podem ocorrer futuramente?
- Identifique Substantivos para Encontrar Classes Procure por substantivos em seus requisitos. Os substantivos tornam-se suas classes. Exemplo: Um Editor de Documentos
- Substantivos: Document, Text, Image, Storage, Editor.
- Classes: Document, TextElement, ImageElement, Storage, DocumentEditor.
Exemplo: Um Estacionamento
- Substantivos: ParkingLot, Floor, Slot, Vehicle, Ticket.
- Classes: ParkingLot, Floor, Slot, Vehicle, Ticket.
- Use IS-A para Herança Pergunte a si mesmo: "O filho é um tipo do pai?"
- TextElement É UM (IS-A) DocumentElement.
- Carro É UM (IS-A) Veículo.
- Cachorro É UM (IS-A) Animal. Se a resposta for sim, use herança.
- Use HAS-A para Composição Pergunte a si mesmo: "Um objeto contém outro?"
- Um Documento TEM UMA (HAS-A) coleção de elementos.
- Um ParkingLot TEM UM (HAS-A) conjunto de andares.
- Um Carro TEM UM (HAS-A) motor. Use composição para vincular esses objetos.
- Identifique Verbos para Encontrar Métodos Procure por ações nos requisitos. Os verbos tornam-se seus métodos.
- Adicionar texto torna-se
addText(). - Salvar documento torna-se
save(). - Estacionar veículo torna-se
parkVehicle().
- Planeje para Mudanças com Interfaces Pense em atualizações futuras. Se você salvar um documento, poderá usar um Arquivo, um Banco de Dados ou a Nuvem.
- Crie uma interface chamada
Persistence. - Crie implementações como
FileStorageouDBStorage. Isso permite que você adicioneCloudStorageposteriormente sem alterar seu código existente.
- Desenhe o UML e Escreva o Código Assim que tiver as classes, herança, composição e métodos, desenhe um diagrama UML. Ele servirá como seu projeto (blueprint). Por fim, converta esse projeto em código limpo.
Resumo do Fluxo:
- Requisitos
- Substantivos para Classes
- IS-A para Herança
- HAS-A para Composição
- Verbos para Métodos
- Variações para Interfaces
- Diagrama UML
- Código Final
Source: https://dev.to/roshan_singh_dd54d52bbaa7/lld-design-process-from-requirements-to-code-594m