Ho spesso il compito di eseguire il debug di un'applicazione nel mio lavoro. È un'applicazione BI che distribuiamo alle aziende, che include un ambiente di test e un ambiente di produzione. Mi chiedo se ci siano app / strumenti / metodi che le persone possono suggerire, in base a questi vincoli:
-
Il debugger non può essere utilizzato sul sito del cliente o localmente, perché il software dipende da applicazioni di terze parti personalizzate per le quali non abbiamo ambienti di test. (EDIT: per essere onesti, è possibile eseguire il debug localmente in alcuni casi.Se non usiamo altro che il codice core.Molto del codice problematico risiede in una DLL che incapsula comunicazioni specifiche di terze parti: socket, pipe di processo, chiamate di sapone, logica personalizzata che modifica il comportamento del codice core. Tipicamente durante un'implementazione o un miglioramento per un cliente, scriveremmo un nuovo codice in quest'area.)
-
Non c'è praticamente nessuna registrazione nelle nostre app. Non ci sono test unitari.
-
Il controllo versione ha solo 1 versione della soluzione completa (usando source safe 2005). Quindi non è possibile ottenere una versione precedente dell'intera soluzione, solo singoli file. (A meno che qualcuno non sappia come aggirare questo).
-
Impossibile riprodurre localmente, spesso i tempi non possono riprodursi sull'ambiente di test (alta probabilità che test e produzione non siano la stessa versione).
-
C'è un'alta probabilità che la versione che il client sta usando sia diversa da quella sulla fonte sicura. Questo perché i singoli file vengono aggiornati, con logica personalizzata incorporata per quel client specifico. Spesso ciò che accade è un aggiornamento a un binario, che richiede modifiche a molti altri binari, ma quando viene eseguito un commit, nessuno ne ha alcuna conoscenza o conoscenza. Un errore piuttosto comune che vedo è "Funzione / Metodo non trovato" o "Chiamata al metodo ha troppi / troppi pochi parametri specificati" in un ambiente client.
-
Questa è una soluzione .net VB
-
Impossibile installare alcun software sui siti client, ma può localmente
-
La nostra applicazione è estremamente personalizzabile, ma sfortunatamente la logica di personalizzazione è distribuita su tutte le classi e file, dal front-end fino al livello dati, incluse le modifiche personalizzate apportate al database su un client base.
-
Non ci sono praticamente commenti nel codice. Non c'è documentazione sull'architettura. Nessuna documentazione sull'API. L'unica cosa che abbiamo sono centinaia e centinaia di catene di e-mail che in qualche modo spiegano cosa sta succedendo. Le uniche persone che conoscono il codice sono quelle che lo hanno originariamente scritto, ma non sono più sviluppatori per dire, quindi non vengono coinvolti così tanto.
E prima che tu lo dica ... sì, lo so; Voglio spararmi anche io. Non aiuta che ci sia il codice spaghetti, centinaia di avvertenze sul compilatore e il polimorfismo rotto che VERAMENTE dovrebbe essere corretto, ma non ho voce in capitolo.
Il tipo più comune di errori che ho riscontrato sono errori di riferimento nulli, conversioni non valide e mancate corrispondenze di funzioni / funzioni mancanti. A volte sono fortunato e il visualizzatore di eventi registra la classe, il metodo e il messaggio di eccezione. Non è il più utile, ma è ancora qualcosa. Il peggiore sono gli errori che non hanno traccia, non ripropongono passaggi oltre a uno screenshot e sono messaggi di errore generici come quelli sopra menzionati. A volte non è possibile scoprire perché si sono verificati, solo per pregare che l'ambiente non sia configurato correttamente e che andrà via più tardi.
So che questo è un po 'esagerato, e in una certa misura lo è. Ma sono alla disperata ricerca di opzioni. Ci sono altri metodi / strumenti che posso usare?