It is currently 10 July 2020, 9:55 Advanced search

Generare nuove Request nel debug?

Domande e risposte su come utilizzare Instant Developer Foundation al meglio

Generare nuove Request nel debug?

Postby f.faleschini » 30 June 2020, 9:52

Il debug di inde mostra sulla sinistra tutte le Request.

A volte qualcuna è "enorme". Nel mio caso all'apertura di una videata (che avviene cliccando su un campo, ovvero su un Activate Field) faccio tantissime cose e di conseguenza il debug contenuto in una singola "Reuqest" ha tantissimi dati.

Ad esempio qui sotto nell'immagine potete vedere la Request con ID = 12 che dura 2300 ms, quando clicco su Activate field sulla destra ci vogliono 10 secondi perché il debug si popoli completamente. Nella fattispecie ho un metodo di apertura videata che chiama moltissimi metodi (e che a loro volta scatenano eventi documentali) e quindi in una singola Request c'è moltissimo codice eseguito.

Image

Mi piacerebbe che si potesse "spezzare" il debug, generando Request fittizie, lo scopo è avere un debug più rapidamente cnosultabile (e non aspettare i 10 secondi ogni volta quando so magari che il problema è nelle ultime 5 righe di codice).

Si può fare in qualche modo?

Mi viene in mente che se il metodo legato all'activate field ha questo corpo:

{
PrimaParte;
SecondaParte;
TerzaParte;
}

Se ci fosse un modo (che qui ipotizzo si chiami ForceNewDebugRequest()) per forzare una nuova Request sul debug potrei scrivere:

{
PrimaParte;
ForceNewDebugRequest();
SecondaParte;
ForceNewDebugRequest();
TerzaParte;
}

