Come ridurre gli errori in linguaggio dinamico come python e migliorare la qualità del mio codice

5

Inserisco la domanda di origine in stackoverflow , alcune persone mi suggeriscono di postare qui

Ho sempre avuto problemi con il linguaggio dinamico come Python.

Diversi problemi:

  1. Errore di battitura, posso usare il puntatore per ridurre alcuni di questi errori. Ma ci sono ancora alcuni errori che non è stato possibile individuare su pylint.
  2. Errore del tipo di oggetto, ho spesso dimenticato quale tipo di parametro è, int? str? qualche oggetto? Inoltre, ho dimenticato il tipo di qualche oggetto nel mio codice.

Il test delle unità potrebbe aiutarmi a volte, ma non ho sempre tempo sufficiente per fare l'UT. Quando ho bisogno di uno script per fare un piccolo lavoro, la linea di codice è di 100 - 200 linee, non grande, ma non ho il tempo di fare il test unitario, perché ho bisogno di usare lo script il più presto possibile. Quindi, appaiono molti errori.

Quindi, qualche idea su come ridurre il numero di questi problemi?

    
posta jiluo 05.12.2012 - 13:08
fonte

5 risposte

6

Temo che non ci sia niente di meglio dei test unitari in questo caso. A volte i commenti estesi (per ogni metodo, e talvolta anche per una determinata riga di codice) aiutano, ma rimandano solo l'inevitabile sventura:)

Ovviamente i buoni commenti sono sempre utili, indipendentemente dal test unitario esistente o meno.

    
risposta data 05.12.2012 - 13:33
fonte
2

Per il problema del tipo di oggetto è possibile utilizzare Notazione ungherese . La maggior parte dei programmatori che conosco (me compreso) pensano che sia brutto, ma se questo è spesso un problema ricorrente, molto probabilmente funzionerebbe.

Per errori di battitura, un IDE o Texteditor con evidenziazione della sintassi, completamento del codice e funzionalità simili potrebbero aiutare se non lo usi già.

    
risposta data 05.12.2012 - 13:14
fonte
2

Bene, la maggior parte (ma non tutti) di questi problemi può e deve essere gestita dall'IDE, non dal programmatore.

Forse stai solo utilizzando un IDE che non è abbastanza buono per l'attività in corso.

Hai provato IDEA IntelliJ, ad esempio?

    
risposta data 05.12.2012 - 14:10
fonte
2

Con linguaggi dinamici come Python (o Javascript o Ruby, ecc.) ho trovato che il modo migliore per lavorare è scrivere poche righe di codice alla volta (come cinque) e testare mentre si va. Funziona bene perché il ciclo di test di modifica è così breve, solo un paio di secondi.

    
risposta data 15.10.2017 - 22:38
fonte
2

Hai mai provato a misurare quanto tempo impieghi effettivamente a scrivere tutti i test unitari? La mia scommessa è che è necessario meno della metà del tempo necessario per correggere tutti i bug più tardi.

Con la pratica (e soprattutto con TDD), scommetto che è più di un fattore di 10.

In altre parole, saltare il test delle unità perché non hai "tempo" ti costa in realtà più tempo dopo, quando devi correggere i bug che sono sfuggiti e quando non ricordi più il codice.

Quindi forse è meglio investire più tempo in unità testando il codice ora , prima di rilasciarlo, perché anche se lasci che un bug venga eliminato, sarai sicuro di non introdurre più bug quando provi per sistemare qualcosa, visto che avrai sempre più reti di sicurezza per la regressione.

PS: se hai bisogno di provare questo, prova a utilizzare la Tecnica Pomodoro per misurare quanto tempo ci vuole per correggere i bug quando vengono visualizzati dopo aver rilasciato il codice senza test e nel prossimo progetto, utilizzalo per misurare quanto tempo impieghi a scrivere i test unitari prima di rilasciarlo.

    
risposta data 16.10.2017 - 00:01
fonte

Leggi altre domande sui tag