1 Configuration de votre environnement de développement Go · de types très expressif et léger,...
Transcript of 1 Configuration de votre environnement de développement Go · de types très expressif et léger,...
1.ConfigurationdevotreenvironnementdedéveloppementGo1.1.Installation1.2.$GOPATHetworkspace1.3.CommandesGo1.4.OutilsdedéveloppementGo1.5.Résumé
AppendiceARéférences
1ConfigurationdevotreenvironnementdedéveloppementGoBienvenuedanslemondedeGo,commençonsnotreexploration!
Goestunlangagedeprogammationsystèmeconcurrentàlacompilationrapideetdisposantd'unrammasse-miettes.Ilalesavantagessuivants:
Compilationd'unlargeprojetenquelquessecondes.Fournitunmodèlededéveloppementfacileàgérer,évitantlaplupartdesproblèmesliésauxfichiersd'en-têteC.C'estunlangagestatiqueavecunsystèmedetypesdedonnéessimple,afinquelesutilisateursn'aientpasàperdredutempsàgérerlesrelationsentretypes.Ilpeut-êtrevucommeunlangageorienté-objetsimplifié.Ilpossèdeunramasse-miettes.Ilfournitunsupportdebasepourlaconcurrenceetdelacommunication.Conçupourlesordinateursmulti-core.
Goestunlangagecompilé.Ilcombinel'efficacitédedéveloppementdeslangagesinterprétésoudynamiquesaveclasécuritédelanguesstatiques.Ilvaêtrelalanguedechoixpourlesordinateursmodernesmulti-coreinter-connectés.Àcesfins,ilyaquelquesproblèmesquidoiventfondamentalementêtrerésoluauniveaudecelangage,commeunsystème
detypestrèsexpressifetléger,unmodèledeconcurrencenatif,etunramasse-miettesgéréstrictement.Durantlongtemps,aucunpaquetououtiln'estapparuquiavaitpourbutderésoudretouscesproblèmesdefaçonpragmatique;ainsinaquitlamotivationpourdulangageGo.
Danscechapitre,jevaisvousmontrercommentinstalleretconfigurervotrepropreenvironnementdedéveloppementGo.
Tabledesmatières
Navigation
TabledesmatièresSectionsuivante:Installation
1.1Installation
3méthodesd'installation
IlyaplusieursfaçonsdeconfigurervotreenvironnementdedéveloppementGosurvotreordinateur,vouspouvezchoisircellequivousconvientle
mieux.Lestroisfaçonslespluscourantessontlessuivantes.
Paquetsd'installationofficiels:L'équipedeGoproposedespaquetsd'installationpourWindows,Linux,Macetencored'autressystèmesd'exploitation.C'estpropablementlaméthodelaplussimplepourcommencer.
InstallationmanuellevialessourcesPopulairechezlesdéveloppeurshabituésauxenvironnementstypeUnix.
Utilisationd'outilstiers.IlyaplusieursoutilstiersetgestionnairespourinstallerGo,commeapt-getpourUbuntuethomebrewpourMac.
Danslecasoùvousvoudriezinstallerplusd'uneversiondeGosurvotremachine,vousdevriezjeterunoeilàl'outilGVM.C'estlemeilleuroutilpouraccomplircettetâche,sinonvousdevrezlefairevous-même.
##Installationàpartirdessources
Parce-quecertainespartiesdeGosontécritsenCPlan9etenassembleurAT&T,vousdevezinstalleruncompilateurCavantdecontinuer.
SousMac,sivousavezXcoded'installé,vousdisposédéjàd'uncompilateur.
SurunsystèmetypeUnix,vousdevezinstallergccouuncompilateuréquivalent.Parexemple,enutilisantlegestionnairedepaquetsapt-get(livréavecUbuntu),vouspouvezinstallerlescompilateursrequiscommesuit:
sudoapt-getinstallgcclibc6-dev
SousWindows,vousdevezinstallerMinGWpourinstallergcc.N'oubliezpasdeconfigurervosvaraiblesd'environnementaprèsavoirfinalisél'installation.
L'équipeGoutiliseMercurialpourgérerlecodesource,vousdevezcommencerparinstallercelui-cipourtéléchargerlecodesourcedeGo.
UnefoisMercurialinstallé,exécutezlescommandessuivantespourclonerlecodesourcedeGoetlecompiler:
hgclone-ureleasehttps://code.google.com/p/gocdgo/src./all.bash
Uneinstallationréussiefiniraenaffichantlemessage"ALLTESTSPASSED."
SousWindows,vouspouvezarriveràfairelamêmechoseenlançantall.bat.
SivousutilisezWindows,lepaquetd'installationvamettreàjourautomatiquementvosvariablesd'environnement.SousUnix,vousdevezconfigurercelles-cimanuellementcommesuit:
exportGOROOT=$HOME/goexportGOBIN=$GOROOT/binexportPATH=$PATH:$GOROOT/bin
Sivousvoyezl'affichagesuivantsurvotreécran,l'installations'estterminéeavecsuccès.
Figure1.1Informationaprèsinstallation
Lorsquevousvoyezlesinformationsd'utilisationdeGo,celasignifiequevousavezinstalléGoavecsuccèssurvotreordinateur.Sivotresystèmeaffiche'aucunecommandeGo',vérifiezquevotrevariabled'environnement$PATHcontientbienlechemind'installationdeGo.
Utilisationdespaquetsstandardsd'installation
Goadespaquetsd'installationrapidespourchaquesystèmed'exploitationsupporté.CespaquetsinstallentGodans/usr/local/go(c:\GosousWindows)pardéfaut.Biensûr,celaestconfigurable,maisvousaurezégalementàchangermanuellementlesvariablesd'environnementcommedécritprécédemment.
Commesavoirsivotresystèmeest32ou64bits?
L'étapesuivantedépenddutyped'architecturedevotresystème,nousdevonsdonclevérifieravantdetéléchargerlespaquetsd'installation.
SivousutilisezWindows,tapezWin+Retlancezl'outildecommandescmd.Lancezlacommandesysteminfoquivavousafficherdesinformationstrèsutilessurvotresystème.Trouvezlaligneindiquant"typedusystème"-sivousvoyez"x64-basedPC"celasignifiequevotresystèmeest64-bit,sinonilest32-bit.
Jevousrecommandefortementdetéléchargerlepaquet64-bitsivousêtessousMac,commeGonesupportepluslesprocesseurs32-bitsousMacOSX.
LesutilisateursLinuxpeuventexécuteruname-adansunterminalpourafficherlesinformationssystème.Unsystèmed'exploitation64-bitafficheralesinformationssuivantes:
<descriptionsdiverses>x86_64x86_64x86_64GNU/Linux
CertainesmachinescommeUbuntu10.04afficherontsimplement:
x86_64GNU/Linux
Lessystèmes32-bitafficherontquantàeux:
<descriptionsdiverses>i686i686i386GNU/Linux
Mac
Allersurlapagedetéléchargement,choisirgo1.4.darwin-386.pkgpourlesystèmes32-bitetgo1.4.darwin-amd64.pkgpourles64-bit.Cliquez"next"jusqu'àlafinduprocessus,~/go/binseraajoutéau$PATHdusystèmeàlafindel'installation.Maintenantouvrezunterminalettapezgo.Vousdevriezavoirlamêmesortiequ'enfigure1.1.
Linux
Alleràlapagedetéléchargement,choisirgo1.4.linux-386.tar.gzpourlessystèmes32-bitetgo1.4.linux-amd64.tar.gzen64-bit.SupposonsquevousvoulezinstallerGodans$GO_INSTALL_DIRpath.Décompressezl'archivetar.gzdansledossierdésirédedestinationenutilisantlacommandetarzxvfgo1.4.linux-amd64.tar.gz-C$GO_INSTALL_DIR.Ensuitedéfinissezvotre$PATHavec:exportPATH=$PATH:$GO_INSTALL_DIR/go/bin.Vouspouvezmaintenantouvrirunterminalettapezgo.Vousdevriezavoirlamêmesortiequ'enfigure1.1.
Windows
Allezàlapagedetéléchargement,choisissezgo1.4.windows-386.msipourlessystèmes32-bitetgo1.4.windows-amd64.msipourlessystèmes64-bit.Cliquez"next"jusqu'àlafinduprocessus,c:/go/binseraajhoutéàpath.Vouspouvezmaintenantouvrirunterminalettapezgo.Vousdevriezavoirlamêmesortiequ'enfigure1.1.
Utilisezdesoutilstiers
GVM
GVMestunoutildegestiondeversionsmultiplesdéveloppéparuntiers,commervmpourruby.Ilestsimpled'utilisation.InstallezGVMaveclescommandessuivantesdansvotreterminal:
bash<<(curl-s-S-Lhttps://raw.github.com/moovweb/gvm/master/binscripts/gvm-installer)
EnsuitenousinstallonsGoaveclescommandessuivantes:
gvminstallgo1.4gvmusego1.4
Àlafinduprocessus,Goestinstallé.
apt-get
UbuntuestlaversionbureaulaplusutiliséedeLinux.Elleutiliseapt-getcommegestionnairedepaquets.OnpeutinstallerGoaveclescommandessuivantes:
sudoadd-apt-repositoryppa:gophers/gosudoapt-getupdatesudoapt-getinstallgolang-stable
Homebrew
HomebrewestunoutildegestiondelogicielscommunémentutilisésousMacpourgérerlespaquets.OnpeutinstallerGoaveclescommandessuivantes:
brewinstallgo
Navigation
Tablesdesmatières
Sectionprécédente:ConfigurationdevotreenvironnementGoSectionsuivante:$GOPATHetworkspace
#1.2$GOPATHetworkspace
$GOPATH
LescommandesGoreposentsurunevariabled'environnementnommée$GOPATH1.Notezquecen'estpaslavariable$GOROOToùGoestinstallé.Cettevariablepointeversvotreespacedetravail(workspace)Godevotreordinateur(J'utilisececheminsurmonordinateur;sivousn'utilisezpaslamêmestructurededossiers,veillezàlefairecorrespondreparvous-même).
DansunsystèmedetypeUnix,lavariablepeut-êtreconfiguréecommesuit:
exportGOPATH=/home/apple/mygo
Pourplusdecommodité,vousdevriezajouteruneligneàvotre.bashrcou.zshrc,outoutautrefichierdeconfigurationdeconfigurationdushellapproprié.
SousWindows,vousdevezcréerunevariabled'environnementnomméeGOPATH,etdéfinirsavaleuràc:\mygo:
GOPATH=c:\mygo
Ilestpossibled'avoirplusieursrépertoiresdansvotre$GOPATH,àséparerparun:sousUnix,et;sousWindows
Dansvotre$GOPATHvousdevezavoirtroissous-répertoires:
srcpourhébergerlecodesource(parexemple:.go.c.h.s,etc.)pkgpourlesfichierscompilés(parexemple:.a)
binpourlesfichiersexécutablecompilés
Danslerestedecelivre,j'utiliseledossierMygocommerépertoiredemon$GOPATH.
Dossierdepaquets
Créezlesfichiersetdossiersd'unpaquetsourcecomme$GOPATH/src/mymath/sqrt.go(mymathestlenomdupaquet)
Chaquefoisquevouscréezunpaquet,vousdevriezcréerunnouveaudossierdanslerépertoiresrc.Lesnomsdedossierscorrespondentgénéralementàceluidupaquetquevoussouhaitezutiliser.Vouspouvezavoirplusieursniveauxdedossierssivousledésirez.Parexemplesivouscréezledossier$GOPATH/src/github.com/astaxie/beedb,alorslechemindupaquetseragithub.com/astaxie/beedb.Lenomdupaquetseraceluidudernierdossierdevotrechemin,quiestbeedbdansnotreexemple.
Exécutezlescommandessuivantes:
cd$GOPATH/srcmkdirmymath
Créezunnouveaufichiersqrt.go,ajoutezlecontenusuivantàcelui-ci:
//Codesourcede$GOPATH/src/mymath/sqrt.gopackagemymath
funcSqrt(xfloat64)float64{z:=0.0fori:=0;i<1000;i++{z-=(z*z-x)/(2*x)}returnz}
Maintenantledossierdemonpaquetaétécrééetsoncodeécrit.Jevousrecommanded'utiliserlemêmenompourvospaquetsetleursdossiers,etquelesdossierscontiennenttouslesfichierssourcesdupaquet.
Compilationdespaquets
Nousavonscréénotrepaquetprécédemment,maiscommentlecompilerpourunusageconcret?Ilyadeuxméthodesdifférentes.
1. Placez-vousdansledossiercontenantvotrepaquet,puisexécutezlacommandegoinstall.
2. Exécutezlacommandeprécédentemaisenpassantunnomdefichierenparamètre,commegoinstallmymath.
Aprèscompilation,onpeutouvrirledossiersuivant:
cd$GOPATH/pkg/${GOOS}_${GOARCH}//Onpeutytrouverlefichiercompilémymath.a
Lefichierdontlesuffixeest.aestlefichierbinairedenotrepaquet.Commentl'utiliser?
Assurément,nousdevonscréeruneapplicationpourl'utiliser.
Créezunnouveaupaquetappelémathapp.
cd$GOPATH/srcmkdirmathappcdmathappvimmain.go
Lecodedemain.go
//codesourcede$GOPATH/src/mathapp/main.go.packagemain
import("mymath""fmt")
funcmain(){fmt.Printf("Hello,world.Sqrt(2)=%v\n",mymath.Sqrt(2))}
Pourcompilercetteapplication,vousdevezvousplacerdansledossierdupaquet
cd$GOPATH/src/mathapp
puisexécutez
goinstall
Vousdevriezdésormaisvoirunfichierexécutablemathappgénérédansledossier$GOPATH/bin/.Pourlancerceprogramme,utilisezlacommande
./mathapp
Vousdevriezvoirlecontenusuivantdansvotretemrinal:
Helloworld.Sqrt(2)=1.414213562373095
Installerdespaquetsdistants
Goaunoutilpourinstallerdespaquetsdistants,quiestl'outilgoget.Ilsupportelamajoritédescommunautéslibres,commeGithub,GoogleCode,BitBucket,etLaunchpad.
gogetgithub.com/astaxie/beedb
Vouspouvezutilisergoget-upourmettreàjourvospaquetsdistants,celamettraaussiàjourlesdépendances.
Vousobtiendrezlecodesourcedespaquetsdésirésgrâceàcettecommande,depuisdifférentesplate-formes,utilisantchacuneleursystèmedegestiondeversion.Parexemple,gitpourGithubethgpourGoogleCode.Ainsivousdevrezaupréalableinstallerleclientdusystèmedegestiondeversionappropriéavantd'utilisergoget.
Aprèsavoirutilisélescommandesprécédentes,votrestructurededossierdevraitressembleràcelle-ci:
$GOPATHsrc|-github.com|-astaxie|-beedbpkg|--${GOOS}_${GOARCH}|-github.com|-astaxie|-beedb.a
Enfait,gogetclonelesourcecodedansledossier$GOPATH/srcenlocal,puisexécutegoinstall.
Vouspouvezutiliserdespaquetsdistantsdemanièresimilaireauxpaquetslocaux.
import"github.com/astaxie/beedb"
Arborescencecomplètededossier
Sivousavezsuivitouteslesétapesprécédentes,lastructuredevotredossierressembledésormaisàceci:
bin/mathapppkg/${GOOS}_${GOARCH},suchasdarwin_amd64,linux_amd64mymath.agithub.com/astaxie/beedb.asrc/mathappmain.gomymath/sqrt.gogithub.com/astaxie/beedb/beedb.goutil.go
Vouspouvezdésormaisvousrendrecomptedemanièreplusclairedel'arborescence;bincontientlesexécutables,pkglesfichierscompilésetsrclespaquetssources.
[1]Leformatdesvariablesd'environnementsousWindowsest%GOPATH%,pourtantcelivresuitprincipalementlanormeUnix,lesutilisateursWindowsdevrontfairelesmodificationsappropriées.
Navigation
TabledesmatièresSectionprécédente:InstallationSectionsuivante:Gocommands
#1.3CommandesGo
CommandesGo
LelangageGoestdisponiblepardéfautavecunensemblecompletd'outils.Vouspouvezexécuterlalignedecommandegopourlesafficher:
Figure1.3Informationsdétailléesaffichéesparlacommandego
Ellesonttoutesuneutilité.Voyonsl'utilisationdecertainesd'entreelles.
gobuild
Cettecommandesertdetestsdecompilation.Ellecompileralespaquetsdépendantsaubesoin.
Silepaquetn'estpaslepaquetmain,commemymathensection1.2,rienneseragénéréaprèsl'exécutiondegobuild.Sivousavezbesoindefichierdepaquet.adans$GOPATH/pkg,utilisezplutôtgoinstallàlaplace.Silepaquetestlepaquetmain,lacommandegénéreraunexécutabledanslemêmedossier.Sivousvoulezquel'exécutablesoitgénérédans$GOPATH/bin,utilisezgoinstallougobuild-o${VOTRE_CHEMIN}/a.exe.
S'ilyaplusieursfichiersdansledossier,maisquevousvoulezjustecompilerund'entreeux,ajoutezlenomdecefichieraprèsgobuild.Parexemple,gobuilda.go.gobuildvacompilerlesfichiersdanscedossier.Vouspouvezégalementdéfinirlenomdufichiergénéré.Parexemple,dansleprojetmathapp(section1.2),lancergobuild-oastaxie.exevagénérerastaxie.exeaulieudemathapp.exe.Lenompardéfautestlenomdudossier(packagenommain)ouceluidupremierfichiersource(paquetmain).
(D'aprèsLesSpécificationsduLangageGo,lesnomsdepaquetsdevraientêtreceuxsuivantladéclarationpackageenpremièrelignedevosfichierssources.Celan'apasàêtrelemêmequeceluidudossier,etquelenomdefichierdel'exécutablesoitceluidudossierpardéfaut.)
gobuildignorelesfichiersdontlenomcommencepar_ou..
Sivousvoulezavoirdifférentsfichierssourcesparsystèmed'exploitation,vouspouveznommervosfichiersavecpoursuffixele
nomdusystème.Supposezqu'ilyaitplusieursfichierspourchargerdestableaux.Cesfichierspeuventêtrenomméscommesuit:
array_linux.go|array_darwin.go|array_windows.go|array_freebsd.go
gobuildchoisiraceluiquicorrespondraàvotresystèmed'exploitation.Parexemple,seulseracompiléarray_linux.gosousLinux,lesautresserontignorés.
goclean
Cettecommandesertàsupprimerlesfichiersgénérésparlecompilateur,comprenantlesfichierssuivants:
_obj///Anciendossierobjet,crééparlesMakefiles_test///Anciendossiertest,crééparlesMakefiles_testmain.go//Anciendossierdegotest,crééparlesMakefiles
test.out//Ancienfichierdetest,crééparlesMakefilesbuild.out//Ancienfichierdetest,crééparlesMakefiles*.[568ao]//fichiersobjets,créésparlesMakefiles
DIR(.exe)//générépargobuildDIR.test(.exe)//générépargotest-cMAINFILE(.exe)//générépargobuildMAINFILE.go
J'utilisegénéralementcettecommandepoursupprimerlesfichiersavantdemettreàjourmonprojetsurGithub.Ilssontutileslorsdetestsenlocal,maisinutilesàavoirdansvotresystèmedegestiondeversion.
gofmt
LesdéveloppeursC/C++doiventavoirl'habitudedesdébatssurquelleconventiond'écrituredecodeestlameilleure:lestyleK&RouANSI.AvecGo,iln'existequ'uneconventionàappliquer.Parexemple,lesparenthèsesouvrantesdoiventêtreenfindeligne,etnepeuventêtresuruneligne
toutesseules,sinonvousaurezdeserreursàlacompilation!
Parchance,vousn'avezpasàretenirtoutescesrègles.gofmtlefaitàvotreplace.exécutezsimplementgofmt<Filename>.godansunterminal.Jen'utilisepassouventcettecommandecarlesIDEl'exécutentnormalementautomatiquemenntlorsquevoussauvegardezunfichier.NousreviendronssurlesIDEdanslasectionsuivante.
Onutilisegénéralementgofmt-waulieudegofmt.Cederniernemodifiepasvosfichierssourceaprèsformattage.gofmt-wsrcformattetoutvotreprojet.
goget
Cettecommanderécupèredespaquetsdistants.SontsupportésBitBucket,Github,GoogleCodeetLaunchpad.Ilsepasseenfaitdeuxchosesàl'exécutiondecettecommande.Enpremierlieu,Gotéléchargelecodesource,puisilexécutegoinstall.Avantd'utilisercettecommande,assurez-vousd'installerlesoutilsnécessaires.
BitBucket(MercurialGit)Github(git)GoogleCode(Git,Mercurial,Subversion)Launchpad(Bazaar)
Pourutilisercettecommande,vousdevezinstallercesoutilscorrectement.N'oubliezpasdedéfinirvotre$PATH.Notezquegogetsupporteégalementvosnomsdedomainepersonnalisés.Exécutezgohelpremotepourenconnaîtrelesdétails.
goinstall
Cettecommandecompiletouslespaquetsetgénérelesfichiers,puislesdéplacedans$GOPATH/pkgou$GOPATH/bin.
gotest
Cettecommandechargetouslesfichiersquiontpournom*_test.goetgénérelesfichiersdetest,puisaffichedesinformationssimilairesàcelles-ci.
okarchive/tar0.011sFAILarchive/zip0.022sokcompress/gzip0.033s...
Elletestetousvosfichiersdetestpardéfaut.Utilisezlacommandegohelptestflagpourplusdedétails.
godoc
Beaucoupdepersonnesdisentqu'ilestinutiled'avoirunequelconquedocumentationtierspourprogrammerenGo(bienqu'enfaitj'aidéjàdéveloppéCHM).Goapardéfautunoutiltrèsélaborépourtravailleravecladocumentation.
Alorscommentrechercherdesinformationssurunpaquetdansladocumentation?Parexemple,sivousvoulezplusd'informationssurlepaquetbuiltin,utilisezlacommandegodocbuiltin.Delamêmemanière,utilisezlacommandegodocnet/httppourrechercherladocumentationdupaquethttp.Sivousvoulezplusdedétailsspécifiquesàunefonction,utilisezgodocfmtPrintf,ougodoc-srcfmtPrintfpourvoirlecodesource.
Exécutezlacommandegodoc-http=:8080,puisouvrez127.0.0.1:8080dansvotrenavigateur.Vousdevriezvoirungolang.orglocal.Ilpeutnonseulementafficherlesinformationsdespaquetsstandards,maisaussilespaquetsdevotredossier$GOPATH/pkg.C'esttrèsbienpourceuxbloquésderrièrelaGrandeMurailledeChine.
Autrescommandes
Gofournitd'autrescommandesquecellesvuesprécédemment:
gofix//miseàjourducoded'uneversionantérieure//àgo1versuneversionplusrécentequego1goversion//obtenirdesinformationssurvotreversiondeGogoenv//affichervosvariablesd'environnementGogolist//listertouslespaquetsinstallésgorun//compilerlesfichierstemporairesetlancerl'application
Lescommandesquel'onavuesproposentégalementplusd'optionsquecequenousavonsvu.Vouspouvezutilisergohelp<command>pourlesvisualiser.
Navigation
TabledesmatièresSectionprécédente:$GOPATHetworkspaceSectionsuivante:OutilsdedéveloppementGo
OutilsdedéveloppementGoDanscettesection,jevaisvousprésenterquelquesIDEquipeuventvousaideràcoderplusefficacement,grâceàdesfonctionnalitéstelleslacomplétiondecodeetleformattageautomatiques.Ilssonttousmulti-plate-formes,lesmanipulationsprésentéesnedevraientdoncpasêtretrèséloignées,mêmesivousn'utilisezpaslemêmesystèmed'exploitation.
LiteIDE
LiteIDEestunIDElégeretmulti-plate-formesdédiéuniquementau
développementenGo,développéparvisualfc.
Figure1.4PanneauprincipaldeLiteIDE
FonctionnalitésdeLiteIDE:
Multi-plate-formesWindowsLinuxMacOS
CompilationcroiséeGestiond'environnementsdecompilationmultiplesSupportdelacompilationcroiséeavecGo
Standardsengestiondeprojet
Documentationbaséesurle$GOPATHCompilationbaséesurle$GOPATHIndexladocumentationdel'APIbaséesurle$GOPATH
ÉditeurdecodesourceGoMiseenformeducodeSupportcompletdegocodeGestiondeladocumentationandetdel'indexdel'APIdeGoAfficherl'expressiond'uncodeviaF1NaviguerentredéclarationdefonctionsviaF2SupportGdbAuto-formattageviagofmt
AutresMulti-languesSystèmed'extensionsThèmesd'éditeurdetexteSupportdelasyntaxebasésurKateComplétionintelligentebaséeenmodefull-textPersonnalisationdesraccourcisSupportMarkdown
PrévisualisationentempsréelCSSpersonnaliséExportationenHTMLetPDFConversionetfusionenHTMLetPDF
InstallationdeLiteIDE
InstallerLiteIDE
Pagedetéléchargement
Codesource
VousdevezinstallerGoenpremier,puistéléchargerlaversion
adaptéeàvotresystèmed'exploitation.Décompressezlepaquetpourensuitel'exécuterdirectement.
Installergocode
Vousdevezinstallergocodepourutiliserlacomplétionintelligente
goget-ugithub.com/nsf/gocode
Environmentdecompilation
ChangerdeconfigurationdeLiteIDEpourcorrespondreàvotresystèmed'exploitationDansWindowsaveclaversion64-bitdeGo,vousdevriezutiliserwin64commeconfigurationdevotreenvironnementdanslabarred'outils.Ensuite,choisissezOptions,puisLiteEnvdanslalistedegaucheetsélectionnezlefichierwin64.envdanslalistededroite.
GOROOT=c:\goGOBIN=GOARCH=amd64GOOS=windowsCGO_ENABLED=1
PATH=%GOBIN%;%GOROOT%\bin;%PATH%
ModifiezGOROOT=c:\goparlechemindevotreinstallationGo,puissauvegardez.SivousavezMinGW64,ajoutezc:\MinGW64\binauchemindevotrevariabled'environnementpourlesupportdecgo.
PourLinuxavecGoenversion64-bit,choisissezlinux64commeconfigurationdevotreenvironnementdanslabarred'outils.Ensuite,choisissezOptions,puisLiteEnvdanslalistedegaucheetsélectionnezlefichierlinux64.envdanslalistededroite.
GOROOT=$HOME/go
GOBIN=GOARCH=amd64GOOS=linuxCGO_ENABLED=1
PATH=$GOBIN:$GOROOT/bin:$PATH
ModifiezGOROOT=$HOME/goparlechemindevotreinstallationGo.
$GOPATH
$GOPATHestlechemindudossierdevosprojets.Ouvrezl'outilcommande(Ctrl+dansLiteIDE),puistapezgohelpgopathpourplusdedétails.C'esttrèssimpledevoiretmodifiervotre$GOPATHdansLiteIDE.ChoisissezView-SetupGOPATHpourvoiretmodifiercesvaleurs.
SublimeText
DanscettepartiejevaisvousprésenterSublimeText2(Sublimetoutcourt)+GoSublime+gocode+MarGo.
ComplétionIntelligente
Figure1.5ComplétionintelligenteavecSublime
Auto-formattageducodesource
Gestiondeprojet
Figure1.6GestiondeprojetsousSublime
Colorationsyntaxique
Versiongratuited'essaipermanentesanslimitationdefonctionnalités.Vousserezinvitédetempsentempsàacheterunelicence,quevouspourrezrefusersivousvoulez.Biensûr,sivoustrouvezqueSublimeaugmentevotreproductivitéetquevousl'appréciezvraiment,mercid'acheterunelicenceetdesupportersondéveloppement!
CommencezpartéléchargeruneversiondeSublimeadaptéesàvotresystèmed'exploitation.
1. TapezCtrl+,ouvrezl'invitedecommandesetrentrezlescommandessuivantes:.
importurllib2,os;pf='PackageControl.sublime-package';ipp=sublime.installed_packages_path();os.makedirs(ipp)ifnotos.path.exists(ipp)elseNone;urllib2.install_opener(urllib2.build_
opener(urllib2.ProxyHandler()));open(os.path.join(ipp,pf),'wb').write(urllib2.urlopen('http://sublime.wbond.net/'+pf.replace('','%20')).read());print'MercideredémarrerSublimeTextpourfinaliserl'installation'
RedémarrezSublimetextenfind'installation.VousdevrieztrouvezuneoptionPackageControldanslemenu"Preferences".
Figure1.7GestiondepaquetdansSublime
2. PourinstallerGoSublime,SidebarEnhancementsetGoBuild,tapezCtrl+Shift+ppourouvrirPackageControl,puistapezpcip(raccourcipour"PackageControl:InstallPackage").
Figure1.8InstallerdespaquetssousSublime
Puistapez"GoSublime",entrezOKpourinstallerlepaquet,etrépétezcescommandespourinstallerSidebarEnhancementsetGoBuild.Ànouveau,redémarrezl'éditeurquandl'installations'achève.
3. Pourvérifierlaréussitedel'installation,ouvrezSublime,puisouvrezlefichiermain.gopourvérifierquelacolorationsyntaxiqueestcorrecte.Tapezimportpourvoirsilepromptdelacomplétiondecodes'affiche.Aprèsavoirtapéimport"fmt",tapezfmt.justeaprèsimportpourvoirsiouiounonlacomplétionintelligentedecodedesfonctionsaétéactivéeavecsuccès.
Sitoutfonctionnecorrectement,vousêtesprêt.
Sinon,vérifiezànouveauvotre$PATH.Ouvrezunterminal,tapezgocode.S'ilnes'exécutepas,votre$PATHn'estpasconfigurécorrectement.
Vim
Vimestunéditeurtrèspopulairechezlesprogrammeurs,quiestuneévolutiondesonprédécesseur,Vi.Iladesfonctionnalitésdecomplétionintelligente,compilationetnavigationentreleserreurs.
Figure1.8ComplétionintelligentepourGosousVim
1. ColorationsyntaxiquesousGo
cp-r$GOROOT/misc/vim/*~/.vim/
2. Activerlacolorationsyntaxique
filetypepluginindentonsyntaxon
3. Installergocode
goget-ugithub.com/nsf/gocode
gocodeserainstallédans$GOBINpardéfaut
4. Configurergocode
~cd$GOPATH/src/github.com/nsf/gocode/vim~./update.bash~gocodesetpropose-builtinstruepropose-builtinstrue~gocodesetlib-path"/home/border/gocode/pkg/linux_amd64"lib-path"/home/border/gocode/pkg/linux_amd64"~gocodesetpropose-builtinstruelib-path"/home/border/gocode/pkg/linux_amd64"
Explicationssurlaconfigurationdegocode:
propose-builtins:activeounonlacomplétionautomatique;fauxpardéfaut.
lib-path:gocodechercheuniquementlespaquetsdans$GOPATH/pkg/$GOOS_$GOARCHet$GOROOT/pkg/$GOOS_$GOARCH.Ceparamètrepeut-êtreutilisépourajouterdescheminsadditionnels.
5. Félicitations!lancez:emain.gopourexplorerlemondedeGo!
Emacs
Emacsestl'armefatale.Cen'estpasseulementunéditeur,maisaussiunIDEtrèspuissant.
Figure1.10Panneauprincipaldel'éditeurGod'Emacs
1. Colorationsyntaxique
cp$GOROOT/misc/emacs/*~/.emacs.d/
2. Installergocode
goget-ugithub.com/nsf/gocode
gocodeserainstallédans$GOBINpardéfaut
3. Configurergocode
~cd$GOPATH/src/github.com/nsf/gocode/vim~./update.bash~gocodesetpropose-builtinstruepropose-builtinstrue
~gocodesetlib-path"/home/border/gocode/pkg/linux_amd64"lib-path"/home/border/gocode/pkg/linux_amd64"~gocodesetpropose-builtinstruelib-path"/home/border/gocode/pkg/linux_amd64"
4. Installerl'AutoCompletion
Téléchargementetdécompression
~makeinstallDIR=$HOME/.emacs.d/auto-complete
Configurer~/.emacsfile
;;auto-complete(require'auto-complete-config)(add-to-list'ac-dictionary-directories"~/.emacs.d/auto-complete/ac-dict")(ac-config-default)(local-set-key(kbd"M-/")'semantic-complete-analyze-inline)(local-set-key"."'semantic-complete-self-insert)(local-set-key">"'semantic-complete-self-insert)
Cliquezcelienpourplusdedétails.
5. Configurer.emacs
;;golangmode(require'go-mode-load)(require'go-autocomplete);;speedbar;;(speedbar1)(speedbar-add-supported-extension".go")(add-hook'go-mode-hook'(lambda();;gocode(auto-complete-mode1)
(setqac-sources'(ac-source-go));;Imenu&Speedbar(setqimenu-generic-expression'(("type""^type*\\([^\t\n\r\f]*\\)"1)("func""^func*\\(.*\\){"1)))(imenu-add-to-menubar"Index");;Outlinemode(make-local-variable'outline-regexp)(setqoutline-regexp"//\\.\\|//[^\r\n\f][^\r\n\f]\\|pack\\|func\\|impo\\|cons\\|var.\\|type\\|\t\t*....")(outline-minor-mode1)(local-set-key"\M-a"'outline-previous-visible-heading)(local-set-key"\M-e"'outline-next-visible-heading);;Menubar(require'easymenu)(defconstgo-hooked-menu'("Gotools"["Gorunbuffer"got]["Goreformatbuffer"go-fmt-buffert]["Gocheckbuffer"go-fix-buffert]))(easy-menu-definego-added-menu(current-local-map)"Gotools"go-hooked-menu)
;;Other(setqshow-trailing-whitespacet)));;helperfunction(defungo()"runcurrentbuffer"(interactive)(compile(concat"gorun"(buffer-file-name))))
;;helperfunction(defungo-fmt-buffer()"rungofmtoncurrentbuffer"(interactive)(ifbuffer-read-only(progn(ding)(message"Bufferisreadonly"))(let((p(line-number-at-pos))(filename(buffer-file-name))(old-max-mini-window-heightmax-mini-window-height))
(show-all)(if(get-buffer"*GoReformatErrors*")(progn(delete-windows-on"*GoReformatErrors*")(kill-buffer"*GoReformatErrors*")))(setqmax-mini-window-height1)(if(=0(shell-command-on-region(point-min)(point-max)"gofmt""*GoReformatOutput*"nil"*GoReformatErrors*"t))(progn(erase-buffer)(insert-buffer-substring"*GoReformatOutput*")(goto-char(point-min))(forward-line(1-p)))(with-current-buffer"*GoReformatErrors*"(progn(goto-char(point-min))(while(re-search-forward"<standardinput>"nilt)(replace-matchfilename))(goto-char(point-min))(compilation-mode))))(setqmax-mini-window-heightold-max-mini-window-height)(delete-windows-on"*GoReformatOutput*")(kill-buffer"*GoReformatOutput*"))));;helperfunction(defungo-fix-buffer()"rungofixoncurrentbuffer"(interactive)(show-all)(shell-command-on-region(point-min)(point-max)"gotoolfix-diff"))
6. Félicitations,vousavezfini!Speedbarestfermépardéfaut-décommentez;;(speedbar1)pouractivercettefonctionnalité,ouvouspouvezl'utiliserviaM-xspeedbar.
Eclipse
Eclipseestaussiuntrèsbonoutildedéveloppement.Jevaisvousmontrercommentl'utiliserpourécriredesprogrammesGo.
Figure1.1Panneauprincipald'EclipsepourdévelopperenGo
1. TéléchargezetinstallezEclipse
2. Téléchargezgoclipse
Instructionsd'installation
3. Téléchargezgocode
gocodesurGithub.
https://github.com/nsf/gocode
VousdevezinstallergitsousWindows,généralementviamsysgit
Installergocodeenlignedecommandes
goget-ugithub.com/nsf/gocode
Vouspouvezl'installerdepuislessourcessivouspréférez..
4. TéléchargezetinstallezMinGW
5. Configurezlesextensions.
Windows->Préférences->Go
(1).ConfigurezlecompilateurGo
Figure1.12ParamètresGodansEclipse
(2).Configurezgocode(optionnel),paramètrezlechemingocodeversl'emplacementdegocode.exe.
Figure1.13Paramètresgocode
(3).Configurezgdb(optionnell),paramètrezlechemindegdbversl'emplacementdegdb.exe.
Figure1.14Paramètregdb
6. Vérifiezl'installation
CréezunnouveauprojetGoetunfichierhello.gocommesuit.
Figure1.15Créezunnouveauprojetetfichier.
Testezl'installationcommesuit(Vousavezbesoindetaperlacommandedanslaconsoled'Eclipse).
Figure1.16TestezGodepuisEclipse
IntelliJIDEA
LesdéveloppeursJavasontfamiliersdecetIDE.IlsupportelacolorationsyntaxiqueetlacomplétionintelligentedecodesousGo,viauneextension.
1. TéléchargezIDEA,iln'yaaucunedifférenceentreleséditionsUltimateetCommunity
2. Installerl'extensionGo.ChoisissezFile-Setting-Plugins,puisBrowserrepo.
3. Cherchezgolang,double-cliquezdownloadandinstalletpatientezjusqu'àlafindutéléchargement.
CliquezApply,puisredémarrez.
4. MaintenantvouspouvezcréerunprojetGo.
EntrezlechemindevotresdkGodansl'étapesuivante-quicorrespondàvotre$GOROOT.
Navigation
TabledesmatièresSectionprécédente:CommandesGoSectionsuivante:Résumé
1.5RésuméDanscechapitre,nousavonsabordél'installationdeGosuivanttroisméthodesdifférentescomprenantcelleparlecodesource,vialepaquetstandardetdesoutilstierce.Ensuite,nousavonsvucommentconfigurerl'environnementdedéveloppementGo,couvrantprincipalementlaconfigurationdevotre$GOPATH.Aprèscela,nousavonsprésentécertainesméthodesdecompilationetdedéploiementdeprogrammesdeGo.NousavonsensuitecouvertdescommandesGo,incluantlacompilation,l'installation,leformatageetlestests.Enfin,ilexistedenombreuxoutilspuissantspourdévelopperdesprogrammesGotelsqueLiteIDE,SublimeText,Vim,Emacs,Eclipse,IntelliJIDEA,etc.VouspouvezchoisirceluidevotrepréférencepourdécouvrirlemondedulangageGo.
Navigation
TabledesmatièresSectionprécédente:OutilsdedéveloppementGoChapitresuivant:BasesdulangageGo
AppendiceARéférencesCelivreestuncondensédemonexpérienceavecGo,certainscontenusproviennentdeblogsousitesd'autresgophers.Vouspouvezlesremercier!
1. golangblog2. RussCoxblog3. gobook4. golangtutorials5. de6. GoProgrammingLanguage7. NetworkprogrammingwithGo
8. setup-the-rails-application-for-internationalization9. TheCross-SiteScripting(XSS)FAQ