[Python] inquisitori [was re: Turbopascal??]

Daniele Varrazzo piro a develer.com
Mer 5 Gen 2011 18:32:55 CET


On Wed, 5 Jan 2011 18:21:19 +0100, Carlos Catucci
<carlos.catucci a gmail.com> wrote:
>> Il GOTO in C io lo ho sempre considerato una bestemmia.
> 
>>
>> Si vede che non hai mai gestito gli errori. :)
>>
>> Riscrivi una funzione come questa <http://tinyurl.com/2esxn2q> senza
>> usare
>> goto e valuta se il risultato č migliore. Codice limitato a 80 colonne,
>> prego.

>  554   if (!(egtrid = PyObject_CallFunction(group,"i",2)))
>  555   {
>  556       fn_exit( rv, egtrid, ebqual, gtrid, egtrid, format_id, item,
> group, m  );
>  557   }
>  558   if (!(gtrid = _xid_decode64(egtrid)))
>  559   {
>  560       fn_exit( rv, egtrid, ebqual, gtrid, egtrid, format_id, item,
> group, m  );
>  561   }
>  562   if (!(ebqual = PyObject_CallFunction(group, "i", 3)))
>  563   {
>  564       fn_exit( rv, egtrid, ebqual, gtrid, egtrid, format_id, item,
> group, m  );
>  565   }
>  566   if (!(bqual = _xid_decode64(ebqual)))
>  567   {
>  568       fn_exit( rv, egtrid, ebqual, gtrid, egtrid, format_id, item,
> group, m  );
>  569   }
>  570   /* Try to build the xid with the parsed material */
>  571   rv = (XidObject *)PyObject_CallFunctionObjArgs((PyObject
*)&XidType,
>  572   format_id, gtrid, bqual, NULL);
> 
>  ... PyObject fn_exit( rv, egtrid, ebqual, gtrid, egtrid, format_id,
item,
> group, m )
>  ... {
>  ...   Py_XDECREF(bqual);
>        Py_XDECREF(ebqual);
>        Py_XDECREF(gtrid);
>        Py_XDECREF(egtrid);
>        Py_XDECREF(format_id);
>        Py_XDECREF(item);
>        Py_XDECREF(group);
>        Py_XDECREF(m);
>        return rv;
>  ... }

Cioč, per ogni funzione scrivi una funzione aggiuntiva, questa in
particolare ha 9 parametri, il refactoring della funzione originale implica
ridefinire quella funzione e modificare tutti i punti in cui viene
chiamata... e tutto questo per rispettare la propria convinzione che goto
non serva in nessun caso? 

I dogma sono una brutta bestia. :)


> Non e' piu' pulito cosi?

Fammici pensare... no. Opinioni :)


-- 
Daniele Varrazzo - Develer S.r.l. 
http://www.develer.com


Maggiori informazioni sulla lista Python