Debugging-Techniken für Entwickler zur Beschleunigung

Debugging-Techniken für Entwickler zur Beschleunigung der Fehlerbehebung in der Produktion

Die Bereitstellung von Produktionsunterstützung für eine Anwendung ist einer der anspruchsvollsten Aspekte der Softwareentwicklung. Die Entwickler werden dem Wartungsteam zugewiesen und arbeiten an der Behebung von Fehlern in der Anwendung. Sie stehen jedoch auch auf Abruf zur Verfügung, falls es zu einem Produktionsausfall kommt. In diesem Fall arbeiten sie daran, die Anwendung bei Bitcoin Profit so schnell wie möglich wieder auf den richtigen Weg zu bringen. Ziel dieses Artikels ist es, eine Reihe von kuratierten Empfehlungen zu geben, damit Sie Fehler in der Produktion verhindern und Probleme viel schneller finden können.

Die Handhabung dieser Anwendungen in der Produktion ist eine komplizierte Aufgabe: Häufig ist keine Dokumentation verfügbar, die Anwendung wurde in einem veralteten Technologiestack geschrieben oder beides. Es gibt nur sehr wenige Schulungen, und es kommt häufig vor, dass man zur Unterstützung einer Anwendung hinzugezogen wird, über die man nur wenig weiß.

Viele Entwickler haben keine Erfahrung im Umgang mit einer Anwendung in der Produktion. Es gibt eine Reihe von Problemen, die in Produktionsumgebungen auftreten und zu Fehlern und Ausfällen führen, die dem Unternehmen im Allgemeinen Umsatzeinbußen in Höhe von Tausenden, manchmal sogar Millionen von Dollar verursachen. Da die Mehrheit der Entwickler nicht mit der Umgebung in Berührung kommt, machen sie zudem immer wieder Fehler, die wiederum diese Probleme verursachen. Diese Liste von Tipps sollte Ihre Arbeit weniger schmerzhaft machen, indem Sie aus der Produktionserfahrung lernen.

Tipp Nr. 1: Entfernen oder automatisieren Sie die gesamte Konfiguration, die für die Ausführung der Anwendung erforderlich ist.

Wie viel Konfiguration ist erforderlich, um die Software auf einem neuen Server zu installieren? In der Vergangenheit konnte es manchmal drei Tage dauern, bis dies abgeschlossen war, jedes Mal, wenn ein neuer Entwickler im Team war. Die Installation der Anwendung würde viele Schritte erfordern, die manuell durchgeführt werden müssen. Im Laufe der Zeit entwickelt sich die Software zu neuen Versionen, die mit diesen Anweisungen inkompatibel werden, und natürlich werden die Anweisungen normalerweise nicht aktualisiert. Plötzlich verbringen Sie viel mehr Zeit als nötig, nur um die Anwendung zum Laufen zu bringen.

Mit dem Aufkommen der Containerisierung ist es viel einfacher geworden, eine Möglichkeit zu bieten, eine Anwendung im Handumdrehen zum Laufen zu bringen, ohne Konfiguration und mit dem zusätzlichen Vorteil, dass Sie, da das Docker-Image in sich geschlossen ist, ein viel geringeres Risiko haben, Probleme mit verschiedenen Versionen des Betriebssystems, der Sprachen und der verwendeten Frameworks zu bekommen.

Gleichermaßen vereinfachen Sie die Einrichtung für Entwickler, so dass es nicht viel Zeit braucht, um einsatzbereit zu sein, einschließlich der IDE-Einrichtung. Ein Entwickler sollte in der Lage sein, in weniger als 30 Minuten von Null auf Held zu wechseln.

Wenn ein Produktionsproblem auftritt, stehen manchmal Ihre besten Experten nicht zur Verfügung (z.B. Urlaub oder Krankheit), und Sie möchten, dass derjenige, den Sie auf das Problem ansetzen, in der Lage ist, es zu lösen, und zwar schnell.

Tipp Nr. 2: Fallen Sie nicht in die Suppenfalle des Technologiestapels

Je weniger Technologien eingesetzt werden, desto besser. Natürlich muss man manchmal das richtige Werkzeug für die Aufgabe einsetzen. Achten Sie jedoch darauf, sich nicht mit „richtigen Werkzeugen“ zu überladen. Sogar Trinkwasser kann zu ernsthaften Gesundheitsproblemen führen, wenn Sie es zu viel tun. Jede neue Sprache und jeder neue Rahmen, der dem Tech-Stack hinzugefügt wird, muss einen klar definierten Entscheidungsprozess durchlaufen, bei dem die Auswirkungen sorgfältig abgewogen werden.

Fügen Sie nicht eine neue Rahmenabhängigkeit hinzu, nur weil Sie eine StringUtils-Klasse benötigen.
Fügen Sie nicht eine völlig neue Sprache hinzu, nur weil Sie ein schnelles Skript schreiben müssen, um Dateien zu verschieben.

Ein großer Stapel von Abhängigkeiten kann Ihnen das Leben schwer machen, wenn Bibliotheken inkompatibel werden oder wenn Sicherheitsbedrohungen entweder für die Frameworks selbst oder für ihre transitiven Abhängigkeiten gefunden werden.

Denken Sie außerdem daran, dass die zusätzliche Komplexität des Stapels es schwierig macht, neue Entwickler für das Team zu finden und auszubilden. Die Leute wechseln zu neuen Rollen laut Bitcoin Profit in anderen Unternehmen, und Sie müssen neue finden. Der Umsatz in Ingenieurteams ist sehr hoch, selbst in Unternehmen, die für ihre großen Vergünstigungen und die Vereinbarkeit von Beruf und Privatleben bekannt sind. Sie möchten das neue Teammitglied so schnell wie möglich finden. Jede neue Technologie, die oben auf dem Technologiestapel hinzugefügt wird, verlängert die Zeit, um einen neuen Kandidaten zu finden, und hat das Potenzial, Neueinstellungen immer teurer zu machen.