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

Rispondere a