Tecniche di lettura
Moderatore: Staff
Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
- Blizzard
- Master
- Messaggi: 1509
- Iscritto il: mar 2 gen 2007, 22:53
- Nome Cognome: Giovanni Santostefano
- Slackware: 12.2
- Kernel: 2.6.27.7-smp
- Desktop: Fluxbox
- Contatta:
Tecniche di lettura
ciao,
vorrei aprire una discussione sul modo in cui si dovrebbe affrontare la lettura di un sorgente di dimensioni... linux.
Per quello che mi riguarda non sono mai andato oltre l'irrlicht... ma non so perchè anche se enorme riuscivo a leggerne il sorgente in maniera davvero semplice (sarà che il C++ comunque aiuta.... senza polemiche però).
Mentre per quanto riguarda linux non sono riuscito mai a cavare un ragno dal buco... Ovviamente non mi sono messo con l'intenzione di capire linux... ma almeno lo scheduler pensavo di arivare a farmi un'idea di come potesse girare... invece mi perdo gia a partire dalle strutture dati enormi.
Quello che mi chiedo è:
Mettiamo caso che un tizio viene ingaggiato da M$ per lavorare su un pezzo del codice di Windows perchè questi non funziona (situazione realistica no???)
Deve mettersi dinanzi ad una parte di codice mai visto che coopera con altri milioni di righe di codice mai visti prima... come si srotola questa situazione???
Quando ho lavorato per una sviluppatrice avevo dei compiti e un progetto su cui lavorare che doveva integrarsi con un altro... la cosa è stata abbastanza tranquilla perchè avevo poche classi di giunzione cui fare capo... li resto era a me!
Ma se dovevo lavorare strettamente su qualche aspetto del progetto (il programma principale cui il mio doveva unirsi) non avrei saputo come raccapezzarmi in quello sterminato elenco di classi e codice!
Voi come affrontate situazioni simili??? (spero di non essere stupido io [-o< )
ciao
Gio
vorrei aprire una discussione sul modo in cui si dovrebbe affrontare la lettura di un sorgente di dimensioni... linux.
Per quello che mi riguarda non sono mai andato oltre l'irrlicht... ma non so perchè anche se enorme riuscivo a leggerne il sorgente in maniera davvero semplice (sarà che il C++ comunque aiuta.... senza polemiche però).
Mentre per quanto riguarda linux non sono riuscito mai a cavare un ragno dal buco... Ovviamente non mi sono messo con l'intenzione di capire linux... ma almeno lo scheduler pensavo di arivare a farmi un'idea di come potesse girare... invece mi perdo gia a partire dalle strutture dati enormi.
Quello che mi chiedo è:
Mettiamo caso che un tizio viene ingaggiato da M$ per lavorare su un pezzo del codice di Windows perchè questi non funziona (situazione realistica no???)
Deve mettersi dinanzi ad una parte di codice mai visto che coopera con altri milioni di righe di codice mai visti prima... come si srotola questa situazione???
Quando ho lavorato per una sviluppatrice avevo dei compiti e un progetto su cui lavorare che doveva integrarsi con un altro... la cosa è stata abbastanza tranquilla perchè avevo poche classi di giunzione cui fare capo... li resto era a me!
Ma se dovevo lavorare strettamente su qualche aspetto del progetto (il programma principale cui il mio doveva unirsi) non avrei saputo come raccapezzarmi in quello sterminato elenco di classi e codice!
Voi come affrontate situazioni simili??? (spero di non essere stupido io [-o< )
ciao
Gio
- nuitari
- Linux 3.x
- Messaggi: 777
- Iscritto il: dom 14 ott 2007, 12:51
- Slackware: 12.0
- Località: San Colombano al Lambro
- Contatta:
Re: Tecniche di lettura
Boh.. esperienza?
Per quel che mi riguarda ho lavorato su progetti enormi, e tutt'ora ci lavoro. Dopo il primo, il resto è in discesa.
Molto aiutano gli IDE. Già il fatto di poter richiamare la definizione di una funzione o delle variabili in base al contesto, aiuta. Stesso discorso la possibilità di poter "collassare" i blocchi (per il C/C++ strutture, classi, funzioni)
Per quel che mi riguarda ho lavorato su progetti enormi, e tutt'ora ci lavoro. Dopo il primo, il resto è in discesa.
Molto aiutano gli IDE. Già il fatto di poter richiamare la definizione di una funzione o delle variabili in base al contesto, aiuta. Stesso discorso la possibilità di poter "collassare" i blocchi (per il C/C++ strutture, classi, funzioni)
- cymon
- Linux 2.x
- Messaggi: 430
- Iscritto il: ven 5 gen 2007, 1:40
- Slackware: 13.1
- Kernel: 2.6.33.4-smp
- Desktop: Fluxbox
- Località: Milano
- Contatta:
Re: Tecniche di lettura
E' anche vero che le tecniche di lettura dipendono molto dalle tecniche di scrittura
Ho sempre pensato che del buon codice non sia solo del codice funzionante, ma anche del codice che si riesca a leggere facilmente.
Sfortunatamente una vasta branca di sottocultura informatica più gangstarappa crede sia più figo riuscire a chiudere diciotto riferimenti in mezza riga arrivando a dei capolavori di crittografia informatica piuttosto inquietanti, piuttosto che stendere chiaramente e CON COMMENTI quello le proprie linee di codice.
Ho sempre pensato che del buon codice non sia solo del codice funzionante, ma anche del codice che si riesca a leggere facilmente.
Sfortunatamente una vasta branca di sottocultura informatica più gangstarappa crede sia più figo riuscire a chiudere diciotto riferimenti in mezza riga arrivando a dei capolavori di crittografia informatica piuttosto inquietanti, piuttosto che stendere chiaramente e CON COMMENTI quello le proprie linee di codice.
- robbybby
- Linux 4.x
- Messaggi: 1223
- Iscritto il: sab 16 dic 2006, 10:48
- Slackware: 13.1 / 64 bit
- Kernel: 3.3.x
- Desktop: KDE 4.4.5
- Località: Fra Trantor e Terminus
Re: Tecniche di lettura
Un codice BEN commentato aiuto enormemente.
Purtroppo ho visto (e messo le mani) anche su codice quasi senza commenti, con nomi di variabili senza senso, e con formattazioni del testo "alla membro di segugio".
E li', perdi molto tempo solo a riuscire a leggere, prima di riuscire a capirlo.
Invece, con altro codice, ben scritto e ben commentato, la situazione e' piu' facile.
Quando ci metti mano, molte volte ti aiutano anche i debugger, oltre agli IDE.
Se metti mano a piu' porzioni di codice, scritte tutte dalla stessa persona, dopo un po' entri nel suo stile, e il lavoro e' piu' facile.
Purtroppo ho visto (e messo le mani) anche su codice quasi senza commenti, con nomi di variabili senza senso, e con formattazioni del testo "alla membro di segugio".
E li', perdi molto tempo solo a riuscire a leggere, prima di riuscire a capirlo.
Invece, con altro codice, ben scritto e ben commentato, la situazione e' piu' facile.
Quando ci metti mano, molte volte ti aiutano anche i debugger, oltre agli IDE.
Se metti mano a piu' porzioni di codice, scritte tutte dalla stessa persona, dopo un po' entri nel suo stile, e il lavoro e' piu' facile.
- Blizzard
- Master
- Messaggi: 1509
- Iscritto il: mar 2 gen 2007, 22:53
- Nome Cognome: Giovanni Santostefano
- Slackware: 12.2
- Kernel: 2.6.27.7-smp
- Desktop: Fluxbox
- Contatta:
Re: Tecniche di lettura
ciao,
in quanto ai commenti beh! sono uno dei sostenitori del fatto che sono fondamentali e commento sempre ampiamente il codice che scrivo... forse per prendere pratica dovrei cercarmi qualche codice bello grosso e parecchio commentato prima di passare a leggere codici ostici e magari anche scarsamente commentati.
@nuitari
se non vado troppo ad impicciarmi dei cavoli tuoi... per quale settore scrivi codice??
grazie
ciao
Gio
in quanto ai commenti beh! sono uno dei sostenitori del fatto che sono fondamentali e commento sempre ampiamente il codice che scrivo... forse per prendere pratica dovrei cercarmi qualche codice bello grosso e parecchio commentato prima di passare a leggere codici ostici e magari anche scarsamente commentati.
@nuitari
se non vado troppo ad impicciarmi dei cavoli tuoi... per quale settore scrivi codice??
grazie
ciao
Gio
- nuitari
- Linux 3.x
- Messaggi: 777
- Iscritto il: dom 14 ott 2007, 12:51
- Slackware: 12.0
- Località: San Colombano al Lambro
- Contatta:
Re: Tecniche di lettura
Maddechè .Blizzard ha scritto:@nuitari
se non vado troppo ad impicciarmi dei cavoli tuoi... per quale settore scrivi codice??
Attualmente lavoro nel settore web, curo lo sviluppo di un framework 50% MVC e 50% a componenti.
In passato ho lavorato in molti altri campi comunque, tra qui quello della pubblica amministrazione (tribunale minorile di Milano), quello videoludico (ho sviluppato gran parte di un server MMORPG), quello bancario, etc.
- FireEater
- Linux 3.x
- Messaggi: 508
- Iscritto il: sab 5 feb 2005, 0:00
- Nome Cognome: Giuseppe M.
- Slackware: Current
- Kernel: 2.6.32.7-smp
- Desktop: kde 4.3.4
- Località: Cagliari <---> Torino
Re: Tecniche di lettura
CiaoBlizzard ha scritto:ciao,
Quello che mi chiedo è:
Mettiamo caso che un tizio viene ingaggiato da M$ per lavorare su un pezzo del codice di Windows perchè questi non funziona (situazione realistica no???)
Deve mettersi dinanzi ad una parte di codice mai visto che coopera con altri milioni di righe di codice mai visti prima... come si srotola questa situazione???
Gio
Io credo(SPERO) che i grossi progetti fatti in M$, o in qualsiasi società seria, oltre a milioni di righe di codice(commentate o meno) contengano anche documentazione e soprattutto diagrammi UML.
- Blizzard
- Master
- Messaggi: 1509
- Iscritto il: mar 2 gen 2007, 22:53
- Nome Cognome: Giovanni Santostefano
- Slackware: 12.2
- Kernel: 2.6.27.7-smp
- Desktop: Fluxbox
- Contatta:
Re: Tecniche di lettura
@nuitari
e che ti posso dire.... sei un mito :P
Anche io ho lavorato su un mmorpg... ma per un breve periodo(roba estiva) con la winterdyne (tizi inglesi abbastanza sconosciuti tranne il boss ex warhammer online).
Dal conto mio mi occupavo di scrivere sul motore irrlicht la sezione riguardante il terrain rendering. Una bella esperienza... molto istruttiva, anche perchè irr dal canto suo ha un comparto di gestione del terrain davvero povero... pensa che fino a che lo utilizzavo non aveva neanche un qualche sistema di splatting... ma solo una detail map.
ciao
Gio
e che ti posso dire.... sei un mito :P
Anche io ho lavorato su un mmorpg... ma per un breve periodo(roba estiva) con la winterdyne (tizi inglesi abbastanza sconosciuti tranne il boss ex warhammer online).
Dal conto mio mi occupavo di scrivere sul motore irrlicht la sezione riguardante il terrain rendering. Una bella esperienza... molto istruttiva, anche perchè irr dal canto suo ha un comparto di gestione del terrain davvero povero... pensa che fino a che lo utilizzavo non aveva neanche un qualche sistema di splatting... ma solo una detail map.
ciao
Gio
- Blizzard
- Master
- Messaggi: 1509
- Iscritto il: mar 2 gen 2007, 22:53
- Nome Cognome: Giovanni Santostefano
- Slackware: 12.2
- Kernel: 2.6.27.7-smp
- Desktop: Fluxbox
- Contatta:
Re: Tecniche di lettura
mmm... e se poi si accorgono di quello che stanno combinando??? =P~Ciao
Io credo(SPERO) che i grossi progetti fatti in M$, o in qualsiasi società seria, oltre a milioni di righe di codice(commentate o meno) contengano anche documentazione e soprattutto diagrammi UML.
- nuitari
- Linux 3.x
- Messaggi: 777
- Iscritto il: dom 14 ott 2007, 12:51
- Slackware: 12.0
- Località: San Colombano al Lambro
- Contatta:
Re: Tecniche di lettura
Ora vi faccio ridere:
Il mio lavoro per anni è stato quello di debuggare il codice altrui. Il mio modus operandi prevedeva, prima d'ogni cosa, il restyling estetico del codice: spazi, indentazione, etc.
Beh, quando mi ammalavo con febbroni assurdi, il mio incubo ricorrente era quello di dover sistemare listati di milioni di righe totalmente disordinati, con centinaia di livelli d'indentazione Arrivavo tipo a metà e m'accorgevo che avevo sbagliato tutto, per cui dovevo ricominciare dall'inizio, ma più sistemavo e più m'incasinavo . Malattie da programmatore..
@Blizzard
Ehe grazie, complimentoni anche a te! ^^ A saperlo avremmo potuto collaborare :P
Io mi sono occupato principalmente del network (basato su richieste asincrone con notifica di completamento, un meccanismo del kernel windoze) e del protocollo, dell'engine di gestione del DB (basato su file memory mapped), del sistema di clustering (perchè i server giravano su diverse macchine collegate dividendosi il carico), della gestione della memoria/buffer (con garbage collection etc) e di parte dell'engine di scripting.
Avevo anche cominciato con l'IA, ma poi... è finito tutto perchè non sono più riuscito a trovare fondi a causa della mancanza di collaboratori .
Il mio lavoro per anni è stato quello di debuggare il codice altrui. Il mio modus operandi prevedeva, prima d'ogni cosa, il restyling estetico del codice: spazi, indentazione, etc.
Beh, quando mi ammalavo con febbroni assurdi, il mio incubo ricorrente era quello di dover sistemare listati di milioni di righe totalmente disordinati, con centinaia di livelli d'indentazione Arrivavo tipo a metà e m'accorgevo che avevo sbagliato tutto, per cui dovevo ricominciare dall'inizio, ma più sistemavo e più m'incasinavo . Malattie da programmatore..
@Blizzard
Ehe grazie, complimentoni anche a te! ^^ A saperlo avremmo potuto collaborare :P
Io mi sono occupato principalmente del network (basato su richieste asincrone con notifica di completamento, un meccanismo del kernel windoze) e del protocollo, dell'engine di gestione del DB (basato su file memory mapped), del sistema di clustering (perchè i server giravano su diverse macchine collegate dividendosi il carico), della gestione della memoria/buffer (con garbage collection etc) e di parte dell'engine di scripting.
Avevo anche cominciato con l'IA, ma poi... è finito tutto perchè non sono più riuscito a trovare fondi a causa della mancanza di collaboratori .
- Blizzard
- Master
- Messaggi: 1509
- Iscritto il: mar 2 gen 2007, 22:53
- Nome Cognome: Giovanni Santostefano
- Slackware: 12.2
- Kernel: 2.6.27.7-smp
- Desktop: Fluxbox
- Contatta:
Re: Tecniche di lettura
Hahaahhaahah! questa è davvero bella! o brutta... a seconda di quanto sei protagonista dell'incuboBeh, quando mi ammalavo con febbroni assurdi, il mio incubo ricorrente era quello di dover sistemare listati di milioni di righe totalmente disordinati, con centinaia di livelli d'indentazione Arrivavo tipo a metà e m'accorgevo che avevo sbagliato tutto, per cui dovevo ricominciare dall'inizio, ma più sistemavo e più m'incasinavo . Malattie da programmatore..
Comunque a me son capitate due cose assurde:
La prima era che stavo scrivendo il codice di Rebirth of Paradroid ed ero arrivato ad un punto che non riuscivo a risolvere... arrivo fino alle 2:00 e niente da fare ... quel coso non voleva girare come doveva. Mi butto sul letto... mi risveglio la mattina dopo che avevo capito errore e soluzione! (Chissà quale santo dovevo ringraziare!)
La seconda cosa è una mattina mi arriva un coinquilino (Che non conosceva neanche troppo i giochi moderni) e mi dice:
"Ma ieri notte che stavi a dì... parlavi di qualcosa F.E.A.R. ... il motore fisico di F.E.A.R. "
e io:
"Che??? ma se io neanche ne so molto di motori fisici... e poi chissà che cavolo stavo a dire... perchè non mi ricordo niente??? Magari era qualcosa di sensato "
Beh! sarebbe stato forte sviluppare assieme! comunque non crederti che ho chissà quali skills!@Blizzard
Ehe grazie, complimentoni anche a te! ^^ A saperlo avremmo potuto collaborare :P
ahhhhhhhhhh! è un peccato che non sia andata avanti la cosa... soprattutto se avevi realizzato tutto quel lavoro [-( [-(Io mi sono occupato principalmente del network (basato su richieste asincrone con notifica di completamento, un meccanismo del kernel windoze) e del protocollo, dell'engine di gestione del DB (basato su file memory mapped), del sistema di clustering (perchè i server giravano su diverse macchine collegate dividendosi il carico), della gestione della memoria/buffer (con garbage collection etc) e di parte dell'engine di scripting.
Avevo anche cominciato con l'IA, ma poi... è finito tutto perchè non sono più riuscito a trovare fondi a causa della mancanza di collaboratori .
Comunque qua in Italia è veramente proibitivo pensare di dedicarsi ad un progettone nell'ambito videoludico
- nuitari
- Linux 3.x
- Messaggi: 777
- Iscritto il: dom 14 ott 2007, 12:51
- Slackware: 12.0
- Località: San Colombano al Lambro
- Contatta:
Re: Tecniche di lettura
Lascia perdere va... tra l'altro il codice ce l'ho ancora tutto, migliaia e migliaia di righe di codice buttate nel cesso.
Comunque, sul discorso del sonno: è scientificamente dimostrato che il cervello continua ad elaborare nel sonno ciò a cui hai pensato prima d'andare a letto. E' una vera e propria tecnica che, personalmente, ho usato più volte. Aiuta sia a memorizzare che elaborare (sono serio).
Comunque, sul discorso del sonno: è scientificamente dimostrato che il cervello continua ad elaborare nel sonno ciò a cui hai pensato prima d'andare a letto. E' una vera e propria tecnica che, personalmente, ho usato più volte. Aiuta sia a memorizzare che elaborare (sono serio).
- Blizzard
- Master
- Messaggi: 1509
- Iscritto il: mar 2 gen 2007, 22:53
- Nome Cognome: Giovanni Santostefano
- Slackware: 12.2
- Kernel: 2.6.27.7-smp
- Desktop: Fluxbox
- Contatta:
Re: Tecniche di lettura
Hei! ma dato che il codice è ad uno stadio parecchio avanzato (almeno il lato server) perchè non tenti di trovare qualche acquirente che magari è deciso ad acquistarlo...
Anche se in ogni caso è comunque un lavoro che può essere ripreso e portato avanti o riusato per futuri progetti... alla fine non penso sia lavoro perduto
Anche se in ogni caso è comunque un lavoro che può essere ripreso e portato avanti o riusato per futuri progetti... alla fine non penso sia lavoro perduto
- gattino_usb
- Linux 2.x
- Messaggi: 205
- Iscritto il: mar 25 dic 2007, 11:48
- Nome Cognome: Alberto Rosso
- Slackware: Current
- Kernel: 2.6.27
- Desktop: Xfce
- Distribuzione: Debian, XUbuntu
- Località: Cittadella (Padova)
Re: Tecniche di lettura
eheh e che devo dire io che spesso a scuola bestemmio contro "piccoli programini-cavolata" in C, al massimo 50 righe di codice ommioddio mi chiedo come diavolo facciano molti a debuggare milioni e milioni di righe di codice
sono normale (cio vuol dire che il C è abbastanza astruso) o sono GNUrante?
sono normale (cio vuol dire che il C è abbastanza astruso) o sono GNUrante?
- gattino_usb
- Linux 2.x
- Messaggi: 205
- Iscritto il: mar 25 dic 2007, 11:48
- Nome Cognome: Alberto Rosso
- Slackware: Current
- Kernel: 2.6.27
- Desktop: Xfce
- Distribuzione: Debian, XUbuntu
- Località: Cittadella (Padova)
Re: Tecniche di lettura
ma figurati che mi è capitato di essermi talmente rotto degli inglesismi delle parole-chiave di C che con un'enorme lista di define scrivevo codice in dialetto veneto mi veniva molto piu spontaneorobbybby ha scritto:Un codice BEN commentato aiuto enormemente.
Purtroppo ho visto (e messo le mani) anche su codice quasi senza commenti, con nomi di variabili senza senso
era na roba del tipo
(escludendo i define)
#include <stdio.h>
#include <stdlib.h>
prinsipae()
scumissia
variabieintiera bepi xeuguaea 10;
variabieintiera toni xeuguaea 20;
variabieintiera jiji xeuguaea 0;
jiji xeuguaea bepi pi toni;
stampamefora("el risultato xe %d \n",jiji);
mesorottoescatoe;
finissi
(meno male che non tutti sono come me,altrimenti per programmare bisognerebbe possedere una laurea in lingue )
Ultima modifica di gattino_usb il lun 7 gen 2008, 3:23, modificato 1 volta in totale.