Kuinka virtaviivaistat Go-kehitystäsi Makefileillä

Kuinka virtaviivaistat Go-kehitystäsi Makefileillä
Kaltaisesi lukijat auttavat tukemaan MUO:ta. Kun teet ostoksen käyttämällä sivustollamme olevia linkkejä, voimme ansaita kumppanipalkkion. Lue lisää.

Nykyaikaisessa ohjelmistokehityksessä tehokas rakennusautomaatio on ratkaisevan tärkeää projektin onnistumiselle. Makefiles, suosittu rakennusautomaatiotyökalu, tarjoaa kaikkien pinojen kehittäjille tiiviin ja tehokkaan tavan hallita monimutkaisia ​​rakennusprosesseja.





Integroimalla ja toimimalla yhteen Makefile-tiedostojen kanssa Go, voit automatisoida toistuvia tehtäviä, virtaviivaistaa rakennusprosesseja ja parantaa tuottavuutta.





PÄIVÄN VIDEON TEKEMINEN JATKA SISÄLLÖLLÄ VIERÄTÄ

Makefile-tiedostojen ymmärtäminen

  suosittu makefile-logo

Makefilesin toiminnan ymmärtäminen on ratkaisevan tärkeää projektien rakentamisen tehokkaan organisoinnin ja automatisoinnin kannalta.





voinko lähettää xbox oneen

Makefile-tiedostot noudattavat tiettyä rakennetta ja syntaksia sääntöjen määrittämiseksi projektien rakentamista ja ylläpitoa varten. Pohjimmiltaan Makefile koostuu säännöistä, jotka määrittelevät kohteet, riippuvuudet ja komennot. Jokainen sääntö alkaa kohteella, jota seuraa sen riippuvuudet ja komennot, joita tarvitaan kohteen rakentamiseen tai suorittamiseen.

Kohteet edustavat Makefilen haluttuja tulostiedostoja tai toimintoja. Kohteet voivat olla tiedostonimiä tai tunnisteita, jotka kuvaavat tehtävää. Esimerkiksi kohde nimeltä puhdas voi poistaa tarpeettomat tiedostot, jotka on luotu rakennusprosessin aikana.



Riippuvuudet ovat kohteen rakentamiseen tarvittavia tiedostoja tai tehtäviä. Jos riippuvuuksia muutetaan, Makefile rakentaa liittyvät kohteet uudelleen varmistaakseen, että projektin tarvittavat osat toimivat. Määrität riippuvuudet kohteen jälkeen välilyönneillä erotettuina.

Komennot ovat toimia tai shell-komennot jotka vaativat suorituksen tiettyjen tavoitteiden rakentamiseksi tai suorittamiseksi. Komennot kirjoitetaan yleensä käyttöjärjestelmän komentotulkkikomentokielellä.





Jokaisen komennon on aloitettava sarkainmerkillä tunnistamista varten.

 build: main.go utils.go 
    go build -o myapp main.go utils.go

clean:
    rm myapp

Yllä olevassa Makefile-tiedostossa on kaksi kohdetta: rakentaa ja puhdas .





The rakentaa tavoite riippuu main.go ja utils.go tiedostot, ja siihen liittyvä komento suoritetaan Go-kääntäjässä ja luodaan suoritettava tiedosto nimeltä myapp .

Toisaalta, puhdas kohde poistaa myapp suoritettava.

Kääntääksesi Go-koodin, siirry työhakemistoon ja suorita rakentaa komento.

 make build 

Make-työkalu hoitaa käännösprosessin, jolloin voit keskittyä koodin kirjoittamiseen.

Maketiedostojen määrittäminen Go-projekteihisi

Makefilesin avulla voit rakentaa ja kääntää ohjelmia, suorittaa kooditestejä ja laaduntarkastuksia sekä jatkuvaan integrointiin ja käyttöönottoon.

Suorita tämä komento luodaksesi Makefile projektille juurihakemistoon. The Makefile toimii aloituspisteenä rakennustehtävien määrittelyssä.

 touch Makefile 

Makefile-tiedostossasi ei pitäisi olla laajennuksia.

Makefile-tiedoston luomisen jälkeen voit kirjoittaa tiedostoon komentoja, riippuvuuksia ja kohteita projektisi toimintoja varten.

Tässä on esimerkki Makefile-tiedostosta, joka toimii rakennusautomaatiotyökaluna projektillesi:

 # Makefile 

# Variables
GOCMD=go
GOBUILD=$(GOCMD) build
GOTEST=$(GOCMD) test
GOCLEAN=$(GOCMD) clean

# Targets
build:
    $(GOBUILD) -o app .

test:
    $(GOTEST) ./...

clean:
    $(GOCLEAN)
    rm -f app

Voit muokata Makefileäsi projektisi erityistarpeiden mukaan.

Tässä on Makefile-tiedoston muokattu versio lisälippujen ja ympäristömuuttujien välittämiseksi projektisi testi- tai rakennusprosessin aikana:

 # Makefile 

# Variables
GOCMD=go
GOBUILD=$(GOCMD) build
GOTEST=$(GOCMD) test
GOCLEAN=$(GOCMD) clean
BINARY_NAME=app
TEST_FLAGS=-v

# Targets
build:
    $(GOBUILD) -o $(BINARY_NAME) .

test:
    $(GOTEST) $(TEST_FLAGS) ./...

clean:
    $(GOCLEAN)
    rm -f $(BINARY_NAME)