In questo modo il debug potrebbe apparire così (confrontare con l'immagine sopra):
Image

Se non c'è già un modo farei una proposta di modifica, ma prima di farla volevo capire se c'è già un modo e se questa proposta ha senso oppure no.

Grazie.
f.faleschini
 
Posts: 643
Joined: 12 April 2017, 9:09

Re: Generare nuove Request nel debug?

Postby t.simoncini » 30 June 2020, 10:14

Per esperienza, il modo migliore di gestire il debug è escludere le procedure e i metodi comuni che sai essere testati, collaudati e funzionanti.
Snellisci tutto e rimante tutto più leggibile.
t.simoncini
 
Posts: 1076
Joined: 5 March 2012, 14:00

Re: Generare nuove Request nel debug?

Postby f.faleschini » 30 June 2020, 11:54

Grazie, quello è anche un modo, però a volte, come nell'esempio che ho fatto sopra ho davvero troppe cose da escludere dal debug e non ho mai la certezza che tutto funzioni bene, quindi escludere dal debug un metodo che in futuro mi potrebbe dare un problema è una cosa che non faccio volentieri, la proposta di "spezzare" il debug che ho fatto se fosse possibile sarebbe una soluzione.

Alcuni mesi fa parlando con Matteo Sirri durante un'assistenza proprio di questo problema (si parlava proprio di questo specifico "Activate Field" che mostro nello screenshot) anche lui mi ha proposto di escludere dal debug alcune procedure e di certo è una soluzione efficace.

Ciao.
f.faleschini
 
Posts: 643
Joined: 12 April 2017, 9:09

Re: Generare nuove Request nel debug?

Postby t.simoncini » 30 June 2020, 12:49

Il sono molto pragmatico in questi casi. Valuto sempre:
- Quanto mi da fastidio questa cosa quotidianamente?
- Il fix potrebbe essere utile anche alla maggior parte degli utenti?
- La proposta di modifica quanto potrebbe essere votata?
- Se anche venisse votata sarebbe presa in considerazione da Pro Gamma?
- Quanto tempo dovrei ragionevolmente aspettare per avere la soluzione che mi aspetto?
- Cosa posso fare nel frattempo per migliorare la situazione?

Escludere le procedure collaudate ha innumerevoli vantaggi:
- Migliori le prestazioni dell'applicazione
- Riduci il tempo di apertura della finestra di debug
- Riduci il tempo che serve per leggere il codice che è stato eseguito e rendi più chiaro il flusso
- Su progetti grandi (.NET) si rende addirittura necessario altrimenti il compilatore da errore per la presenza di troppe stringhe nel codice sorgente.

Porta via inizialmente un po' di tempo, ma poi te lo ritrovi dopo.

Riguardo al fatto che non sei sicuro che tutto funzioni bene, il debug mostra sempre il risultato delle funzioni. Quindi se trovi un risultato che non va, puoi sempre riattivare quella funzione specifica e analizzarla.

Io parto sempre escludendo le procedure/funzioni che vengono chiamate molte volte, e che sono sicuro che funzionano correttamente (es. conversione array stringa, formattazione date in modi particolari, ecc...).

Consiglio finale: escludi sempre da dentro INDE, non dalla finestra di debug (potresti cliccare sulle spunte verdi a sx del nome procedura). Così eviti anche il collezionamento delle informazioni.

Una pecca (o feauture, dipende dal punto di vista): il flag "escludi dal debug" non viene sincronizzato su TW, quindi ogni programmatore deve escludere le procedure sulla propria copia. E se riparti dalla copia master, sei punto e a capo.
t.simoncini
 
Posts: 1076
Joined: 5 March 2012, 14:00

Re: Generare nuove Request nel debug?

Postby f.faleschini » 1 July 2020, 6:54

Grazie per la condivisione della tua esperienza.

Direi che la proposta di modifica deve riguardare questo:
Una pecca (o feauture, dipende dal punto di vista): il flag "escludi dal debug" non viene sincronizzato su TW, quindi ogni programmatore deve escludere le procedure sulla propria copia. E se riparti dalla copia master, sei punto e a capo.


Mettersi a escludere meticolosamente le procedure per poi "perdere tutto" siccome non va in TW è un problema. CIoè se decido di escludere una procedura dal debug è perché ho deciso che va fatto e quindi è uno "scrivere codice", peccato non poterlo salvare su TW, in modo che tutti i collaboratori al progetto possano beneficiare della mia scelta.

Posso immaginare perché è fatto così: siccome si può escludere anche dal debug bisognerebbe perndere un lock su TW dal debug, quindi è una modifica non banale.

Vediamo se qualcuno di Progamma commenta così valutiamo se fare la proposta di modifica.

Grazie.

Ciao.
f.faleschini
 
Posts: 643
Joined: 12 April 2017, 9:09

Re: Generare nuove Request nel debug?

Postby t.simoncini » 1 July 2020, 7:21

f.faleschini wrote:Posso immaginare perché è fatto così: siccome si può escludere anche dal debug bisognerebbe perndere un lock su TW dal debug, quindi è una modifica non banale.

E poi non è detto che tutti vogliano escludere dal debug le stesse cose.
Magari programmatori che lavorano su aspetti diversi del sw hanno bisogno di debuggare cose diverse.
t.simoncini
 
Posts: 1076
Joined: 5 March 2012, 14:00

Re: Generare nuove Request nel debug?

Postby dr_whiteriver » 1 July 2020, 7:53

Scusate, ne approfitto per aggiungere un paio da cose... A me piacerebbe che l'escludi da debug fosse visibile da fuori senza dover aprir le proprietà della procedura... anzi sarebbe comodo poterlo impostare anche con il tasto destro del mouse e anche in modo ricorsivo, per esempio escludo dal debug tutte le procedure di una cartella (questo non sono sicuro che non si possa già fare)
Alessandro
User avatar
dr_whiteriver
 
Posts: 327
Joined: 3 September 2012, 13:44

Re: Generare nuove Request nel debug?

Postby t.simoncini » 1 July 2020, 8:22

Puoi selezionare tutte le procedure di una cartella e modificare il flag dalla finestra delle proprietà.

1.png
1.png (55.91 KiB) Viewed 84 times
t.simoncini
 
Posts: 1076
Joined: 5 March 2012, 14:00

Re: Generare nuove Request nel debug?

Postby f.faleschini » 1 July 2020, 10:09

Resta il fatto che poter spezzare in 3 la singola richiesta come ho ipotizzato inizialmente è a questo punto interessante.Con l'escludi dal debug si può fare molto, ma questa novià sarebbe complementare.
f.faleschini
 
Posts: 643
Joined: 12 April 2017, 9:09

Re: Generare nuove Request nel debug?

Postby dr_whiteriver » 1 July 2020, 10:20

Concordo
Alessandro
User avatar
dr_whiteriver
 
Posts: 327
Joined: 3 September 2012, 13:44

Next

Return to Tips & Tricks - Foundation

Who is online

Users browsing this forum: gianlucafabbri and 66 guests