Go is een fantastische programmeertaal. Het komt ook met een uitgebreide toolketen. Veel ontwikkelaars gebruiken gewoon teksteditors met of zonder plug-ins om Go-code te schrijven, maar vele anderen geven er de voorkeur aan de juiste IDE's te gebruiken (geïntegreerde ontwikkelomgevingen).
In deze tutorial leer je over de huidige status van Go IDE's en ben je klaar om je wapen te kiezen.
Ik was altijd een grote fan van IDE's. In het begin van mijn carrière gebruikte ik Microsoft's Visual Studio voor C / C ++ ontwikkeling evenals C #. Ik heb NetBeans gebruikt voor een korte periode van Java-ontwikkeling. Ik heb de PyCharm van JetBrains gebruikt voor de ontwikkeling van Python, en tegenwoordig gebruik ik de ontwikkeling van Gogland for Go van JetBrains.
Ik werk meestal aan grootschalige softwaresystemen die bestaan uit meerdere projecten met duizenden bestanden. Ik heb veel hulp nodig met grote codebases. Hier de belangrijkste redenen waarom ik IDE's zo leuk vind:
Met een goede IDE kunt u uw code hiërarchisch ordenen, bekijken en gemakkelijk navigeren, en ook snel uw code doorzoeken. De IDE doet veel meer dan alleen tekst zoeken en laat u filteren op basis van taalspecifieke constructies (bijvoorbeeld alleen klassen weergeven of interfaces met een bepaalde naam).
Geïntegreerde testen is ook cruciaal. Ik besteed het grootste deel van mijn ontwikkelingstijd aan tests - ofwel schrijf ik ze, probeer ze te laten slagen of onderzoek waarom tests plotseling faalden. Met een goede IDE met geïntegreerde tests kunt u op selectieve wijze testen uitvoeren (allemaal, slechts één project, alleen mislukte tests van vorige run), fouten markeren en u snel naar de juiste plaats in de code laten springen om eventuele problemen op te lossen. probleem.
Dit is waarschijnlijk het belangrijkste kenmerk voor mij. Ik hou van geïntegreerde debuggers. Ik wil een breekpunt (inclusief voorwaardelijke breekpunten) kunnen toevoegen, de stacktracering kunnen bekijken en de variabelen in elk frame kunnen bekijken.
Voor bonuspunten (bedankt PyCharm), hou ik ervan om een interactieve consolesessie te hebben wanneer een breekpunt toeslaat. De alternatieven voor printf foutopsporing (vereist het wijzigen van de code en opnieuw opbouwen) of het bekijken van logbestanden (vaak niet genoeg korreligheid of veel ruis) zijn veel frustrerender en minder productief. Zelfs standalone debuggers zoals gdb komen niet in de buurt van de productiviteit van een goede geïntegreerde debugger.
Gogland is mijn huidige Golang IDE. Het is een heel jong product, nog steeds in de preview voor vroege toegang, maar ik beschouw het nog steeds als de meest complete en geïntegreerde Go IDE. Het is gebouwd op de sterke basis van JetBrains, dus het is extreem robuust en vol functies.
Gogland's code-editor is geweldig. Hier zijn enkele van de mogelijkheden:
De debugger van Gogland is uitstekend. Het is gebouwd bovenop Delve, dat ook wordt gebruikt door andere IDE's die we behandelen. Het gebruikt de vertrouwde JetBrains-foutopsporingsconfiguraties om alles te regelen over een foutopsporingsrun, zoals het uitgevoerde binaire bestand, de omgevingsvariabelen, de werkdirectory en de opdrachtregelargumenten.
U kunt breekpunten, voorwaardelijke breekpunten en horloges instellen. Wanneer een breekpunt wordt geraakt, kunt u de stacktracering en de lokale variabelen in elk frame bekijken. Helaas worden globale variabelen niet weergegeven en zijn ze vaak nodig in Go.
Ik had één probleem met de debugger waarbij breekpunten voortijdig worden geraakt! Overweeg het volgende Go-fragment:
x: = 1 y: = 3 z: = x + y fmt.Println (z)
Soms, als ik een breekpunt op de laatste regel zet, zou het slaan, maar de waarde van z zou 0 zijn, in plaats van 4. Hoe kan het zijn? Het bleek dat de debugger op de een of andere manier in de war raakte. Als ik door de code blijf stappen, springt het terug naar z: = x + y
, wijs 4 tot z toe, en ga dan opnieuw naar de laatste regel en druk 4 op de juiste manier af op het scherm.
Ik heb een paar uur verspild met proberen een ingewikkeld stuk code te debuggen, niet beseffend dat ik niet altijd de juiste foto kreeg. Uiteindelijk kwam ik erachter wat er aan de hand was en negeerde ik gewoon de nep-vroege triggering van breekpunten.
Ik weet niet zeker of het een Delve- of Gogland-probleem is, maar ik weet zeker dat ze het snel zullen oplossen. Onthoud dat dit slechts een voorbeeld van een vroege toegang is.
Met de testrunner kunt u tests uitvoeren, stoppen en opnieuw starten. Ik kon het met succes gebruiken voor het uitvoeren en debuggen van eenheidstests, evenals integratietests met zowel Go's testpakket als een BDD-testraamwerk zoals ginkgo.
Go wordt geleverd met verschillende gereedschappen en Gogland integreert ze rechtstreeks in de IDE. U kunt elk hulpmiddel oproepen vanuit het menu "Code | Ga Tools". De ingebouwde codering van Gogland maakt gebruik van de standaard "go fmt" -tool.
Gogland erft het volwassen broncontrolebeheersysteem van andere JetBrains-producten. Ik heb voornamelijk de git-ondersteuning gebruikt, die het beheer van meerdere projecten, een uitstekende weergave van filialen, meerdere wijzigingsets en meer mogelijk maakt. Andere bronbesturingssystemen zoals Mercurial en SVN worden ook ondersteund, via extra plug-ins.
Gogland biedt een ingebouwde terminal voor het geval u een aantal commando's moet uitvoeren. Het is prettig om binnen de IDE te blijven en van / naar editorvensters te kunnen kijken of kopiëren zonder volledig van venster te wisselen.
Gogland wordt geleverd met tal van ingebouwde functies, maar het is volledig uitbreidbaar en veel van de ingebouwde functies zijn eigenlijk vooraf geladen plug-ins. Je kunt veel nuttige plug-ins installeren en je kunt je eigen plug-ins ontwikkelen als je dat wilt.
Visual Studio Code is een uitbreidbare open-source code-editor die voornamelijk door Microsoft is ontwikkeld (met veel bijdragen van de community). Het is gebaseerd op Electron, dat op zijn beurt is gebaseerd op Chromium. Visual Studio Code ondersteunt vele talen en is oorspronkelijk gericht op webontwikkeling. Het heeft een sterke ondersteuning voor Go-ontwikkeling, inclusief de integratie van alle Go-tools en de Delve-foutopsporing via een speciale extensie. U moet een aantal Go-pakketten en hulpprogramma's installeren om aan de slag te gaan.
Visual Studio Code biedt ook ingebouwde git-integratie, hiërarchische map / bestandsverkenner en een interface met tabbladen.
De IntelliSense-ondersteuning (automatisch aanvullen, weergeven van parametertypen en documentatie) is geweldig en zorgt voor een zeer aangename bewerking. De geïntegreerde debugger (gebruikt ook Delve onder de motorkap) is zeer goed gedaan en komt overeen met Gogland's debugger.
Visual Studio Code reageert snel en snel. Hier is de substantiële lijst met functies:
LiteIDE is heel ongebruikelijk. Het was de eerste serieuze Go IDE, begonnen in 2011/2012, en het gaat nog steeds goed. Het is een C ++ Qt-applicatie en het heeft een aangepaste look en feel. Net als bij Gogland en Visual Studio Code, gebruikt het de Go-tools en Delve-debugger om taalservices te bieden (hoewel het begon met het gdb-debugger voordat Delve gereed was).
Over het algemeen is het een IDE met volledige functionaliteit, maar hij voelt niet zo gepolijst aan. Voor zover ik kan nagaan, is dit een eenmansinspanning, wat buitengewoon is. Hier is een overzicht van de LiteIDE-functies.
Wide is interessant omdat het een toegewijde webgebaseerde IDE is van Golang. De focus ligt op samenwerking en is ontworpen voor teams. De ontwikkelaar is Chinees en veel van de documentatie is in het Chinees, dus het is mogelijk niet voor iedereen geschikt. Het is absoluut niet op één lijn met de andere IDE's wat betreft functies en integratie.
Er zijn veel IDE's voor algemene doeleinden die veel programmeertalen ondersteunen en die ook ondersteuning bieden voor de Go-taal. Ik ben geen grote fan van dergelijke omgevingen. Ik geloof dat een geïntegreerde omgeving diep geïntegreerde taalspecifieke haken moet hebben. Het is moeilijk om te implementeren als een eenvoudige plug-in (hoewel je misschien beweert dat dit precies is wat de VS-code doet).
Enkele populaire ontwikkelomgevingen die ondersteuning voor Go hebben toegevoegd zijn:
Go is een eenvoudige taal. Veel mensen voelen zich erg productief door alleen een teksteditor te gebruiken, mogelijk met wat extra Go-plug-ins. Ik beschouw die echt geïntegreerde ontwikkelomgevingen niet. Maar het is logisch als je veel jaren ervaring hebt met je teksteditor, je hebt het al naar eigen wens aangepast en je gebruikt het voor veel andere taken. Hier is een lijst met enkele van de meer populaire teksteditors en hun Go-plug-ins:
Met de volgende plug-ins:
Met de GoSublime-plug-in
Met een overvloed aan Go-plug-ins.
Go heeft een lange weg afgelegd en heeft een robuust ecosysteem met veel opties voor de ontwikkelomgeving. De Delve-foutopsporing biedt een fantastische interactieve foutopsporingservaring en wordt door de meeste topgebruikers van IDE gebruikt. Speel met deze IDE's en vind degene die jou het meest uitkomt.
De juiste IDE kan het werken met Go nog leuker maken.