Tässä Makefile-tiedostossa on kaksi uutta muuttujaa nimeltä BINARY_NAME ja TEST_FLAGS . The BINARY_NAME muuttuja määrittää luodun suoritettavan tiedoston nimen.

The TEST_FLAGS muuttujan avulla voit määrittää lisälippuja testejä suoritettaessa (tässä tapauksessa -sisään lippu mahdollistaa monisanaisen tulostuksen testin suorittamisen aikana).

Makefiles tarjoaa myös helpon tavan määrittää ympäristömuuttujat ja liput projektillesi.

Voit lisätä nämä rivit Makefile-tiedostoon, jos sinun on määritettävä GOOS ja GOARCH muuttujat rakentaaksesi projektisi tiettyä käyttöjärjestelmää tai arkkitehtuuria varten.

 # Makefile 

# Variables
GOCMD=go
GOBUILD=$(GOCMD) build
GOTEST=$(GOCMD) test
GOCLEAN=$(GOCMD) clean
BINARY_NAME=app
TEST_FLAGS=-v
GOOS=linux
GOARCH=amd64

# Targets
build:
    $(GOBUILD) -o $(BINARY_NAME) .

test:
    $(GOTEST) $(TEST_FLAGS) ./...

clean:
    $(GOCLEAN)
    rm -f $(BINARY_NAME)

Päivitetyssä Makefilessä on kaksi uutta muuttujaa GOOS ja GOARCH ympäristömuuttujat, joiden avulla voit määrittää koontiversion kohdekäyttöjärjestelmän ja arkkitehtuurin (tässä tapauksessa GOOS muuttuja on asetettu arvoon Linux ja GOARCH to amd64 rakentaa projektin Linuxille x86-64-arkkitehtuurille).

Muista mukauttaa nämä muuttujat projektisi erityisvaatimusten mukaan.

Voit viitata Mene dokumentaatioon tuettujen arvojen luetteloon GOOS ja GOARCH jos sinun on rakennettava eri alustalle.

Rakenna automaatiota Makefileillä

Makefile-tiedostot ovat käteviä myös koodin kääntämiseen, dokumentaation luomiseen ja riippuvuuksien hallintaan.

Makefilesin avulla voit automatisoida käännösajan, mikä säästää aikaa ja vaivaa.

Tässä on Makefile, joka kokoaa Go-ohjelman:

 # Define variables 
GOCMD = go
GOBUILD = $(GOCMD) build
BINARY_NAME = myprogram

# Default target
all: build

# Build target
build:
    $(GOBUILD) -o $(BINARY_NAME)

# Clean target
clean:
    rm -f $(BINARY_NAME)

Makefile määrittää muuttujat, kuten GOCMD (Mene-komento) ja GOBUILD (rakennuskomento). The rakentaa kohde kutsuu mene rakentamaan komento kääntää Go-ohjelmamme ja tuottaa binaarin määritetyllä nimellä ( minun ohjelmani tässä tapauksessa). The puhdas target poistaa luodun binaarin projektista.

  makefile toiminnassa ohjelmien rakentamiseen

Makefilesin avulla voit automatisoida riippuvuuksien asennuksen ja pitää projektisi ulkoiset riippuvuudet ajan tasalla.

 # Define variables 
GOCMD = go
GOBUILD = $(GOCMD) build
GOGET = $(GOCMD) get
BINARY_NAME = myprogram

# Default target
all: build

# Build target
build:
    $(GOBUILD) -o $(BINARY_NAME)

# Install dependencies
deps:
    $(GOGET) -u

# Clean target
clean:
    rm -f $(BINARY_NAME)

Makefilessä on a osasto kohde, joka käyttää Hae komento asentaa tai päivittää projektin riippuvuuksia. Voit juosta tehdä depsiä asentaaksesi projektisi riippuvuuksia.

Makefiles voi automatisoida dokumentaation luomisen ja parantaa docs koodiprosessina .

katsella ilmaisia ​​elokuvia verkossa ilman rekisteröintiä

Näin voit tehdä sen Luo dokumentaatio automaattisesti Go-projekteihisi godoc-työkalulla ja Makefile:

 # Define variables 
GODOC = godoc
DOCS_DIR = docs

# Default target
all: docs

# Generate documentation
docs:
    $(GODOC) -html -dir . > $(DOCS_DIR)/index.html

# Clean target
clean:
    rm -rf $(DOCS_DIR)

Makefile-tiedostossa asiakirjoja kohde kutsuu goddoc komennon kanssa -html lippu luodaksesi HTML-dokumentaation go-koodillesi ja tallentaaksesi dokumentaation tiedostoon asiakirjoja hakemistosta.

Sinä suoritat tee asiakirjoja komento luodaksesi ajantasaisen dokumentaation Go-projektillesi.

Makefile-tiedostot ovat käteviä Unix-pohjaisten käyttöjärjestelmien kanssa työskentelemiseen

Hyödyntämällä Makefilesin joustavuutta, voit määrittää mukautettuja koontikomentoja ja suorittaa monimutkaisia ​​tehtäviä muutamassa minuutissa. Makefile säästää aikaa ja varmistaa johdonmukaisuuden ja toistettavuuden kaikissa rakennusympäristöissä.

Toinen Makefilesin etu on sen yhteensopivuus Unix-pohjaisten järjestelmien kanssa. Make on laajasti tuettu apuohjelma Unix-pohjaisissa käyttöjärjestelmissä, mukaan lukien Linux ja macOS, joten se on kannettava ja luotettava työkalu kehittäjille.