Studio informatica e ho una classe chiamata "Tecniche di programmazione". Il suo scopo è insegnare (noi) buoni principi di progettazione orientata agli oggetti. Durante il semestre abbiamo compiti a casa, programmi che dobbiamo scrivere per dimostrare ciò che abbiamo imparato.
L'assistente di laboratorio richiede per ciascuno di questi compiti a casa di utilizzare modelli di progettazione specifici. Ad esempio, i compiti correnti sono un'applicazione utilizzata per elaborare gli ordini dei clienti. Ci viene richiesto di utilizzare i modelli di progettazione "Metodo di produzione" o "Fabbrica astratta" per questo. Diventa ancora peggio: alla fine del semestre dobbiamo scrivere un programma (qualcosa di più complesso) che deve usare almeno uno schema creativo, almeno uno schema strutturale e almeno uno schema comportamentale.
È normale richiedere questo? Voglio dire, costringendoci a progettare i nostri programmi in modo tale che uno specifico modello di design abbia senso va ben oltre ciò che considero ok. Se sono un meccanico di auto e ho una cassetta degli attrezzi enorme, userò un determinato strumento da quella scatola se e quando la situazione lo richiederà. Non più, non meno. Se il mio design dell'applicazione non richiede affatto l'uso di "Abstract Factory" (ad esempio), allora perché dovrei implementarlo?
Non sono ancora sicuro se il docente anziano è d'accordo con ciò che l'assistente di laboratorio sta richiedendo, ma voglio parlargli e ho bisogno di argomenti solidi per farlo. Come dovrei affrontare questo problema con lui?
PS: sono sicuro che ci deve essere un modo migliore per insegnarci queste cose. Magari facendoci leggere ogni settimana su 3 modelli di design e la prossima settimana fornendoci un test con programmazioni o situazioni / problemi architettonici piccoli ma specifici. L'obiettivo in questo test sarebbe identificare quali schemi di progettazione avrebbero senso e come potrebbero essere implementati. In questo modo, può vedere se li capiamo.
EDIT: Questi homework non sono solo programmi a 100 linee, hanno un sacco di requisiti e sono abbastanza complicati. Questo è il motivo per cui abbiamo circa 2 - 3 settimane di scadenza per ciascuno di essi.
Sono d'accordo che praticare questo è il modo migliore per imparare. Ma non dovrebbero essere usati programmi / applicazioni più piccoli per questo? Qualcosa solo per scopi dimostrativi. Non grandi programmi con molti requisiti / classi / ecc.