Ich werde häufig mit dem Debuggen einer Anwendung in meinem Job beauftragt. Es ist eine BI-Anwendung, die wir für Unternehmen bereitstellen, einschließlich einer Testumgebung und einer Produktionsumgebung. Ich frage mich, ob es Apps / Tools / Methoden gibt, die die Leute basierend auf diesen Einschränkungen vorschlagen können:
Der Debugger kann nicht auf Client-Sites oder lokal verwendet werden, da die Software von benutzerdefinierten Drittanbieteranwendungen abhängt, für die wir keine Testumgebungen haben. (BEARBEITEN: um fair zu sein, ist es in einigen Fällen möglich, lokal zu debuggen. Wenn wir nur den Kerncode verwenden. Ein Großteil des problematischen Codes befindet sich in einer DLL, die die Kommunikation mit Drittanbietern einschließt: Sockets, Prozesspipes, Seifenanrufe, Benutzerdefinierte Logik, die das Verhalten des Kerncodes ändert. In der Regel schreiben wir während einer Implementierung oder Erweiterung für einen Client neuen Code in diesen Bereich.)
In unseren Apps erfolgt praktisch keine Protokollierung. Es gibt keine Komponententests.
Die Versionskontrolle verfügt nur über eine Version der vollständigen Lösung (unter Verwendung von Source Safe 2005). Es ist also nicht möglich, eine frühere Version der gesamten Lösung zu erhalten, sondern nur einzelne Dateien. (Es sei denn, jemand kennt sich damit aus).
Kann nicht lokal reproduziert werden, kann häufig nicht in der Testumgebung reproduziert werden (hohe Wahrscheinlichkeit, dass Test und Produktion nicht dieselbe Version sind).
Es besteht eine hohe Wahrscheinlichkeit, dass sich die vom Client verwendete Version von der auf source safe unterscheidet. Dies liegt daran, dass einzelne Dateien aktualisiert werden, die eine benutzerdefinierte Logik für diesen bestimmten Client enthalten. Oft geschieht eine Aktualisierung einer Binärdatei, die Änderungen an mehreren anderen Binärdateien erfordert. Wenn jedoch ein Commit durchgeführt wird, hat niemand Aufzeichnungen oder Kenntnisse darüber. Ein etwas häufiger Fehler, den ich sehe, ist, dass die Funktion / Methode nicht gefunden wurde oder dass in einer Client-Umgebung zu viele / zu wenige Parameter angegeben wurden.
Dies ist eine .net VB-Lösung
Kann keine Software auf Client-Sites installieren, kann aber lokal
Unsere Anwendung ist extrem anpassbar, aber leider ist die Anpassungslogik über alle Klassen und Dateien verteilt, vom Front-End bis zur Datenschicht, einschließlich kundenspezifischer Änderungen an der Datenbank auf Client-Basis.
Der Code enthält praktisch keine Kommentare. Es gibt keine Dokumentation zur Architektur. Keine Dokumentation über die API. Das einzige, was wir haben, sind Hunderte von E-Mail-Ketten, die etwas erklären, was los ist. Die einzigen Leute, die den Code kennen, sind diejenigen, die ihn ursprünglich geschrieben haben, aber sie sind nicht länger Entwickler, so dass sie sich nicht so sehr darauf einlassen.
Und bevor du es sagst ... ja, ich weiß; Ich will mich auch erschießen. Es hilft nicht, dass es Spaghetti-Code, Hunderte von Compiler-Warnungen und einen kaputten Polymorphismus gibt, der WIRKLICH behoben werden sollte, aber ich kann nicht mitreden.
Die häufigsten Fehler, auf die ich stoße, sind Nullreferenzfehler, ungültige Umwandlungen und fehlende Funktionen / Funktionssignaturinkongruenzen. Manchmal habe ich Glück und die Ereignisanzeige protokolliert die Klassen-, Methoden- und Ausnahmemeldung. Es ist nicht das hilfreichste, aber es ist immer noch etwas. Das Schlimmste sind die Fehler, die keine Spur haben, keine Wiederholungsschritte außer einem Screenshot und allgemeine Fehlermeldungen wie die oben genannten. Manchmal ist es nicht möglich herauszufinden, warum sie aufgetreten sind, nur um zu beten, dass die Umgebung nicht richtig konfiguriert ist und dass sie später verschwindet.
Ich weiß, das kommt ein bisschen scherzhaft rüber, und bis zu einem gewissen Grad ist es das auch. Aber ich bin verzweifelt nach Optionen. Gibt es andere Methoden / Tools, die ich verwenden kann?