Newsgroup: it.comp.lang.c++
Titolo: Codice C++ in progetti reali

E' da qualche mese che sto studiando il C++ e quindi le mie
conoscenze sono ancora molto basse. Ho seguito un po' il ng ed ora
volevo chiedere una cosa. Ho sentito parlare molto bene delle
librerie wxWindows, anche da Alex Martelli che mi pare sia veramente
un grande esperto di C++, ed allora ho scaricato i sorgenti per
vedere come sia scritto del valido codice C++.
Ho trovato (in una primissima vista) un uso notevole di macro e
l'utilizzo di NULL per testare la validita' di un puntatore. Su i
libri che ho studiato (un libro di Lippman ed un libro di
Stroustrup) dice chiaramente di evitare il piu' possibile l'utilizzo
di macro e di testare la validita' di un puntatore con l'operatore
!.
La domanda che volevo porre e' questa:
sono le librerie wxWindows (pur nella loro validita') a non
rappresentare il massimo in fatto di codice C++, ovvero e' possibile
seguire queste linee guida essenziali indipendentemente dal tipo di
applicazione sviluppato, oppure questi buoni principi esposti nei
libri trovano difficolta' nell'essere applicati in progetti reali
(tranne direi quello dell'utilizzo di NULL che mi pare decisamente
gratuito), oppure sono io che non ho capito nulla?
Grazie a chiunque mi vorra' delucidare su questa questione.
Ciao.

Non conosco la sopracitata libreria, ma sicuramente da quel che dici
non fa un buon uso del C++ (ammesso che siano scritte in C++ e non in
C).
La qualita` di un prodotto dipende da molti fattori, in particolare
non sempre
chi scrive codice C++ e` poi cosi` esperto... spesso sono persone che
vengono da una lunga esperienza C (e che non hanno saputo ancora fare
il cambio di mentalita`) oppure che vengono da scuole alla microsoft!
Mi sono + volte trovato di fronte a simili problemi, in particolare
come
l'uso di una macro eccessivamente flessibile (utilizzabile in entrambi
i lati di
un assegnamento) abbia portato a codice in cui si possono trappare le
eccezioni
solo a condizione di riscrivere tutte le parti (che sono molte) in cui
la macro
e` utilizzata.
In C++ le macro sono pochissimo utili (ho visto solo un caso in
diversi anni,
e non sono del tutto sicuro che sia inevitabile a costo 0 o quasi), le
funzioni inline svolgono lo stesso compito meglio.
Quanto a NULL, ormai molti compilatori la definiscono come
#define NULL 0
Tuttavia io evito sempre NULL, tranne nelle chiamate ad esempio delle
api win
in cui la documentazione indica NULL.
Se riesci a procurartela (diciamo per vedere come e` fatta), una
discreta libreria e` OWL, quella che forniva tempo fa Borland.
Paolo
--
Paolo Marotta
Home: 
http://web.tiscalinet.it/paolo_marotta
Master's Level in C++ Certified by Brainbench
http://www.brainbench.com/transcript.jsp?pid=2440649

 libri trovano difficolta' nell'essere applicati in progetti reali
Assolutamente si, se non si sta improvvisando.
I buoni principi non si seguono per scrivere il codice "in bella" (come si
direbbe alle elementari!) ne perchè il codice è "più bello". Si seguono
perchè si scrive meno codice, meno soggetto ad errori, più controllabile.
Se poi c'è anche un lavoro di analisi alle spalle della codifica allora
tutto è ancora più significativo.
La prima volta che ho notato sulla mia pelle la validità dei "sani principi"
è stato in un progetto per un esame universitario. In quel periodo stavo
leggendo con molto interesse il libro "C++ Manuale di Stile" di Carlo
Pescio. Ebbene aggiungendo al mio modo di codificare le sue regole (è parlo
solo delle regole di codifica) fare una modifica sostanziale su un tipo di
dato che a fine progetto si è rivelato sbagliato mi è costato solo cambiare
una linea e una ricompilazione.
Per contro non si può pretendere da chi scrive software free di essere
sempre perfetto. A volte un progetto free nasce dall'evoluzione di uno
"casereccio". Immagino che questo sia stato il caso di wxWindows.
Magari su questo punto ci potrebbe illuminare Alex Martelli, dati che lui di
librerie ne avrà viste (e scritte parecchie).
Ehi Alex, mandaci del tuo codice..........che noi ce lo studiamo per
benino!!
--
----------
Lello Mele
HOMEPAGE:
http://www.lellomele.it
eMAIL:
v...@libero.it
me...@programmazione.it
-------------
"Esistono due modi per elaborare il progetto di un software.
 Il primo consiste nel renderlo semplice al punto tale che non
 manifesti lacune evidenti. Il secondo consiste nel renderlo
 complicato al punto tale che non manifesti lacune evidenti.
 Il primo metodo e' di gran lunga piu' difficile." [C.A.R. Hoare]

 Grazie a chiunque mi vorra' delucidare su questa questione.
In effetti le librerie WxWindows godono di ottima fama. Tieni presente
pero' che esistono gia' da qualche anno e che quindi quando sono state
progettate concetti che oggi diamo per scontati forse non si erano
ancora affermati. Ed in ogni caso un progetto concreto deve anche fare i
conti con le peculiarita' degli ambienti di sviluppo che supporta.
Ciao,
Nicola

On Thu, 12 Jul 2001 11:28:47 GMT, "Lello Mele"
<NOSPAM_vtm@NOSPAM_libero.it> wrote:
...
Puoi impostare il tuo newsreader per fare in modo che
i follow-up siano marcati con "Re:" invece che con "R:" ?
Grazie
Andrea
--
Andrea Griffini, Programmer
http://www.netservers.com/~agriff