Ti ringrazio Enrico Marco
Il 9 dicembre 2014 18:37, enrico franchi <enrico.fran...@gmail.com> ha scritto: > > > 2014-12-09 16:46 GMT+00:00 Marco Ippolito <ippolito.ma...@gmail.com>: >> >> Ciao Enrico, >> ammetto la mia ignoranza. >> non capisco perchè in python dovrebbe essere un controsenso. >> > >> >> Se ho capito bene il senso (scusate il gioco di parole) del design by >> contract, l'obiettivo è quello di "dichiarare" in qualche modo >> all'inizio cosa deve produrre un certo pezzo di codice, quali input >> sono accettabili per esso, e le condizioni che devono rimanere vere >> per il chiamante. > > > Non e' solo *dichiararlo*. E' *definirlo*, ma soprattutto *verificarlo*. > >> >> Come dici tu queste idee di fondo mi sembrano essere buone, nel senso >> che aiutano a pensare il codice in termini di "service" fornito >> reciprocamente dai vari componenti, e questo rende il tutto più >> facilmente testabile. > > > Non e' solo questione di essere *testabile*. Essenzialmente si tratta di > roba che e' formalmente dimostrabilmente corretta e che, di conseguenza, non > necessariamente dovrebbe avere bisogno di "test" in senso stretto, perche' > l'ambiente dovrebbe fare i test in modo automatico. Di fatto, un buon numero > di test dovrebbero diventare ridondanti. E tipicamente vuoi che sia fatto > *staticamente*. > > >> >> >> Perchè in python dovrebbe essere un controsenso? > > > Perche' e' un linguaggio completamente dinamico che vive praticamente > interamente a runtime. > L'unico punto in cui e' veramente possibile fare le verifiche e' a runtime. > E in generale si tratta di roba relativamente costosa da verificare (perche' > vuoi che i contratti siano sensati, non limitarti a quelli facili da > testare). > >> >> Quello che alla fine vorrei utilizzare in modo pratico e concreto è >> delle modalità meglio se codificate e già in uso, che mi aiutino a >> pensare in anticipo a modi "intelligenti" di scrivere il codice. Non >> potrebbe servire l'approccio Design by Contract? > > > Boh. "Potrebbe" servire, certo. Metti conto che la metodologia come definita > da manuale non mi risulta usata praticamente da nessuno. Per me e' una di > quelle cose che a volte torna comoda come strumento concettuale, ma poi la > cosa finisce li. > > In generale fa bene sapere che c'e', fa bene sapere come funziona. Fa anche > bene saperci ragionare. Ma poi, per me, finisce li. YMMV. > > > -- > . > ..: -enrico- > > _______________________________________________ > Python mailing list > Python@lists.python.it > http://lists.python.it/mailman/listinfo/python > _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python