Forbered Utviklingsmiljøet

først må Du sette Opp Utviklingsmiljøet. Jeg husker fortsatt når jeg starter min utviklingsreise, den mest smertefulle perioden ble satt opp Utviklingsmiljøet, spesielt som denne typen prosjekt (mer enn 3 systemer), må vi laste ned ulike tjenester (jar, binær, etc.) for å få den åpen kjører lokalt, men takk for container teknologi, ved hjelp av enkle docker-compose.yml fil, kan vi bootstrap alle viktige programmer / komponenter vi trengte.

Se, hvor enkelt er det?

Utvikling/Koding

La oss starte den morsomme delen, Go Er min siste premiere utvikling språk, men hvorfor jeg valgte Å Gå For Data Pipeline utvikling, på grunn av sin enkelhet, forestillinger og type safe. Her skal jeg ikke forklare fordelene Med Go, hvis du er interessert i, vennligst sjekk Golang.org.

som vanlig, hvis du sjekker mitt forrige innlegg

hvordan bygge en MachineBox.io API med 100% enhetstesting dekning Ved Å bruke Go

du vil vite, jeg vil bruke samme programstruktur.

1. Bygg tilkoblingen ved å opprette Env Struct

2. Bruke grensesnitt

du kan være kjent med bruken av grensesnitt fra å arbeide Gjennom Go walkthrough eller fra den offisielle dokumentasjonen. Men det fine med å bruke grensesnitt I Go, er at du kan definere et sett med metoder en type (ofte struct) må definere for å bli vurdert som en implementering av det grensesnittet.

Når en gitt type implementerer alle metodene for det grensesnittet, Vet Go-kompilatoren automatisk at Det er tillatt å bli brukt som den typen.

3. Logging

Logging er vanskelig!

hvis Du allerede har jobbet som Application Production Support relativ funksjon. Du vil sette pris på utvikleren som logger informasjonen om hvordan programmet kjører, når og hvordan dette programmet mislyktes, hvilken fil, hvilken funksjon. (Et Pluss+)

Logging Eksempel

jeg bruker Uber Zap libs. Og jeg også wrapper inn i en hjelper som kan brukes i ulike prosjekt annet nivå. For meg foretrekker jeg å returnere lavere spakfeil til hovedimplementeringen.

Logging implementering

4. Enhetstest

Skriveenhetstester kan sikre at koden vår fungerer som forventet, er mye mindre » dyr » enn om en feil eller regresjon gjør det helt til en utgivelse.

hvis du fortsatt husker # 1-grensesnittimplementeringen, og den andre fordelen med grensesnittimplementeringen er å hjelpe deg med å skrive testbar kode.

Eksempel en av enhetstesting

Enhetstestdekning er et interessert emne, jeg bruker til gal nok til å spore 100% dekning, men jeg lærer leksjonene mine, det viktigste om enhetstest er:

Hvor trygg du er om koden din og sørg FOR AT ci / CD automatisering fange så mye som mulig koding nivå regresjon bugs.

gå test-cover

Sluttresultat

Sluttresultat-gif

Støttefase

denne rørledningen er bare bygget over helgen, la oss si 10 timer total design, utvikling / koding. På grunn av enhetstesting dekning, logging, og lokal integrasjon test. Jeg er ganske sikker på at produksjonen er klar, men…

Forbedringsfase

det eneste som mangler her, er sikkerhetsimplementeringen, miljønivået og kodenivået. dette er den viktigste delen hvis du vil sende til produksjon.

denne artikkelen fokuserer mest På Design og Bygge. Neste innlegg vil fokusere mer På Støtte og Forbedring. 🙂

Del 2:

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.