(a) Kodestykke til brug af Google Maps geokode -API (b) Dockerfil, der indeholder miljøspecifikation, der kræves for at køre kodestykke. Kredit:Horton &Parnin
Et team af forskere ved North Carolina State University har for nylig foretaget en empirisk analyse af den eksekverbare status for Python -kodestykker, der deles på GitHub. Deres undersøgelse, forududgivet på arXiv, præsenterer også Gistable, en ny database med eksekverbare Python -kodeuddrag på GitHubs hovedsystem, som kunne muliggøre reproducerbare undersøgelser inden for software engineering.
Hver dag, softwareudviklere verden over opretter og deler kode online for at demonstrere og skitsere nye programmeringskoncepter. GitHub er en af de største online platforme, hvor udviklere kan dele deres kodestykker og samarbejde om udvikling af software. I øjeblikket, den indeholder over 300, 000 Python -uddrag og over 4,5 millioner gister på en række programmeringssprog.
Selvom kodestykker offentliggjort online kan være meget nyttige, nogle gange er de ikke direkte eksekverbare af andre. Dette kan skyldes analysefejl i koden eller problemer med udførelse af uddrag i miljøer, der indeholder uopfyldte afhængigheder.
For at få en bedre forståelse af, hvor mange kodestykker, der er hostet på GitHubs hovedsystem, der faktisk er eksekverbare, forskere ved North Carolina State University foretog en grundig evaluering af eksekverbarheden af offentligt tilgængelige Python -scripts hostet på platformen. Deres undersøgelse havde til formål at identificere almindelige problemer med udførelsen af kodestykker, hvilket kunne give værdifuld indsigt for yderligere forskning om automatiseret softwarekonfigurationsstyring.
I deres undersøgelse, forskerne præsenterede også Gistable, en database og udvidelig ramme bygget på GitHubs hovedsystem. Gistable indeholder 10, 259 Python -kodestykker, heraf cirka 5, 000 kommer med en Dockerfile for at konfigurere og udføre dem uden importfejl.
"Vores arbejde med Gistable var motiveret som en del af et større projekt om automatisk konfiguration af applikationsmiljøer, "Eric Horton, en af forskerne, der gennemførte undersøgelsen, fortalte Tech Xplore. "I betragtning af en kodebase, såsom de uddrag, der blev studeret i Gistable, vi ønsker at finde en proces, der kan bygge et tilstrækkeligt eksekveringsmiljø for dem uden at kræve input fra en udvikler. For at gøre dette, vi måtte først træde tilbage og besvare et par spørgsmål. Først, er dette en almindelig anvendelse? Vi var nødt til at etablere en grundlinje for, hvor ofte eksisterende applikationer har brug for en slags ikke-triviel konfiguration. Sekund, når den ikke kan eksekveres, hvilken type konfiguration er nødvendig for at muliggøre udførelse? "
I deres undersøgelse, forskerne fandt ud af, at 75,6 procent af analyserede Python -gists krævede betydelige konfigurationer for at overvinde problemer som manglende afhængigheder, konfigurationsfiler, afhængighed af et specifikt operativsystem, eller andre miljøkonfigurationsudfordringer. Ud over, de antagelser, som udviklere gør om ressource navne, når de forsøger at løse konfigurationsfejl, viste sig at være korrekte mindre end halvdelen af tiden.
"Vi fandt ud af, at omkring 30 procent af vores prøve faldt i kategorien 'svært at konfigurere', hvor den mest almindelige konfigurationsbesvær er afhængigheder på eksterne biblioteker, "Horton forklarede." Vores forskning i den nærmeste fremtid vil fokusere på teknikker til at finde og installere disse biblioteker. Bagefter, vi håber at løse andre almindelige konfigurationsproblemer, der blev opdaget som en del af Gistable. "
Samlet set, et utilstrækkeligt konfigureret miljø var den primære faktor, der forhindrede Python -kodestykker i at kunne eksekveres. Mens i nogle tilfælde, korrekte applikationsmiljøkonfigurationer kunne gendannes automatisk, andre krævede yderligere indgreb. I fremtiden, forskerne planlægger at undersøge strategier for konsekvent at udføre effektive miljøkonfigurationer.
"Jeg tror, at den mest meningsfulde præstation af denne undersøgelse var vores undersøgelse af, hvordan udviklere udfører konfiguration manuelt, "Horton sagde." Ikke kun bekræftede svarene fra deltagerne, at dette i mange tilfælde er et hårdt problem, men de hjalp os også med at kategorisere ting, der kan gøre konfigurationen vanskelig. Dette er meget nyttigt, fordi det peger os på en konkret liste over emner til fremtidig forskning. "
© 2018 Tech Xplore