Pagina 1 di 2

Tecniche di lettura

Inviato: dom 6 gen 2008, 13:54
da Blizzard
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

Re: Tecniche di lettura

Inviato: dom 6 gen 2008, 14:05
da nuitari
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)

Re: Tecniche di lettura

Inviato: dom 6 gen 2008, 14:23
da cymon
E' anche vero che le tecniche di lettura dipendono molto dalle tecniche di scrittura :roll:
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.

Re: Tecniche di lettura

Inviato: dom 6 gen 2008, 14:53
da robbybby
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.

Re: Tecniche di lettura

Inviato: dom 6 gen 2008, 17:33
da Blizzard
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

Re: Tecniche di lettura

Inviato: dom 6 gen 2008, 18:47
da nuitari
Blizzard ha scritto:@nuitari
se non vado troppo ad impicciarmi dei cavoli tuoi... per quale settore scrivi codice??
Maddechè .
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.

Re: Tecniche di lettura

Inviato: dom 6 gen 2008, 19:28
da FireEater
Blizzard 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
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. :-k

Re: Tecniche di lettura

Inviato: dom 6 gen 2008, 19:35
da Blizzard
@nuitari
e che ti posso dire.... :notworthy: 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 :D 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

Re: Tecniche di lettura

Inviato: dom 6 gen 2008, 19:37
da Blizzard
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. :-k
mmm... e se poi si accorgono di quello che stanno combinando??? =P~

Re: Tecniche di lettura

Inviato: dom 6 gen 2008, 20:36
da nuitari
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 :lol: 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 .

Re: Tecniche di lettura

Inviato: dom 6 gen 2008, 21:45
da Blizzard
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 :lol: 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..
Hahaahhaahah! questa è davvero bella! o brutta... a seconda di quanto sei protagonista dell'incubo :-k
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. :-k "
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 #-o "
@Blizzard
Ehe grazie, complimentoni anche a te! ^^ A saperlo avremmo potuto collaborare :P
Beh! sarebbe stato forte sviluppare assieme! comunque non crederti che ho chissà quali skills!
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 .
ahhhhhhhhhh! è un peccato che non sia andata avanti la cosa... soprattutto se avevi realizzato tutto quel lavoro [-( [-(
Comunque qua in Italia è veramente proibitivo pensare di dedicarsi ad un progettone nell'ambito videoludico :doubt:

Re: Tecniche di lettura

Inviato: dom 6 gen 2008, 22:15
da nuitari
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).

Re: Tecniche di lettura

Inviato: dom 6 gen 2008, 22:42
da Blizzard
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

Re: Tecniche di lettura

Inviato: lun 7 gen 2008, 3:13
da gattino_usb
eheh e che devo dire io :| che spesso a scuola bestemmio contro "piccoli programini-cavolata" in C, al massimo 50 righe di codice :lol: ommioddio mi chiedo come diavolo facciano molti a debuggare milioni e milioni di righe di codice :lol:

sono normale (cio vuol dire che il C è abbastanza astruso) o sono GNUrante? :lol:

Re: Tecniche di lettura

Inviato: lun 7 gen 2008, 3:16
da gattino_usb
robbybby 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
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 :lol: mi veniva molto piu spontaneo :lol:

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 :badgrin: )