|
From: Bernardo I. <be...@de...> - 2002-05-01 14:25:33
|
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 > Allora io vedo che molti che non hanno tempo (come me) a casa per mett= ersi > a scaricare tutti i file delle SDL, configurare un monte di file, e po= i > andare a fare il make e gli dice che manca SDL_porcatroia.h !! > Maremma putt...!! Questo e' un problema tipico di tutti i progetti grossi. Mi e' capitato di lavorare su dei progetti che per essere compilati richiedevano modific= he arcane al setup del compilatore, di Windows NT e le versioni esatte di varie librerie _NON_ reperibili su Internet! Imparare a configurarsi l'ambiente di sviluppo fa parte delle cose che ogni programmatore deve imparare prima o poi. Non dico che dobbiate riuscirci senza alcun aiuto: potete chiedere aiuto a chi l'ha gia' fatto oppure a me. (percio' hai fatto bene a chiedere sulla mailing-list :-) > Per favore perch=E9 non fate un bello zip con dentro tutte le librerir= e > messe in cartelle default ritunite sotto una tipo c:\Programmi\SDL\ > che poi saranno uguali per tutti (in modo da non toccare setting.in)? > Uno basta che aggiunga una funzione nuova e tocca andare a cercare > quella maledetta libreria, configurare ecc... Poi questo zip lo uppate > su un bell'ftp come si deve (no il CVS!! vi prego!!) ed ognuno se lo > scarica. Il problema e' la mancanza di documentazione. La cosa migliore da fare e' avere un documento che descrive tutti i pacchetti esterni necessari pe= r compilare il gioco. Questo documento _DEVE_ essere mantenuto aggiornato via via che si aggiungono nuovi pacchetti o che cambiano le versioni. Per questo non credo molto nella documentazione fatta con Word e messa in un posto separato dai sorgenti: nessuno si scomoda mai per tenerla allineata. Un file di testo nel CVS e' la cosa piu' sana: si edita con lo stesso editor che si usa per il C e capita per forza sotto gli occhi di chiunque scarica i sorgenti. Ho aggiunto nel CVS il file "INSTALL" che contiene la lista dei package che ha postato Federico. Ovviamente prima di poterlo leggere bisogna aver= e il WinCVS funzionante, ma questo e' documentato su SourceForge e, se non erro, anche nella nostra roadmap. > A me piacerebbe zazzicare un po' anche a casa con questo gioco, ma se = devo > stare 1 giornata a configurarmelo mi passa la voglia! Purtroppo quelli= che > tirano avanti anche su cose non loro (e va benissimo intendiamoci) fan= no > come effetto collaterale l'allontanamento degli altri dal progetto per= ch=E9 > per i neofiti come me andare a leggere un codice scritto da un'altro =E8 > difficile, e se hai delle bell'idee e voglia di programmare svanisce > seguita da quelche imprecazione. Su questo hai proprio ragione: e' verissimo che leggere i sorgenti scrit= ti da altri e' molto piu' difficile che scrivere il codice da soli. Per mitigare il problema, da una parte tutti devono scrivere codice leggibile e ben documentato, ma dall'altra si deve imparare a capire il codice anch= e quando e' scritto con i piedi. Ci vuole molta esperienza, e certe volte far girare il programma in single-step con il debugger e' l'unico modo di capirci qualcosa. Io quando non ci capisco niente uso questa terapia d'urto: comincio a ripulire il codice via via che lo leggo: elimino il codice che non serve a niente ed e' stato lasciato per errore, spezzo le istruzioni troppo lunghe, metto dei nomi sensati alle variabili, correggo i commenti che non si capiscono... Alla fine ottengo una cosa piu' leggibile che, salvo errori, si compila e funziona ancora come prima. Anche se funzionalmente il codice rimane identico, vale la pena di fare un commit nel CVS per risparmiare lo stesso lavoro agli altri. Non siate timidi: non importa chi e' l'autore originale del codice. Una volta che il sorgente sta nel CVS e' dovere di tutti mantenerlo pulito e leggibile. - --=20 // Bernardo Innocenti - Develer S.r.l., R&D dept. \X/ http://www.develer.com/ -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.6 (GNU/Linux) Comment: For info see http://www.gnupg.org iEYEARECAAYFAjzP8sIACgkQltU4TfxqZsrQlQCePGScQcvrSqfIlY1YZeVIXEYk /m8AoK+YWWhBeo2ml1sCc38EWgSBxazF =3DJTJ8 -----END PGP SIGNATURE----- |