Langsames Tanzen mit Technologie: Debuggen, der Programmierer und die Maschine

Autor: Judy Howell
Erstelldatum: 28 Juli 2021
Aktualisierungsdatum: 21 Juni 2024
Anonim
Gerald Richter - Perl::LanguageServer & Debugger für Visual Studio Code u.a. Editoren
Video: Gerald Richter - Perl::LanguageServer & Debugger für Visual Studio Code u.a. Editoren

Inhalt


Quelle: Abscent84 / iStockphoto

Wegbringen:

Nachdenkliche Führungskräfte haben sich eine flüssigere Software-Release-Struktur ausgedacht, um die Entwicklungs- und Produktionsumgebungen zu überbrücken, aber die Computerprogrammierung enthält immer noch ein zauberhaftes Element.

Jeder, der an der Programmierung der grundlegendsten Projekte gearbeitet hat, weiß, dass der Prozess ein gutes Stück Geduld erfordert. Die zahlreichen Fallstricke beim Versuch, Code von Grund auf neu zu schreiben, sind ein Lied und ein Tanz auf die vielen Arten, auf die ein menschlicher Programmierer oder Entwickler etwas falsch machen kann. Es ist eine lange Liste, und sie enthält alles von Syntaxfehlern, die normalerweise vom Compiler abgefangen werden, bis zu tieferen Fehlern auf "Vision-Ebene", die eine intelligentere Überprüfung erfordern. Zu diesem Zweck unterrichten Schulen und Ausbildungszentren Informatikstudenten, wie sie ein Programm "debuggen" können. Interessant ist jedoch, dass jeder Einzelne seine ganz eigene Antwort auf diese Herausforderung entwickelt. In der Tat kann dies ein Bereich sein, in dem mehr als ein wenig persönlicher Einblick erforderlich ist. (Lesen Sie über einige der wichtigsten Programmierfiguren in Die Pioniere der Computerprogrammierung.)


Debugging-Code: Wie es gemacht wird

In einigen Fällen können Informatiker Ressourcen aus Entwicklerstudios oder Programmierumgebungen verwenden, um Fehler in einem Programm zu isolieren. Wenn diese Art von Fehlerbehandlung oder System nicht verfügbar oder nützlich sind, muss für das Debuggen der Code Zeile für Zeile durchlaufen werden. Viele Programmierumgebungen, wie beispielsweise Microsoft Visual Basic Studio, verfügen über Funktionen, die ein klares, visuelles, zeilenweises "Durchlaufen" des Codes ermöglichen.

Das Durchlaufen von Code hilft auf zwei Arten: Erstens können Programmierer sehen, was passiert, wenn der Computer den Code liest und wo der Fokus in Bezug auf rekursive Funktionen und andere Code-Interaktionen liegt. Zweitens kann der Programmierer jedoch häufig die Werte verschiedener Variablen mithilfe von Mouseover-Befehlen oder anderen Teilen der Schnittstelle anzeigen. Zu wissen, welche Werte in Variablen enthalten sind, ist eine wichtige Methode, um zu verstehen, wie der Computer mit dem angegebenen Code umgeht.


Battling Bugs

Der oben beschriebene Prozess mag einfach klingen, aber die eigentliche Herausforderung beim Debuggen kann viel komplizierter sein. Ein hervorragendes Beispiel für diesen Prozess bei der Arbeit ist der Tech-Thriller "The Bug" von Ellen Ullman, einer ehemaligen Entwicklerin und IT-Fachkraft, deren Prosa literarisch glänzt. Obwohl es sich bei dem Buch um eine Fiktion handelt, verrät es viel darüber, was tatsächlich passiert, wenn Programmierer und Computer interagieren.

