Sono spesso incaricato di eseguire il debug di un'applicazione nel mio lavoro. È un'applicazione BI che implementiamo nelle aziende, che include un ambiente di test e un ambiente di produzione. Mi chiedo se ci sono app / strumenti / metodi che le persone possono suggerire, sulla base di questi vincoli:
Il debugger non può essere utilizzato sul sito client o localmente, poiché il software dipende da applicazioni di terze parti personalizzate per le quali non abbiamo ambienti di test. (EDIT: per essere onesti, in alcuni casi è possibile eseguire il debug a livello locale. Se non utilizziamo altro che il codice principale. Gran parte del codice problematico risiede in una dll che incapsula comunicazioni specifiche di terze parti: socket, pipe di processo, chiamate soap, logica personalizzata che modifica il comportamento del codice principale. In genere durante un'implementazione o un miglioramento per un client, scriveremmo un nuovo codice in quest'area.)
Non esiste praticamente alcuna registrazione nelle nostre app. Non ci sono test unitari.
Il controllo versione ha solo 1 versione della soluzione completa (utilizzando 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).
Non è possibile riprodurre localmente, spesso i tempi non possono essere riprodotti nell'ambiente di test (è molto probabile che test e produzione non siano la stessa versione).
Esiste un'alta probabilità che la versione utilizzata dal client sia diversa da quella su sorgente sicura. Questo perché i singoli file vengono aggiornati, che hanno una 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 ha alcuna documentazione o conoscenza di questo. Un errore piuttosto comune che vedo è la funzione / metodo non trovato o la chiamata del metodo ha troppi / troppi parametri specificati in un ambiente client.
Questa è una soluzione .net VB
Impossibile installare alcun software sui siti client, ma è possibile localmente
La nostra applicazione è estremamente personalizzabile, ma purtroppo la logica di personalizzazione è distribuita su tutte le classi e file, dal front-end fino al livello dati, comprese le modifiche personalizzate apportate al database in base al client.
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 spiegano in qualche modo 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 di dirlo ... sì, lo so; Voglio sparare anche a me stesso. Non aiuta che ci sia il codice spaghetti, centinaia di avvisi del compilatore e polimorfismo rotto che DAVVERO dovrebbe essere riparato, ma non ho voce in capitolo.
Il tipo più comune di errori in cui mi imbatto sono errori di riferimento null, cast non validi e mancate corrispondenze della firma 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. I peggiori sono gli errori che non hanno traccia, nessuna procedura di riproduzione 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 sparirà più tardi.
So che questo viene fuori come un po 'di rabbia, e in una certa misura lo è. Ma sono alla disperata ricerca di opzioni. Ci sono altri metodi / strumenti che posso usare?