Processo di LLD Design (Dai Requisiti al Codice)

Il Low Level Design non consiste nello scrivere immediatamente del codice. Consiste nel seguire un processo strutturato.

Segui questi passaggi per passare da un'enunciazione del problema a un codice funzionante.

  1. Comprendere i Requisiti Non passare subito alle classi. Per prima cosa, scopri cosa deve fare il sistema.
  • Di quali funzionalità ha bisogno?
  • Quali azioni deve supportare?
  • Quali cambiamenti potrebbero verificarsi in seguito?
  1. Identificare i Sostantivi per Trovare le Classi Cerca i sostantivi nei tuoi requisiti. I sostantivi diventeranno le tue classi. Esempio: Un Editor di Documenti
  • Sostantivi: Document, Text, Image, Storage, Editor.
  • Classi: Document, TextElement, ImageElement, Storage, DocumentEditor.

Esempio: Un Parcheggio

  • Sostantivi: ParkingLot, Floor, Slot, Vehicle, Ticket.
  • Classi: ParkingLot, Floor, Slot, Vehicle, Ticket.
  1. Usare IS-A per l'Ereditarietà Chiediti: "Il figlio è un tipo del padre?"
  • TextElement IS-A DocumentElement.
  • Car IS-A Vehicle.
  • Dog IS-A Animal. Se la risposta è sì, usa l'ereditarietà.
  1. Usare HAS-A per la Composizione Chiediti: "Un oggetto ne contiene un altro?"
  • Un Document HAS-A una collezione di elementi.
  • Un ParkingLot HAS-A un insieme di piani.
  • Una Car HAS-A un motore. Usa la composizione per collegare questi oggetti.
  1. Identificare i Verbi per Trovare i Metodi Cerca le azioni nei requisiti. I verbi diventeranno i tuoi metodi.
  • Add text diventa addText().
  • Save document diventa save().
  • Park vehicle diventa parkVehicle().
  1. Pianificare i Cambiamenti con le Interfacce Pensa agli aggiornamenti futuri. Se salvi un documento, potresti usare un File, un Database o il Cloud.
  • Crea un'interfaccia chiamata Persistence.
  • Crea implementazioni come FileStorage o DBStorage. Questo ti permette di aggiungere CloudStorage in seguito senza modificare il codice esistente.
  1. Disegnare l'UML e Scrivere il Codice Una volta ottenute classi, ereditarietà, composizione e metodi, disegna un diagramma UML. Questo fungerà da progetto. Infine, converti quel progetto in codice pulito.

Flusso di sintesi:

  • Requisiti
  • Dai Sostantivi alle Classi
  • Da IS-A all'Ereditarietà
  • Da HAS-A alla Composizione
  • Dai Verbi ai Metodi
  • Dalle Variazioni alle Interfacce
  • Diagramma UML
  • Codice Finale

Fonte: https://dev.to/roshan_singh_dd54d52bbaa7/lld-design-process-from-requirements-to-code-594m