On 24/05/23 10:25, Luca Bacchi wrote:
Sono incappato in questo articolo:
[...]
e devo riconoscere che descrive un generale approccio allo sviluppo in
Python in cui mi sono molto riconosciuto.
Idem!
In pratica la tendenza è quella ad usare il più possibile tutti quegli
strumenti e quei costrutti che le ultime versioni di Python forniscono
per, passatemi il termine, rendere Python più nella direzione dei
linguaggi staticamente tipati. [...]
Nel mio caso mi riferisco soprattutto ai Type Hints e alle dataclasses.
Anche io uso entrambi, è più facile notare errori prima ancora di
lanciare i test e l'autocompletamento funziona meglio.
Qualcuno direbbe: se pensi che la tipizzazione statica sia migliore
allora perché non usare Java al posto di Python?
Le differenze tra Java e Python sono ben altre ;)
A parte che dopo JavaScript, Python è il linguaggio con cui sono più a
mio agio, in realtà penso che la strategia di "sviluppare per
iterazioni" in cui prima sviluppo e testo se le mie idee sono corrette e
funzionano; e poi aggiungo i Type Hint e definisco meglio i tipi con
delle classi o delle dataclasses... In sostanza faccio refactoring e
irrobustisco ciò che ho fatto, non sua una stratagia che mi dispiace.
Personalmente ragiono top down e scrivo funzioni brevi.
Sviluppo creando rapidamente funzioni e metodi vuoti usando i type
hints. Mi aiuta a pensare e a intuire il funzionamento più velocemente.
Infine riempio funzioni e metodi, naturalmente implementando i test. Per
evitare errori commento o salto le chiamate alle parti ancora vuote o
uso dei mock temporanei.
Qualcuno nella lista si trova nella mia stessa situazione? Pensate anche
voi che lo sviluppo in Python moderno non possa effettivamente fare a
meno di questi strumenti?
A me sono utili. A volte prevengono certi tipi di errore ma soprattutto
mi aiutano a velocizzare e semplificano il processo mentale.
Buona giornata Luca! :)
Davide Muzzarelli
_______________________________________________
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python