[Python] idio[ma]ticità

enrico franchi enrico.franchi a gmail.com
Lun 20 Apr 2015 18:56:07 CEST


2015-04-20 14:50 GMT+01:00 Marco De Paoli <depaolim a gmail.com>:

> 1. potrei farlo con una meta classe
>

Pessima idea. Ci sono casi in cui le meta-classi sono il sistema piu'
rapido e robusto per avere una certa cosa. In generale sono un overkill. In
generale, non sono la soluzione giusta.

2. potrei inserire un server tornado giusto "per non si sa mai"
>

Non lo farei. Uno strato di architettura "per non si sa mai" e' comunque
uno strato di architettura che si puo' rompere domani prima di avere
provveduto ad un qualunque beneficio per il customer.


> 4. dovrei usare pytest e rifattorizzare tutti i setUp/tearDown del mio
> progetto
>

Questa invece e' una buona idea. Cioe'... rifattorizzare tutto non
necessariamente lo e'. Ma cominciare ad usare PyTest lo e'.
Tipo una volta mi venne la balzana idea di convertire tutta una test-suite
da nose a py.test; ora, i test vennero meglio, piu' chiari piu' robusti. Ci
persi un monte di tempo. Adesso quando devo lavorare ad un progetto con
test nose (o unittest) la mia policy e':

1. continuo a scrivere nose(unittest) finche' non ho un buon motivo
2. scrivo la parte con il buon motivo con py.test
3. a tempo morto riguardo i test, butto nel cesso i test vecchi e poco
significativi (cosa che fa bene comunque), cerco di individuare dei pattern
che beneficiano davvero di py.test e riscrivo quelli, un po' per volta.
4. ogni volta che tocco qualche test specifico, lo riscrivo con py.test (ma
solo dopo che il procedimento di introduzione di py.test e' iniziato,
motivato da una necessita' oggettiva).


> 5. etc. etc. etc.
>
In Python 3 puoi scrivere ...
E' sintassi valida.


> 6. ah, già, anche... dovrei dare un occhiata al progetto pypy
>

Ottima idea.


-- 
.
..: -enrico-
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20150420/1982c579/attachment.html>


Maggiori informazioni sulla lista Python