[Python] Writing Python like it's Rust
Davide Muzzarelli
davide a muzzarelli.net
Mer 24 Maggio 2023 12:16:16 CEST
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
Maggiori informazioni sulla lista
Python