Complimenti a tutti coloro che hanno spiegato il codice.
Ora permettetemi un commento.
Internet è un grande strumento per imparare, purtroppo si trova anche un sacco di spazzatura, più il tempo passa più la spazzatura aumenta. Come professionista del settore iniziai a usare internet (e I newsgroup prima di essa) al suo inizio, la maggior parte di chi pubblicava sapeva il fatto suo, ma ovviamente pure alcuni di loro sbagliavano, per cui occorreva leggere con cautela. Proprio ieri mi è capitato, per lavoro, di dovere fare una cosa di cui non sapevo nulla in un linguaggio di programmazione nuovo per me, una ricerca Google mi ha dato più domande (situazioni simili alla mia) che risposte, le risposte o erano molto diverse o riferivano agli altri articoli; alla fine ho dovuto risolvere da me.
Il codice in questione fa parte del gruppo “spazzatura”. Cerca di implementare il metodo descritto dalla pagina wiki (infatti l’articolo è una traduzione dalla pagina wiki inglese, pure gli esempi sono gli stessi), ma fa un sacco di errori, primo di tutti l’allocazione della tabella degli alfabeti che è perfettamente inutile in quanto (come viene descritto nell’articolo) il metodo si può implementare banalmente.
L’errore che salta subito agli occhi è un bel stack overflow fatto notare dal nostro esperto @DispatchCode, ossia aggiungendo caratteri oltre il limite della lunghezza di una stringa.
Altro errore che mostra la poca conoscenza di programmazione dell’autore sono le istruzioni exit() all’interno di un metodo, che sono una delle tecniche “no no no” di programmazione. E ci sarebbe da continuare (ma ho già scritto troppo e ora devo andare). Scrivete qualcosa del genere in un colloquio di lavoro e vi trovate subito fuori dalla porta. Anzi, tale codice può essere usato in un colloquio come esempio di “trovare i dieci errori” (è capitato a me molte volte)
In altre parole, questo è una delle situazioni in cui il codice trovato è un classico esempio delle cose “da non fare”.
Ora permettetemi un commento.
Internet è un grande strumento per imparare, purtroppo si trova anche un sacco di spazzatura, più il tempo passa più la spazzatura aumenta. Come professionista del settore iniziai a usare internet (e I newsgroup prima di essa) al suo inizio, la maggior parte di chi pubblicava sapeva il fatto suo, ma ovviamente pure alcuni di loro sbagliavano, per cui occorreva leggere con cautela. Proprio ieri mi è capitato, per lavoro, di dovere fare una cosa di cui non sapevo nulla in un linguaggio di programmazione nuovo per me, una ricerca Google mi ha dato più domande (situazioni simili alla mia) che risposte, le risposte o erano molto diverse o riferivano agli altri articoli; alla fine ho dovuto risolvere da me.
Il codice in questione fa parte del gruppo “spazzatura”. Cerca di implementare il metodo descritto dalla pagina wiki (infatti l’articolo è una traduzione dalla pagina wiki inglese, pure gli esempi sono gli stessi), ma fa un sacco di errori, primo di tutti l’allocazione della tabella degli alfabeti che è perfettamente inutile in quanto (come viene descritto nell’articolo) il metodo si può implementare banalmente.
L’errore che salta subito agli occhi è un bel stack overflow fatto notare dal nostro esperto @DispatchCode, ossia aggiungendo caratteri oltre il limite della lunghezza di una stringa.
Altro errore che mostra la poca conoscenza di programmazione dell’autore sono le istruzioni exit() all’interno di un metodo, che sono una delle tecniche “no no no” di programmazione. E ci sarebbe da continuare (ma ho già scritto troppo e ora devo andare). Scrivete qualcosa del genere in un colloquio di lavoro e vi trovate subito fuori dalla porta. Anzi, tale codice può essere usato in un colloquio come esempio di “trovare i dieci errori” (è capitato a me molte volte)
In altre parole, questo è una delle situazioni in cui il codice trovato è un classico esempio delle cose “da non fare”.