Nuovi capitoli per "Capire wxPython"

Ho appena pubblicato il primo aggiornamento del mio libro Capire wxPython: quattro capitoli, oltre 40 pagine nuove. Adesso il libro è lungo 392 pagine (!) e potete acquistarlo sempre per un prezzo suggerito di 15 euro (!!). Chi l'ha già acquistato ha diritto a scaricare la versione aggiornata, beninteso. E nuovi aggiornamenti arriveranno... oh, se arriveranno.

I nuovi capitoli sono quattro:
  • uno, più breve, sui cosiddetti masked control:  sono caselle di testo che ammettono solo certi valori, in base a "maschere" sofisticate; qui dò qualche (prezioso!) consiglio su come usarli in coppia con i validatori.
  • uno, più lungo, sulle date e le ore: qui faccio una lunga introduzione sugli strumenti e le API che wxPython mette a disposizione, e poi faccio una carrellata dei diversi widget che permettono di selezionare una data/ora.
  • e infine due capitoli sul problema di come testare un'applicazione wxPython. E qui... mi scateno 😀
Se il capitolo sulle date mi ha portato via qualche sana ora di ricerca e di selezione del materiale, i due capitoli sul testing me li sono proprio dovuti inventare da zero. Volete sapere una cosa buffa? Non esiste materiale che spiega come testare una GUI wxPython (e ho l'impressione, neanche una GUI con le Qt... ma restiamo in tema). Al massimo potete trovare qualche polveroso snippet di codice, qualche indicazione generica, e su tutte la sempreverde: usa un framework di GUI automation (spoiler alert: la GUI automation non serve quasi mai davvero). E la ancora-più-sempreverde: non vale la pena di testare la GUI. E nient'altro.

Invece fare gli "unit test" del codice resta fondamentale, e si deve fare anche per il codice delle GUI, ci mancherebbe. Solo che è difficile, se non si sa da dove partire. Bisogna aggirare il problema del main loop di wxPython, ma nello stesso tempo processare gli eventi che servono.

Nella mia esperienza, ho testato abbastanza spesso le mie GUI, ma non avevo mai provato a mettere insieme quello che ho capito sull'argomento: è stato... abbastanza complicato ma credo di avercela fatta. Parto da alcuni suggerimenti generali, e poi affronto scenari di testing via via più sofisticati: da quelli che si possono fare "a motore spento" (con il main loop non attivo), fino alla GUI automation vera e propria.

Il risultato è che questi due capitoli, a mia conoscenza, sono adesso la più completa risorsa che è possibile trovare sull'argomento, anche in inglese.

E adesso? Beh, sto mettendo in cantiere altri aggiornamenti per il libro... gli argomenti non mancano di certo. Ci sono argomenti più noiosi (intendo per me da scrivere...) e altri più stimolanti ma difficili... mi rendo conto che dovrei dare la precedenza alle cose di cui si sente più la mancanza (le liste... le immagini e la grafica...) ma spesso si tratta di cose faticose da organizzare.
In questo momento sono un po' indeciso, ma nel prossimo futuro vedo arrivare gli eventi del mouse e della tastiera (focus, etc), un capitolo faticosissimo sugli event loop, uno sui widget di help per l'utente... e così via. Le vacanze di Natale si avvicinano, e dovrei avere un po' di tempo per lavorarci... Con un pizzico di ottimismo, direi che il prossimo aggiornamento potrebbe uscire a Gennaio.

Commenti

Post più popolari