Inhoudsopgave:
Video: Cubetto Handleiding: Foutopsporing (debugging) 2024
Ruby is een vrij flexibele taal, en het geeft je veel tools om verbazingwekkende programma's te schrijven met heel weinig werk. Nieuwe Rubyisten leren echter snel dat met al die kracht een beetje verantwoordelijkheid komt om je code zorgvuldig te testen en debuggen. Gelukkig zijn er enkele eenvoudige technieken die u kunt gebruiken om problemen in uw code te ontrafelen.
Controleer de terminal
De meeste Ruby-programma's worden uitgevoerd vanaf een opdrachtregel met behulp van de terminal of het consoleprogramma van uw platform. Ruby is een geïnterpreteerde taal, wat betekent dat Ruby tijdens het uitvoeren van het programma uw code voor de eerste keer ziet en problemen ondervindt zodra deze verschijnen. Dit is anders dan sommige andere talen die een stap genaamd compilatie , hebben, die vaak problemen kan vinden voordat het programma wordt uitgevoerd.
Omdat je programma on the fly geïnterpreteerd wordt, moet je echt alle delen ervan zorgvuldig testen. Als Ruby een probleem ontdekt, wordt er een waarschuwing of foutmelding afgedrukt naar de terminal. Meestal bevat die foutmelding een beschrijving van het probleem en een geschatte locatie waar het probleem zich voordeed.
De informatie in dat foutbericht is uw eerste aanwijzing over waar u op fouten moet letten.
Ruby probeert te helpen
De foutmeldingen Ruby-displays zijn er in verschillende soorten. Wanneer u de basiscategorieën begrijpt, is het veel eenvoudiger om het probleem op te sporen:
-
NameError-berichten komen vaak voor en worden meestal aangetroffen wanneer u een typefout in uw programma hebt. Als u een variabele of methode probeert te gebruiken, maar de verkeerde naam invoert, kan Ruby deze niet vinden en wordt deze fout weergegeven. Kijk zorgvuldig in uw code voor eventuele naamgevingsfouten. Onthoud dat Ruby hoofdlettergevoelig is, dus uw variabele kan correct gespeld zijn maar er toevallig een kleine letter of een hoofdletter in zitten.
-
Syntax-foutmeldingen gebeuren als u per ongeluk een fout maakt in uw Ruby-code, meestal ontbreekt mijn of gebruikt u een Ruby-sleutelwoord. Als u bijvoorbeeld het eindwoord aan het einde van een if-voorwaarde bent vergeten, laat Ruby u dit weten. Kijk in het gebied van de syntaxisfout voor ontbrekende code of code die tijdens het bewerken door elkaar was gegooid.
-
NoMethodError-berichten betekenen dat u de methode van een object probeert te gebruiken, maar deze is er niet, mogelijk omdat u deze verkeerd hebt gespeld. Wanneer u dit bericht ontvangt, controleert u of de methode in uw broncode voorkomt en of uw spelling correct is.
Er zijn een aantal andere mogelijke fouten, maar deze drie zijn enkele van de meest voorkomende.
Gebruik "puts" om broodkruimels te maken
Soms werkt uw programma vreemd maar geeft Ruby geen foutmelding. Dit is meestal te wijten aan een coderingsfout die programmeurs een logische fout noemen. Dit betekent dat de code niet doet wat u van plan was.
Logicaproblemen zijn moeilijk op te sporen, maar een eenvoudige tool is om foutopsporingsberichten van uw programma op verschillende punten langs het pad van uw code af te drukken. Als u de methode Ruby puts gebruikt, worden uw berichten weergegeven aan de terminal terwijl u het programma uitvoert. Deze boodschap kan u enkele hints geven over waar de code op een bepaald moment loopt en wat de variabelen ervan bevatten. U kunt regels zoals putten "nu in mijn methode" schrijven of "exemplaarvariabele = # {@ mijn_variabele}" plaatsen om een snel gevoel te krijgen voor het gedrag van het programma.
Vraag om hulp
Soms kun je lang naar een programma staren en zie je niet de eenvoudigste fouten recht voor je. Een beproefde techniek in deze gevallen is om het programma opzij te zetten en er later op terug te komen met een frisse blik.
Als dat niet werkt, is er een levendige gemeenschap van Ruby-programmeurs op het internet, en het uitvoeren van enkele snelle Google-zoekopdrachten zal vaak leiden tot een antwoord.
Als al het andere faalt, is het een goede manier om een andere programmeur te vinden die u persoonlijk of online een vraag kunt stellen.