[Python] inquisitori [was re: Turbopascal??]
Valerio De Carolis
valerio.decarolis a gmail.com
Mer 5 Gen 2011 20:36:01 CET
Il 05/01/2011 19:20, Carlos Catucci ha scritto:
> Cioč, per ogni funzione scrivi una funzione aggiuntiva, questa
> inparticolare ha 9 parametri, il refactoring della funzione originale
> implica ridefinire quella funzione e modificare tutti i punti in cui
> vienechiamata... e tutto questo per rispettare la propria convinzione
> che goto non serva in nessun caso?
>
> Niet tovarich.
>
> Primo ho scritto al volo due righe di codice estrapolando. In realta'
> troverei la maniera di scrivere una funzione di gestione degli errori
> piu' generica. Al posto di 9 parametri avrei passato una struttura (in
> mancanza di oggetti).
> Secondo, mi hai detto di scrivere qualcosa di diverso, senza usare i
> goto e senza superare le 80 righe. Ho fatto quanto chiesto, nei limiti
> di una cosa fatta al volo. Non e' un dogma,. solo che scrivere una cosa
> con GOTO e' per me segno di pigrizia, visto che si puo' scrivere codice
> che non lo preveda e sia altrettanto pulito.
>
> > Non e' piu' pulito cosi?
> Fammici pensare... no. Opinioni :)
Secondo me invece bisogna vedere caso per caso, non esiste un'unica
ricetta e non l'aveva certo Dijkstra tra le mani.
Cosa faresti se invece di scrivere software "standard" dovresti scrivere
software per sistemi embedded (magari con basse risorse)!?
Ha ancora senso creare una miriade di funzioni complesse differenti
(ognuna con i propri parametri e quindi con il relativo stack da
copiare) per gestire compiti semplici e di routine?
Nell'esempio precedente (psycopg) quei goto possono aiutare a migliorare
l'efficienza complessiva: si evita di fare tutti i confronti if e si
passa a delle operazioni che comunque dovranno essere eseguite.
Soprattutto nei dispositivi a basse risorse la differanza tra un jmp e
tutto l'ambaradan necessario per tirare su una funzione si vede,
soprattutto se nel mentre devi gestire qualche interrupt asincrono! ;)
Ciao,
Vale
--
Valerio De Carolis - http://www.decabyte.it
"To invent an airplane is nothing. To build an airplane is something.
But to fly ... is everything. - Ferdinand Ferber"
JUG Roma Coordinator - http://www.jugroma.it
Maggiori informazioni sulla lista
Python