On Mon, 16 Mar 2009 12:30:32 +0100, Gian Mario Tagliaretti <gia...@gnome.org> wrote: > 2009/3/16 Daniele Varrazzo <p...@develer.com>: > > ciao Daniele, > >> mi fai un favore? provi a lanciare >> >> test1.py "__import__('shutil').rmtree('~')" > > mm preferirei di no, tu che dici? > >> ciao ai tuoi file! > > Bisogna sempre prendere le cose senza esagerare, i contesti dove > l'applicazione gira possono essere tendenti all'infinito. > > Analizzando la domanda in oggetto direi che il software in oggetto non > girerà nè in un server di produzione nè sarà dedicato ad un ampia > platea di utilizzatori.
Il problema è che in informatica non si conosce mai il tempo di vita di un oggetto: magari pensi che sia un throw-away, poi lo presenti al capo, a lui piace, lo fa girare più di quanto ti aspettavi, poi un suo amico lo vede, il tuo capo gli dice che è solido come una roccia, allora lui lo prova... Ci sono applicazioni nate per scherzo e diventate titaniche (Flickr per esempio). Un'applicazione estremamente diffusa in abito di retail automobilistico in Italia gira solo se l'utente e il database si chamano "alex", e viene sempre installata come tale! > Passare un dizionario (da analizzare/utilizzare) ad una linea di > comando è comunque una progettazione del software che non sta in piedi > in un contesto produttivo, quindi mi auguro che qui si stia trattando > di uno script per giocare. Se sta giocando quello script, lo sta facendo per imparare qualcosa (analizzando la domanda, questo è quello che ho capito io). Una lezione importante da imparare prima possibile è che non bisogna mai fidarsi dell'input. È meglio impararla prima, da un consiglio, che dopo, da un'esperienza. Secondo me non bisognerebbe mai scrivere codice con due mentalità, una di "brutta copia" e una di "bella copia", per diversi motivi: per permettere di copiare e incollare snippet tra oggetti che metteresti nel primo gruppo e quelli del secondo, perché non si capisce mai quando un tuo programma passa dal primo al secondo gruppo. Ma soprattutto per acquisire una forma mentale. Ovviamente questo non vuol dire generalizzare all'infinito, anche quello è un male. Ma bisogna imparare a riconoscere che c'è qualcosa di profondamente sbagliato in idiomi tipo "eval(stdin.read())", capire perché e non usarli neanche per scherzo. -- Daniele Varrazzo - Develer S.r.l. http://www.develer.com _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python