Sophie

Sophie

distrib > Mandriva > 9.1 > i586 > by-pkgid > f1098342ec4a2b28475e34123ce17201 > files > 1173

howto-html-it-9.1-0.5mdk.noarch.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
<TITLE>Software Release Practice HOWTO: Buone regole di sviluppo</TITLE>
<LINK HREF="Software-Release-Practice-HOWTO-4.html" REL=next>
<LINK HREF="Software-Release-Practice-HOWTO-2.html" REL=previous>
<LINK HREF="Software-Release-Practice-HOWTO.html#toc3" REL=contents>
</HEAD>
<BODY>
<A HREF="Software-Release-Practice-HOWTO-4.html">Avanti</A>
<A HREF="Software-Release-Practice-HOWTO-2.html">Indietro</A>
<A HREF="Software-Release-Practice-HOWTO.html#toc3">Indice</A>
<HR>
<H2><A NAME="s3">3. Buone regole di sviluppo</A></H2>

<P>La maggior parte di queste regole sono volte ad assicurare la portabilit&agrave;,
non solo verso sistemi Linux ma ugualmente verso altri sistemi Unix.
Essere portabile verso altri sistemi Unix non &egrave; solo un segno di
professionalit&agrave; e cortesia del programmatore, ma anche un'assicurazione preziosa
contro eventuali futuri cambiamenti in Linux stesso.
<P>Inoltre, altre persone <EM>cercheranno</EM> di compilare il loro codice su sistemi non-Linux;
con la portabilit&agrave; si ridurr&agrave; il numero di persone perplesse che invieranno fastidiosissime
e-mail.
<P>
<H2><A NAME="ss3.1">3.1 Scrivere in puro ANSI C o in un linguaggio portabile</A>
</H2>

<P>Per la portabilit&agrave; e la stabilit&agrave;, si dovrebbe scrivere in ANSI C o in un
altro linguaggio che sia garantito come portabile in quanto abbia un'implementazione
multi-piattaforma.
<P>Linguaggi di questo tipo includono Python, Perl, Tcl ed Emacs Lisp. Vecchi, semplici
linguaggi shell non sono qualificati; ci sono troppe differenti implementazioni con
sottili idiosincrasie, e l'ambiente shell &egrave; soggetto a interruzioni dovute alle
configurazioni dell'utente come, ad esempio, quelle degli alias delle shell.
<P>Java promette bene come linguaggio portabile, ma le implementazioni disponibili per
Linux sono appena abbozzate e scarsamente integrate con Linux. La scelta di Java &egrave; per ora
il minore dei mali, sebbene possa divenire pi&ugrave; popolare con il tempo.
<P>
<P>
<H2><A NAME="ss3.2">3.2 Seguire le buone regole della portabilit&agrave; del linguaggio C</A>
</H2>

<P>Se si scrive in C, si &egrave; liberi di usare pienamente le caratteristiche ANSI -- prototipi di
funzioni inclusi, che aiuteranno a individuare le inconsistenze tra i diversi moduli. I
compilatori in vecchio stile K&amp;R sono superati.
<P>D'altra parte non si presupponga che alcune caratteristiche specifiche
del GCC come l'opzione '-pipe' o le funzioni nidificate siano disponibili.
Queste si torceranno contro a chiunque faccia un porting verso sistemi
non-Linux o non-GCC.
<P>
<H2><A NAME="ss3.3">3.3 Utilizzare autoconf/ automake/ autoheader</A>
</H2>

<P>Se si scrive in C, usare autoconf/automake/autoheader per risolvere problemi di portabilit&agrave;,
sondare la configurazione del sistema, e confezionare i makefile. Chi installa dai sorgenti si
aspetta, giustamente, di poter digitare "configure; make" e ottenere una struttura pulita.
<P>
<H2><A NAME="ss3.4">3.4 Controllare lo stato del codice prima di rilasciarlo</A>
</H2>

<P>Se si scrive in C, fare un test con '-Wall' ed eliminare gli errori almeno una volta prima di
ciascuna release. Questo blocca un numero sorprendente di errori. Per una totale completezza
si compili anche con '-pedantic'.
<P>Se si scrive in Perl, controllare il codice con 'perl -c', 'perl -w', e 'perl -T' prima di
ciascuna release (si veda la documentazione Perl).
<P>
<HR>
<A HREF="Software-Release-Practice-HOWTO-4.html">Avanti</A>
<A HREF="Software-Release-Practice-HOWTO-2.html">Indietro</A>
<A HREF="Software-Release-Practice-HOWTO.html#toc3">Indice</A>
</BODY>
</HTML>