Ullmans Darstellung von zwei Personen, einem Tester und einem Programmierer, zeigt einige der größten Herausforderungen, denen sich diese Karrieretechniker in der frühen Ära der Softwareentwicklung gegenübersahen. Ihr Fehler, den sie "The Jester" nennt, entging im Grunde jedem in einem Software-Unternehmen der 1980er Jahre, belastete die Mitarbeiterbeziehungen, brach das Vertrauen der Anleger zusammen und verursachte allgemein einen Aufruhr. In der Zwischenzeit reflektiert der Autor einiges darüber, wie sich Computer auf uns auswirken und warum wir "wie eine Maschine denken" müssen, wenn wir über ihre Eigenheiten triumphieren wollen. (Informationen zur Programmiergeschichte finden Sie unter Computerprogrammierung: Von der Maschinensprache zur künstlichen Intelligenz.)

Warum Bugs der Erfassung ausweichen

Ein Grund, warum der Fehler in Ullmans Buch so schwer zu beheben war, ist, dass er nur zu ungeraden Zeiten auftauchte. Diese Herausforderung trifft wirklich auf viele andere derartige Pannen zu (erinnern Sie sich an die umfangreichen Versuche von Toyota nach Gerüchten der Benutzer über einen außer Kontrolle geratenen Prius). Angenommen, jemand sagt Ihnen, dass Sie einen Fehler haben. Wo fangen Sie überhaupt an, das Problem zu beheben, es sei denn, Sie können den Computer als Problem manifestieren?

Der Grund für diese Panne, die am Ende des Buches aufgezeigt wurde, ist ein weiteres großartiges Beispiel für die Komplexität des Schreibens von Code für den Personal Computer in dieser Zeit - und vielleicht noch in unserer. Im Wesentlichen war der Fehler in einer kleinen, verschachtelten Funktion verborgen, die lediglich eine grundlegende Orientierung für andere Codeteile bot. Da es von einem Drittanbieter-Programmierer geschrieben wurde und die Kommunikation zwischen den Programmierern fehlte, blieb die wahre Ursache des Problems monatelang verborgen - ein wahrer Beweis für die Probleme kann durch unsachgemäß dokumentierte Teamarbeit entstehen.

Wenn es um einen Computerfehler geht, kann ein heikles Detail ein ansonsten geordnetes System ins Chaos stürzen. Gute Programmierkenntnisse sind daher manchmal mehr Kunst als Wissenschaft (Ullman nennt es "Wahnsinn"), was das Programmieren zu einem inhärent chaotischen Geschäft macht.

Keine Bugs, kein Stress - Ihre schrittweise Anleitung zur Erstellung lebensverändernder Software, ohne Ihr Leben zu zerstören

Sie können Ihre Programmierkenntnisse nicht verbessern, wenn sich niemand um die Softwarequalität kümmert.

Die Philosophie des Debuggens

Programmierer müssen oft mit Computern arbeiten - nicht mit Menschen - um Ergebnisse zu erzielen. Ullman schlägt vor, dass Programmierer und Tester oft am effektivsten sind, wenn sie alle Nuancen menschlichen Denkens und Denkens auf die Basislogik des Computers reduzieren können. Dies bedeutet, viel von dem beiseite zu legen, mit dem wir jeden Tag zusammenarbeiten, um eine klare Fokussierung zu erreichen. Es ist diese Qualität, die es vielen Top-Informatik-Profis ermöglicht, zu gedeihen, selbst in einer Zeit, in der für die meisten Projekte viel mehr Rahmenbedingungen geschaffen wurden.

Nachdenkliche Führungskräfte haben sich eine flüssigere Software-Release-Struktur ausgedacht, um die Entwicklungs- und Produktionsumgebungen zu überbrücken, aber die Computerprogrammierung enthält immer noch ein zauberhaftes Element. Deshalb sind die besten Programmierer mehr als nur strukturelle Programmierer. Sie haben den Instinkt, die Fehler auszurotten und zu beheben, die die Funktionalität der Maschinen bedrohen, auf die wir uns zunehmend verlassen.