sabato 10 agosto 2013

Design con il C++

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