Ho studiato OOP insieme all'implementazione MVC di Zend negli ultimi mesi. Sono abbastanza nuovo nella programmazione, in generale, ma sento fortemente che dovrei imparare le cose nel modo "giusto", il che per me significa essere sicuro di capire perché le cose sono fatte così come sono. Cioè, ho scoperto che nell'apprendere come fare qualcosa (qualsiasi cosa, dire musica), il modo migliore per imparare a fare qualcosa è sapere perché è stato fatto in quel modo in primo luogo.
Ad ogni modo, ho avuto molte difficoltà a capire come sviluppare i miei modelli di business (cioè la M di MVC), e ho deciso che non è perché non capisco OOP in generale, perché l'ho studiato per diversi mesi e non credo che i concetti siano molto difficili da comprendere. Trovo gli esempi che ho studiato molto intuitivi, in realtà. Il problema per me, penso, sta nel processo di traduzione dei miei problemi in soluzioni orientate agli oggetti. Gli esempi nei libri (che ho letto finora) sono troppo ovvi, quindi il processo di traduzione del problema in oggetti non è molto difficile. Quello che penso che potrei perdere è un processo astratto di alto livello. Una sorta di elenco di passaggi o domande a cui ogni soluzione orientata agli oggetti deve rispondere al massimo livello.
Se dovessi descrivere un tale processo in non più di cinque passaggi, quali sarebbero e perché? Qual è il processo più efficace nel tradurre qualsiasi problema in una soluzione orientata agli oggetti?