Go modul struktúra és a VSCode; a Go work szolgáltatás használata
Címkék: programozás go golang go work VSCode
2023.01.12. 11:13
Felmerült, hogy Go nyelven fejlesszek. Ezért tanulmányozni kezdtem a nyelvet.
Amit feltétlenül tudni érdemes a Go nyelvről, hogy szigorúan típusos, procedurális, fordított nyelv. Sajátos tömör szintaktikával rendelkezik. Az előálló futtatható állomány környezet specifikus és "önjáró". Vagyis a Windows környezetben készült eredmény egy exe és minden függő modul ebben van benne.
Valamikor a pályafutásom elején sokat használtam a Clipper nyelvet. Mily érdekes a hasonlóság. Mennyire szerettem volna ha a Clipper típusos.
A webes keresésekkor ajánlatos a Go helyett Golang kifejezéssel keresni.
Alábbi megállapításaim a még nem kellő mélységű ismereteimen, de gyakorlati megfigyeléseimen alapulnak.
A Go alapegysége a modul. Én ezt szeretném projektként értelmezni, hogy be tudjam illeszteni eddigi ismereteimbe.
A modul alapértelmezetten a felhasználói mappában "lakik" a saját mappájában. De ez nem kötelező. A Go workspace tetszőleges helyen lehet, csak a ` ` környezeti változónak oda kell mutatni. Amennyire meg tudom állapítani, a mappa nevének a modul nevét kell viselnie. A modul mappájának van ajánlott szerkezete, bene ajánlott almappákkal. Az eddig látott példákban ennek használatát nem tatasztalom. A gyakorlat szerint a csomagoknak (package) van saját almappája.
A modul mappájában meg kell hogy legyen a `go.mod` állomány, amelyet az inicializáló parancs hoz létre. Szokásos még a `main.go` állomány ami a belépési pontot tartalmazza. Tapasztalatom szerint az állomány neve nem kötelező, de kötelezően a `main` csomagban kell legyen és definiálnia kell a `main` funkciót.
Fejlesztői környezetből nem látszik nagy választék. A Go oldalán a Jet Brains féle InteliJ változat, a Visual Studio Code (VSCode) és kissé meglepő módon a Vim található. A webes példákban gyakran a VSCode-t használják.
Mivel nálam a VSCode telepítve van és ha nem is túl gyakran, de használom. Ezt választottam.
Maga a Go "eltűri", hogy egy gyűjtő (workspace) mappában több, a fenti szerinti, modul (projekt) mappa legyen. Viszont a VSCode nem szereti ha a workspace mappában több `go.mod` állományt tartalmazó almappa van. Nem találja meg a másik package-ben található funkciókat és más hasonló "nyűgjei" vannak.
Szerencsére az verziótól lehetőség van a `go work` használatára.
A workspace mappában állva kell a parancsokat kiadni. Először inicializálni kell a szolgáltatást a ` ` paranccsal. Ezt követően lehet `
A bejegyzés trackback címe:
Kommentek:
A hozzászólások a vonatkozó jogszabályok értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a Felhasználási feltételekben és az adatvédelmi tájékoztatóban.