Slow Dancing With Technology: Debugging, de programmeur en de machine

Schrijver: Judy Howell
Datum Van Creatie: 28 Juli- 2021
Updatedatum: 21 Juni- 2024
Anonim
Top 4 Dying Programming Languages of 2019 | by Clever Programmer
Video: Top 4 Dying Programming Languages of 2019 | by Clever Programmer

Inhoud


Bron: Abscent84 / iStockphoto

Afhaal:

Doordachte leiders hebben een meer vloeiende structuur voor softwareversie bedacht om de ontwikkel- en productieomgevingen te overbruggen, maar computerprogrammering heeft nog steeds een element van tovenarij.

Iedereen die heeft gewerkt aan het coderen van zelfs de meest basale projecten weet dat het proces veel geduld vereist. De vele valkuilen van het helemaal opnieuw proberen schrijven van code zijn een lied en dans van alle manieren waarop een menselijke programmeur of ontwikkelaar het fout kan doen. Het is een lange lijst en het bevat alles van syntaxisfouten, die meestal door de compiler worden opgevangen, tot diepere "vision-level" bugs die een intelligentere beoordeling vereisen. Daartoe leren scholen en opleidingscentra studenten informatica hoe ze een programma kunnen 'debuggen'. Wat interessant is, is echter dat elk individu zijn of haar eigen zeer unieke reactie op deze uitdaging ontwikkelt. In feite kan dit een gebied zijn waar meer dan een beetje persoonlijk inzicht vereist is. (Lees over enkele van de belangrijkste programmeercijfers in The Pioneers of Computer Programming.)


Foutopsporingscode: hoe het werkt

In sommige gevallen kunnen professionals in de informatica middelen van ontwikkelaarsstudio's of programmeeromgevingen gebruiken om bugs in een programma te isoleren. Wanneer dit soort foutafhandeling of systemen niet beschikbaar of nuttig zijn, moet u echter alleen regel voor regel door de foutopsporing gaan. Veel programmeeromgevingen, zoals Microsoft Visual Basic Studio, hebben functies die een duidelijke, visuele regel voor regel "doorlopen" van code mogelijk maken.

Het doorlopen van code helpt op twee belangrijke manieren: ten eerste kunnen programmeurs zien wat er gebeurt als de computer de code leest, en waar de focus gaat in termen van recursieve functies en andere code-interacties. Ten tweede kan de programmeur echter vaak de waarden van verschillende variabelen zien door muisaanwijzeropdrachten of andere delen van de interface te gebruiken. Weten welke waarden in variabelen zijn, is een belangrijke manier om te begrijpen wat de computer doet met de code die wordt gegeven.


Vechtende insecten

Het hierboven beschreven proces klinkt misschien eenvoudig, maar de werkelijke uitdaging van debuggen kan een stuk ingewikkelder zijn. Een uitstekend voorbeeld van dit proces op het werk is te vinden in de tech-thriller met de toepasselijke titel "The Bug" van Ellen Ullman, een voormalige ontwikkelaar en IT-professional wiens proza ​​op een literaire manier schijnt. Hoewel het boek fictie is, onthult het veel over wat er echt aan de hand is wanneer programmeurs en computers met elkaar omgaan.

Afgezien van veel van de donker persoonlijke details in het boek, toont Ullman's weergave van twee mensen, een tester en een programmeur, enkele van de grote uitdagingen waarmee deze carrière-techneuten werden geconfronteerd in het eerdere tijdperk van softwareontwikkeling. Kortom, haar bug, die ze 'The Jester' noemde, ontweek iedereen bij een softwarebedrijf uit de jaren tachtig, waardoor de relatie met de werknemers werd aangetast, het vertrouwen van de investeerders ineenstortte en in het algemeen een onrust veroorzaakte. Ondertussen denkt de auteur nogal wat na over hoe computers ons beïnvloeden, en waarom we, als we willen zegevieren over hun eigenaardigheden, moeten "denken als een machine". (Voor meer informatie over de geschiedenis van programmeren, bekijk Computer programmeren: van machinetaal tot kunstmatige intelligentie.)

Waarom insecten bugs ontwijken

Een reden dat de bug in het boek van Ullman zo moeilijk was om mee om te gaan, is dat hij alleen op vreemde tijden opdook. Deze uitdaging is echt waar voor veel andere glitches (onthoud Toyota's uitgebreide tests na geruchten over een weggelopen Prius door de gebruiker). Stel dat iemand je vertelt dat je een bug hebt. Waar begin je zelfs met het oplossen ervan, tenzij je de computer een probleem kunt laten manifesteren?

De reden voor deze glitchiness, zoals onthuld aan het einde van het boek, is een ander goed voorbeeld van de complexiteit van het schrijven van code voor de personal computer in dat tijdperk - en misschien nog steeds in het onze. In wezen was de bug verborgen in een kleine, geneste functie die eenvoudig een basisoriëntatie bood voor andere stukjes code. Omdat het is geschreven door een externe programmeur en vanwege een gebrek aan communicatie tussen programmeurs, bleef de ware oorzaak van het probleem maandenlang verborgen - een waarheidsgetrouwe verklaring voor de problemen kan voortkomen uit onjuist gedocumenteerd teamwerk.

Als het op een computerprobleem aankomt, kan een lastig detail een anders geordend systeem in chaos brengen. Goede codeervaardigheden, kan daarom soms meer kunst zijn dan wetenschap (Ullman noemt het "waanzin"), waardoor coderen een inherent rommelige onderneming is.

Geen bugs, geen stress - Uw stapsgewijze handleiding voor het creëren van levensveranderende software zonder uw leven te vernietigen

U kunt uw programmeervaardigheden niet verbeteren als niemand om softwarekwaliteit geeft.

De filosofie van debuggen

Programmeurs moeten vaak met computers werken - niet met mensen - om resultaten te bereiken. Ullman suggereert dat codeerders en testers vaak het meest effectief zijn wanneer ze in staat zijn om alle nuances van het menselijk denken en strook redeneren weg te nemen tot de basis logica die computers gebruiken. Dit betekent dat we veel van alles waar we allemaal mee werken elke dag opzij zetten om een ​​heldere focus te krijgen. Het is deze kwaliteit die veel topprofessionals op het gebied van informatica doet gedijen, zelfs in een tijd waarin voor de meeste projecten veel meer kader is opgezet.

Doordachte leiders hebben een meer vloeiende structuur voor softwareversie bedacht om de ontwikkel- en productieomgevingen te overbruggen, maar computerprogrammering heeft nog steeds een element van tovenarij. Daarom zijn de beste programmeurs meer dan alleen structurele codeerders; ze hebben het instinct om uit te roeien en de bugs te repareren die de functionaliteit bedreigen van de machines waarop we in toenemende mate vertrouwen.