Ho sempre programmato in linguaggi procedurali e attualmente mi sto muovendo verso l'orientamento agli oggetti. Il problema principale che ho affrontato è che non riesco a vedere un modo per praticare l'orientamento agli oggetti in modo efficace. Spiegherò il mio punto. Quando ho imparato PHP e C era abbastanza facile da esercitarsi: era solo questione di scegliere qualcosa e pensare a un algoritmo per quella cosa.
In PHP, ad esempio, era questione di sedersi e pensare: "bene, solo per esercitarmi, lasciami costruire un'applicazione con un'area di amministrazione in cui le persone possano aggiungere prodotti". È stato abbastanza facile, si trattava di pensare a un algoritmo per registrare un utente, accedere all'utente e aggiungere i prodotti. Combinandoli con le funzionalità di PHP, è stato un buon modo per esercitarsi.
Ora, nell'orientamento agli oggetti abbiamo molte altre cose. Non si tratta solo di pensare a un algoritmo, ma di analizzare i requisiti più in profondità, scrivere casi d'uso, capire diagrammi di classe, proprietà e metodi, impostare l'iniezione delle dipendenze e molte altre cose.
Il punto principale è che nel modo in cui sto imparando l'orientamento agli oggetti sembra che un buon design sia cruciale, mentre nei linguaggi procedurali era sufficiente una vaga idea. Sto Non dicendo che in linguaggi procedurali possiamo scrivere un buon software senza disegno, solo che per amor di praticare è fattibile, mentre in orientamento oggetto non sembra possibile andare senza un buon progetto, anche per la pratica.
Questo sembra essere un problema, perché se ogni volta che ho intenzione di esercitarmi ho bisogno di capire tonnellate di requisiti, casi d'uso e così via, sembra non essere un buon modo per migliorare l'orientamento agli oggetti, perché ciò richiede di avere un'idea completa per un'app ogni volta che vado a esercitarmi.
Per questo motivo, qual è un buon modo per esercitarsi nell'orientamento agli oggetti?