Pag 4 di 4 PrimaPrima ... 234
Risultati da 76 a 88 di 88
  1. #76
    blue_tech
    ospite

    Predefinito Riferimento: perchè il goto è il male?

    Citazione Originariamente Scritto da working_mad Visualizza Messaggio
    sì ma come ci si arriva allo switch?

    se bisogna replicarlo allora va bene anche senza,
    se ne serve uno allora ci si arriva, udite udite, con i goto
    dipende dalla situazione... ad ogni modo nell'esempio stiamo lavorando sulla funzione ergo ci sarà una chiamata di funzione che ci porta allo switch...

    torniamo sempre lì: ad alto livello, per ogni situazione, il goto è evitabile elegantemente senza dover per forza rinunciare alle prestazioni, manutenzione, ecc...

    EDIT: che poi nell'esempio originale il goto serviva per saltare alle istruzioni degli errori... e abbiam mostrato come fosse possibile fare la stessa cosa senza goto... quello che viene prima di quel punto non ci è dato di saperlo giacchè manca il codice antecedente l'esempio... (esempio che poi è così generale che lascia spazio a varie interpretazioni ma sorvoliamo... )
    Ultima modifica di blue_tech; 12-11-10 alle 21:38:36

  2. #77
    Banned
    Data Registrazione
    04-11-10
    Messaggi
    168

    Predefinito Riferimento: perchè il goto è il male?



    vabbe va, basta.
    magari un giorno arriverete a dover implementare una logica del genere e capirete.

    per adesso sta bene così. se siete contenti voi nella vostra ignoranza, figuratevi io
    Ultima modifica di working_mad; 12-11-10 alle 22:03:29 Motivo: cuttone che tanto non serve a nulla ripetere sempre le stesse cose

  3. #78
    La Borga L'avatar di Il Nero
    Data Registrazione
    31-12-01
    Messaggi
    12,066

    Predefinito Riferimento: perchè il goto è il male?

    Faccio notare che la ragione per evitare il goto non è "Dio si arrabbia" ma "leggibilità e manutenibilità", e tutti gli esempi che avete fatto sono pesantemente meno leggibili dell'espressione con goto (se pensate il contrario siete banalmente in malafede, e ve lo dico io che non ho mai usato un goto, anche se adesso lo sto difendendo in linea di principio).

    E' ovvio che c'è sempre un costrutto alternativo. Il problema è che se il costrutto alternativo è meno leggibile, allora è meglio goto, che è sostanzialmente sempre più veloce.

    Ad esempio per fare la soluzione di blue_tech l'unica è fare una funzione dedicata o mettere il tutto in un blocco try ... catch, nel cui catch si vai poi a mettere lo switch. Peccato che la leggibilità è esattamente la medesima del goto se non peggiore e la velocità è inferiore. In particolare il costrutto switch senza i break è una merda ed è molto più illeggibile dei goto in fila, perchè è un uso "non tradizionale" (anche se frequente) dello switch.

    L'esempio che facevo io è questo:

    Codice:
    for(i = 0;...;...)
    {
     for(j = 0;...;...)
     {
       for(k = 0;...;...)
        if (Array[i][j][k] == N) goto uscita
       //Operazioni che vogliamo fare se e solo se A[i][j][k] != N
      }
      //Operazioni che vogliamo fare se e solo se A[i][j][k] != N
    }
    uscita:
    Certo si può risolvere mettendoci if (...) break all'uscita di ogni for. Peccato che come leggiblità e manutenibilità faccia cagare. E ridisegnare i for a volte fa ancora più cagare. Oppure mettere i loop annidati in una funzione ed usare return, così se ho una roba più complicata che comparare variabili base devo passare 24000 argomenti, o una struct-class apposita. E fa ancora più cagare.
    Ultima modifica di Il Nero; 13-11-10 alle 01:29:43

  4. #79
    LordOrion
    ospite

    Predefinito Riferimento: perchè il goto è il male?

    Citazione Originariamente Scritto da working_mad Visualizza Messaggio


    vabbe va, basta.
    magari un giorno arriverete a dover implementare una logica del genere e capirete.

    per adesso sta bene così. se siete contenti voi nella vostra ignoranza, figuratevi io
    Gia' fatto parecchie volte e mai usato il goto, non era necessario.

    Citazione Originariamente Scritto da Il Nero Visualizza Messaggio
    E' ovvio che c'è sempre un costrutto alternativo. Il problema è che se il costrutto alternativo è meno leggibile, allora è meglio goto, che è sostanzialmente sempre più veloce.
    Ti sbagli: Guardati l'architettura e le istruzioni dei processori ARM e poi capirai perche'.
    Ultima modifica di LordOrion; 13-11-10 alle 01:23:08

  5. #80
    Shogun Assoluto L'avatar di Haruki
    Data Registrazione
    06-10-08
    Località
    ゾンビっす
    Messaggi
    71,500

    Predefinito Riferimento: perchè il goto è il male?

    Codice:
    for(i = 0;...;...)
    {
     for(j = 0;...;...)
     {
       for(k = 0;...;...)
        if (Array[i][j][k] == N) goto uscita
       //Operazioni che vogliamo fare se e solo se A[i][j][k] != N
      }
      //Operazioni che vogliamo fare se e solo se A[i][j][k] != N
    }
    uscita:
    Codice:
    checkarray(Array) {
    for(i = 0;...;...)
    {
     for(j = 0;...;...)
     {
       for(k = 0;...;...)
        if (Array[i][j][k] == N) return
       //Operazioni che vogliamo fare se e solo se A[i][j][k] != N
      }
      //Operazioni che vogliamo fare se e solo se A[i][j][k] != N
    }
    }
    
    checkarray(Array)
    //uscita
    usiamo tutti il goto!

  6. #81
    Shogun Assoluto L'avatar di Haruki
    Data Registrazione
    06-10-08
    Località
    ゾンビっす
    Messaggi
    71,500

    Predefinito Riferimento: perchè il goto è il male?

    Citazione Originariamente Scritto da working_mad Visualizza Messaggio
    sì ma come ci si arriva allo switch?

    se bisogna replicarlo allora va bene anche senza,
    se ne serve uno allora ci si arriva, udite udite, con i goto
    Codice:
    int funz(....) {
        ....
        if (!(err=err1)) {
        ....
    		if (!(err=err2)) {
    		....
    			if (!(err=err3)) {
    			....
    			}
    		}
    	}
    	
    	switch( err ) 
        {
    		case err3:
    			...
    		case err2:
    			...
    		case err1:
    			...
    		break;
       }
       ...
       return rc;
    }
    il risultato di questo è paro paro spiaccicato al tuo esempio

  7. #82
    Banned
    Data Registrazione
    04-11-10
    Messaggi
    168

    Predefinito Riferimento: perchè il goto è il male?

    aaaaah questo sì che è leggibile
    e veloce


    non fate arrabbiare dio, per carità. non utilizzatelo MAI altrimenti verrete scomunicati
    Ultima modifica di working_mad; 13-11-10 alle 08:51:33

  8. #83
    La Borga L'avatar di Il Nero
    Data Registrazione
    31-12-01
    Messaggi
    12,066

    Predefinito Riferimento: perchè il goto è il male?

    Ma perchè non leggete i post fino all'ultima riga ?

  9. #84
    Shogun Assoluto L'avatar di Haruki
    Data Registrazione
    06-10-08
    Località
    ゾンビっす
    Messaggi
    71,500

    Predefinito Riferimento: perchè il goto è il male?

    Citazione Originariamente Scritto da working_mad Visualizza Messaggio
    aaaaah questo sì che è leggibile
    e veloce


    non fate arrabbiare dio, per carità. non utilizzatelo MAI altrimenti verrete scomunicati
    Rallenta? Di un millisecondo? Rispetto al tuo codice c'è solo un condizionale in più, i 3 precedenti erano presenti anche nel tuo codice. Inoltre è leggibilissimo, sicuramente più del goto che ti rimanda chissà dove e chissà in che punto della pagina, mentre qui devi solo scorrere alla parentesi di chiusura dell'IF.

    Citazione Originariamente Scritto da Il Nero Visualizza Messaggio
    Ma perchè non leggete i post fino all'ultima riga ?
    Nero, quando il codice si fa complicato da OBBLIGARTI a usare il goto per evitare di passare 24000 argomenti a una funzione, significa che come design quel codice fa cagare. Non so quanto ne andrei fiero.

    Perché di questo si tratta, scelte di coding e design.

    Ma ovviamente io, così come gli altri, siam visti come dei novellini non usando il goto, quindi le nostre idee fanno schifo a prescindere. Quindi che vuoi che ti dica? Però il mio punto di vista non posso non esternarlo.

  10. #85
    Banned
    Data Registrazione
    04-11-10
    Messaggi
    168

    Predefinito Riferimento: perchè il goto è il male?

    haruki legge una riga sì e una no dei post e fra tutte quelle che legge ne capisce un decimo

    e poi fino a prova contraria siete stati voi detrattori che avete dato dei novellini a noi fin dall'inizio del topic. Adesso non si sa bene perché hai rigirato completamente la frittata

    Ah, se poi quel codice viene eseguito 100 volte in un secondo allora sì che si va VERAMENTE veloce
    chissà poi dove rimanderà un diabolico goto in quella situazione . un pochetto più in giù nel codice.


    Ma qui la domanda è: ti senti ancora di affermare che chi usa il goto in una situazione come questa non capisce un cazzo di programmazione? Se sì, beh, allora non hai capito un cazzo fondamentalmente, se no, bene, almeno hai dimostrato che la differenza fra te e un mulo non sta soltanto nell'avere la coda
    Ultima modifica di working_mad; 13-11-10 alle 11:15:57

  11. #86
    Shogun Assoluto L'avatar di Haruki
    Data Registrazione
    06-10-08
    Località
    ゾンビっす
    Messaggi
    71,500

    Predefinito Riferimento: perchè il goto è il male?

    Citazione Originariamente Scritto da working_mad Visualizza Messaggio
    haruki legge una riga sì e una no dei post e fra tutte quelle che legge ne capisce un decimo
    Ah, se poi quel codice viene eseguito 100 volte in un secondo allora sì che si va VERAMENTE veloce
    Citazione Originariamente Scritto da Haruki Visualizza Messaggio
    quando il codice si fa complicato da OBBLIGARTI a usare il goto per evitare di passare 24000 argomenti a una funzione, significa che come design quel codice fa cagare. Non so quanto ne andrei fiero.
    A quanto vedo, non sono il solo.

    e poi fino a prova contraria siete stati voi detrattori che avete dato dei novellini a noi fin dall'inizio del topic. Adesso non si sa bene perché hai rigirato completamente la frittata
    Non siamo NOI, è tutto il mondo conosciuto. Ci sono postille su ogni singolo libro di programmazione.

    almeno hai dimostrato che la differenza fra te e un mulo non sta soltanto nell'avere la coda
    Passiamo alle offese? Complimenti, bella maturità.

  12. #87
    La Borga L'avatar di Il Nero
    Data Registrazione
    31-12-01
    Messaggi
    12,066

    Predefinito Riferimento: perchè il goto è il male?

    Citazione Originariamente Scritto da Haruki Visualizza Messaggio
    Nero, quando il codice si fa complicato da OBBLIGARTI a usare il goto per evitare di passare 24000 argomenti a una funzione, significa che come design quel codice fa cagare. Non so quanto ne andrei fiero.
    A parte che quest'affermazione è discutibile, nel senso che a volte non c'è modo di evitare di passare numerosi argomenti, indipendentemente da quanto uno è bravo a fare "il design del codice" (es. calcolo di una funzione multi-variabile non-invertibile con argomento valori dell'array e valori esterni), ma soprassediamo.

    Il punto è che la tua versione, se la funzione viene usata una sola volta (e verrà usata una sola volta, altrimenti non sarebbe stato conveniente dall'inizio farla col goto), in realtà è MENO leggibile della versione con il goto, quindi a parte "eh figata, non ci ho messo il goto", non c'è alcuna ragione per preferirla alla versione con il goto.

  13. #88
    Shogun Assoluto L'avatar di Sticky©
    Data Registrazione
    09-08-04
    Località
    Roma
    Messaggi
    36,491

    Predefinito Riferimento: perchè il goto è il male?

    Tutto ciò è molto

    Chiudo, tanto non si arriverà a un punto comune e soprattutto c'è qualcuno che non riesce ad avere una discussione civile, manco fossimo in Backstage o Bar Sport.

    Felice di fare il sistemista.

Pag 4 di 4 PrimaPrima ... 234

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  • Il codice BB è Attivato
  • Le faccine sono Attivato
  • Il codice [IMG] è Attivato
  • Il codice HTML è Disattivato