In primo luogo una dichiarazione di non responsabilità: non so davvero se questa domanda si adatta a questo sito, ma trovo comunque una domanda pertinente non solo per me, ma per altre persone che sono alle prime armi. Se la domanda può essere migliorata per adattarsi qui, si prega di sottolineare i commenti int. Se non si adatta, fammi sapere anche e se possibile fammi sapere dove questo può essere discusso perché non ho trovato alcun forum valido per questo.
Ho imparato a programmare nel 2009 quando ho studiato PHP. Più tardi nel 2012, mi sono trasferito in C # e .NET. Ad ogni modo, la codifica non è un problema, scrivere algoritmi non è un mio problema. Il mio vero problema è sapere che deve essere codificato per raggiungere un requisito e dove deve essere codificato.
La maggior parte dei corsi disponibili sul web affronta il come - come scrivere codice in una determinata lingua, come utilizzare alcuni set di API, ecc. Non è questo il mio punto qui.
In questi anni ho letto molto su un sacco di cose: analisi orientata agli oggetti e design, modelli di progettazione, progettazione basata sul dominio e così via. Capisco ad esempio i principi SOLID, alcune delle idee principali del DDD come la necessità di coinvolgere esperti di dominio, lo sviluppo di un linguaggio ubiquo e così via. Oserei dire uno sfondo teorico almeno ragionevole.
Ma quando si tratta di pratica mi sento come se fossi un disastro. Qualche tempo fa avevo bisogno di continuare lo sviluppo di un sistema finanziario che era già stato sviluppato da qualcun altro. È quel tipo di "vecchio sistema" sviluppato con C # e WinForms. È stata la prima volta che ho scelto un progetto con una complessità di dominio reale, con molte regole aziendali e così via.
Confesso che quando ricevo i requisiti per la maggior parte del tempo penso "come diavolo si può fare?" - Non ho idea di come iniziare a lavorare sui requisiti per capire cosa deve essere fatto. Le mie principali confusioni credo siano ciò che devo codificare, quali classi, interfacce e dove ogni pezzo di logica va, su quale classe ogni cosa deve essere. Il problema è che non so da dove cominciare.
La maggior parte delle volte, con un sacco di pensieri, finisco con alcune idee, ma non so mai come giudicare se la mia idea è corretta o meno.
Voglio dire, non penso che questa sia una mancanza di teoria, come ho detto di aver letto su un po 'di cose sull'architettura software e l'orientamento agli oggetti mi è stato raccomandato ma non è stato di grande aiuto nell'individuare ciò che deve essere fatto in pratica.
Quindi, come posso imparare a veramente fare design orientato agli oggetti? Quello che voglio imparare è: dati requisiti sanno come iniziare a lavorare su di loro in un processo che porta a scoprire cosa deve essere fatto e dove ogni pezzo di codice appartiene. Come posso anche imparare a giudicare se la mia idea è corretta o no?
Credo che spiegarlo pienamente come risposta qui non sarebbe possibile. Quello che sto cercando, tuttavia, che può essere in base allo stile del sito sono le risposte, solo dando una panoramica e indicando alcuni riferimenti (libri, corsi online, ecc.) Che possono essere utilizzati per espandere le idee e imparare davvero queste cose. p>