Go är ett fantastiskt programmeringsspråk. Det kommer också med en omfattande verktygskedja. Många utvecklare använder bara vanliga textredigerare med eller utan insticksprogram för att skriva Go-kod, men många andra föredrar att använda riktiga IDE (integrerade utvecklingsmiljöer).
I denna handledning lär du dig information om det aktuella läget för Go IDEs och vara redo att välja ditt vapen.
Jag var alltid en stor fan av IDEs. Tidigt i min karriär använde jag Microsofts Visual Studio för C / C ++ utveckling samt C #. Jag har använt NetBeans för en kort utveckling av Java-utveckling. Jag har använt JetBrains PyCharm för Python-utveckling, och nu använder jag JetBrains Gogland for Go-utveckling.
Jag arbetar vanligtvis på storskaliga programvarusystem som består av flera projekt med tusentals filer. Jag behöver mycket hjälp med stora kodbaser. Här är de främsta anledningarna till att jag gillar IDE så mycket:
Med en bra IDE kan du organisera din kod hierarkiskt, visa och navigera den med lätthet och snabbt söka efter din kod. IDE kommer att göra mycket mer än bara textsökning och låter dig filtrera baserat på språkspecifika konstruktioner (t ex visa bara klasser eller gränssnitt med ett visst namn).
Integrerad testning är också avgörande. Jag spenderar merparten av min utvecklingstid på test, antingen skriva dem, försöka få dem att gå över eller undersöka varför test plötsligt misslyckades. Ett bra IDE med integrerad testning gör att du kan köra tester på ett selektivt sätt (alla bara ett projekt, misslyckades test från tidigare körning), kommer att markera fel och låter dig hoppa snabbt till rätt ställe i koden för att fixa några problem.
Detta är förmodligen den viktigaste funktionen för mig. Jag älskar integrerade debuggers. Jag vill kunna lägga till en brytpunkt (inklusive villkorliga brytpunkter), se stapelspåret och visa variablerna vid varje ram.
För bonuspoäng (tack PyCharm), gillar jag att ha en interaktiv konsollsession när en pauspunkt träffar. Alternativen för printf debugging (kräver modifiering av koden och ombyggnad) eller visning av loggfiler (ofta inte tillräckligt med granularitet eller mycket ljud) är mycket mer frustrerande och mindre produktiva. Även fristående debuggers som gdb kommer inte nära produktiviteten hos en bra integrerad debugger.
Gogland är mitt nuvarande Golang IDE. Det är en mycket ung produkt, fortfarande i tidig tillgång förhandsgranskning, men jag anser det fortfarande vara den mest kompletta och integrerade Go IDE. Den är byggd på JetBrains starka grund, så den är extremt robust och funktionell.
Goglands kodredigerare är utmärkt. Här är några av dess möjligheter:
Gogland debugger är utmärkt. Den är byggd ovanpå Delve, som används av andra IDE: er som vi täcker också. Den använder de vanliga JetBrains felsöknings konfigurationerna för att styra allt om en felsökningsfrekvens, som exekverade binära, miljövariablerna, arbetsmappen och kommandoradsargumenten.
Du kan ställa in brytpunkter, villkorliga brytpunkter och klockor. När en brytpunkt träffas kan du observera stapelspåret och de lokala variablerna i varje ram. Tyvärr visas globala variabler inte och behövs ofta i Go.
Jag hade ett problem med debuggeren där brytpunkter träffas för tidigt! Tänk på följande Go-snippet:
x: = 1 y: = 3 z: = x + y fmt.Println (z)
Ibland, om jag lägger en brytpunkt på sista raden, skulle det slå, men värdet av z skulle vara 0, istället för 4. Hur kan det vara? Det visar sig att debuggeren blev förvirrad på något sätt. Om jag fortsätter att gå igenom koden kommer den att hoppa tillbaka till z: = x + y
, Tilldela 4 till z, och gå sedan till sista raden och skriv 4 på rätt sätt till skärmen.
Jag slösade bort några timmar och försökte felsöka ett komplicerat kodstycke, inte inse att jag inte alltid fick den rätta bilden. Så småningom tänkte jag ut vad som händer och ignorerade bara den falska tidiga utlösningen av brytpunkter.
Jag är inte säker på om det är ett Delve eller Gogland problem, men jag är säker på att de kommer att fixa det snart. Kom ihåg att det bara är en snabb förhandsgranskning.
Testlöparen låter dig springa, stoppa och starta om test. Jag kunde använda den framgångsrikt för att köra och felsöka enhetstester, liksom integrationsprov med både Gos testpaket och en BDD-testram som ginkgo.
Go kommer med olika verktyg, och Gogland integrerar dem direkt i IDE. Du kan använda något verktyg från menyn "Kod | Go Tools". Den inbyggda kodformatet av Gogland använder standardverktyget "go fmt".
Gogland ärverver det mogna källkontrollsystemet för andra JetBrains produkter. Jag har främst använt git-supporten, som möjliggör hantering av flera projekt, utmärkt visning av grenar, flera ändringssätt och mer. Andra källkontrollsystem som Mercurial och SVN stöds också via ytterligare plugins.
Gogland ger en inbyggd terminal om du behöver köra vissa kommandon. Det är trevligt att stanna inom IDE och kunna titta på eller kopiera från / till redigeringsrutor utan att helt ändra windows.
Gogland kommer med massor av inbyggda funktioner, men det är fullt utdragbart, och många av dess inbyggda funktioner är faktiskt förinstallerade plugins. Du kan installera många användbara plugins, och du kan utveckla dina egna plugins om du vill.
Visual Studio Code är en utökad öppen källkod editor som utvecklats främst av Microsoft (med massor av bidrag från samhället). Den är baserad på Electron, som i sin tur är baserad på Chromium. Visual Studio Code stöder många språk och ursprungligen inriktad på webbutveckling. Den har starkt stöd för Go-utveckling, inklusive integration av alla Go-verktygen och Delve-debuggen via en dedikerad tillägg. Du måste installera några Go-paket och verktyg för att komma igång.
Visual Studio Code erbjuder även inbyggd git-integration, hierarkisk mapp / filutforskare och ett flikgränssnitt.
IntelliSense-supporten (autokomplettering, visar parametertyper och dokumentation) är bra och ger en mycket trevlig redigeringsupplevelse. Den integrerade debuggeren (använder även Delve under huven) är mycket bra gjort och matchar Goglands debugger.
Visual Studio Code är mycket lyhörd och snabb. Här är dess omfattande funktionslista:
LiteIDE är mycket ovanligt. Det var den första seriösa Go IDE, började tillbaka 2011/2012, och det går fortfarande starkt. Det är en C ++ Qt-applikation, och den har ett anpassat utseende. I likhet med Gogland och Visual Studio Code använder den Go-verktygen och Delve debugger för att tillhandahålla språktjänster (även om den startade med gdb debugger innan Delve var klar).
Sammantaget är det ett komplett IDE, men det känns inte så polerat. Såvitt jag kan säga är det ganska mycket en enmans ansträngning, vilket är extraordinärt. Här är en sammanfattning av LiteIDE-funktionerna.
Wide är intressant eftersom det är en dedikerad Golang webbaserad IDE. Dess fokus ligger på samarbetsutveckling, och den är designad för lag. Utvecklaren är kinesisk och mycket av dokumentationen finns på kinesiska, så det kanske inte är lämpligt för alla. Det är definitivt inte i nivå med andra IDEs när det gäller funktioner och integration.
Det finns många generella IDE-filer som stöder många programmeringsspråk och har lagt till stöd för Go-språket också. Jag är inte ett stort fan av sådana miljöer. Jag tror att en integrerad miljö måste ha djupt integrerade språkspecifika krokar. Det är svårt att implementera som en enkel plugin (även om du kanske hävdar att detta är exakt vad VS-kod gör).
Några populära utvecklingsmiljöer som har lagt till Go-support är:
Go är ett enkelt språk. Många människor känner sig väldigt produktiva bara med hjälp av en textredigerare, eventuellt med några ytterligare Go-plugins. Jag anser inte de riktigt integrerade utvecklingsmiljöerna. Men det är vettigt om du har många års erfarenhet av din textredigerare, du har redan anpassat det efter eget tycke, och du använder det för många andra uppgifter. Här är en lista över några av de mer populära textredigerarna och deras Go-plugins:
Med följande plugins:
Med GoSublime-plugin
Med en uppsjö av Go plugins.
Go har kommit långt och har ett robust ekosystem som innehåller många alternativ för utvecklingsmiljön. Delve debugger ger en fantastisk interaktiv felsökningsupplevelse och används av de flesta topp IDE. Spela runt med dessa IDEs och hitta den som passar dig mest.
Rätt IDE kan göra arbetet med Go ännu roligare.