Costruire un software non triviale può essere un
compito difficile e complesso da realizzare. Anche per il singolo
programmatore, la creazione delle procedure reali del programma è
solo un parte del processo. Tipicamente, l'analisi del problema,
sovrasta il design del programma, la documentazione, testing e
manutenzione. Così come la gestione di tutto questo, è ben poco se
comparata al lavoro di scrittura e debug del singolo frammento di
codice. Naturalmente, uno può pensare che la totalità di queste
attività sono “programmazione”, e quindi giungere alla
conclusione che “Io non faccio design, io programmo” ma comunque
sia chiamata questa attività, è importante focalizzarsi sia sulle
piccole parti che sul programma in generale. I singoli dettagli, come
il quadro in generale non devono essere persi di vista, anche nella
fretta di consegnare il prodotto, tuttavia spesso è ciò che accade.
In questo capitolo ci focalizzeremo sulle parti di sviluppo del
programma che non coinvolgono direttamente la scrittura e il debug
delle singole parti di codice. La discussione è meno precisa e
dettagliata di come discutere sulle singole caratteristiche del
linguaggio e le specifiche tecniche di programmazione presentate
altrove in questo libro. Tuttavia è necessario perché non esiste un
ricettario capace di dare un metodo per creare del buon software.
Tipologie dettagliate di “Come fare...” esistono
per applicazioni già bene definite, ma non per applicazioni in
generale. Non esiste alcun sostituto all'intelligenza, esperienza, e
istinto nella programmazione. Di conseguenza questo capitolo offre
solo consigli in generale e approcci alternativi, insieme a caute
osservazioni.
La discussione è guidata dalla natura astratta del
software, per cui scrivere un programma di piccole dimensioni (circa
10.000 linee di codice) richiede tecniche, che difficilmente possono
essere applicate per progetti medio/larghi. Per questo motivo, alcune
discussioni sono formulate in termini di analogie con discipline
ingegneristiche meno astratte piuttosto che in termini di codice.
Discussioni sulle questioni di design in termini di C++ sono
presentati nei successivi capitoli. Le idee espresse in questo
capitolo sono riflessi sia dal linguaggio C++ e dalla presentazione
di esempi individuali attraverso il blog.
Nessun commento:
Posta un commento