bereid de ontwikkelomgeving voor

Ik herinner me nog wanneer ik begin mijn reis van ontwikkeling, de meest pijnlijke periode was het opzetten van de ontwikkelomgeving, speciaal als dit soort project (meer dan 3 systemen), moeten we verschillende diensten Downloaden (jar, binary, enz.) om het open te krijgen draait lokaal, maar bedankt voor de container technologie, met behulp van eenvoudige docker-compose.yml-bestand, kunnen we bootstrap alle belangrijke toepassingen / componenten die we nodig hadden.

zie je, hoe simpel is het?

ontwikkeling / codering

laten we beginnen met het leuke deel, Go is mijn recente première ontwikkeltaal, maar waarom ik koos voor de ontwikkeling van de Datapijplijn, vanwege de eenvoud, prestaties en het type safe. Hier ben ik niet van plan om het voordeel van Go uit te leggen, als u geïnteresseerd bent in, controleer dan Golang.org.

zoals gewoonlijk, als je mijn vorige post nakijkt

MachineBox.io API met 100% unit testing dekking door gebruik te maken van Go

u zult weten dat ik dezelfde applicatie structuur zal gebruiken.

1. Bouw de verbinding door het maken van de env Struct

2. Het gebruik van interfaces

u bent mogelijk vertrouwd met het gebruik van interfaces door het werken via de go walkthrough of uit de officiële documentatie. Het mooie van het gebruik van interfaces in Go is echter dat je een set van methoden kunt definiëren die een type (vaak struct) moet definiëren om als een implementatie van die interface te worden beschouwd.

wanneer een bepaald type implementeert alle methoden van die interface, de go compiler automatisch weet dat het is toegestaan om te worden gebruikt als dat type.

3. Loggen

loggen is moeilijk!

als u al als relatieve functie voor Applicatieproductie hebt gewerkt. U zult de ontwikkelaar waarderen die de informatie over hoe de toepassing wordt uitgevoerd, wanneer en hoe deze toepassing is mislukt, welk bestand, welke functie logt. (A Plus+)

voorbeeld

Ik gebruik de Uber Zap libs. En ik wrapper ook in een helper die kan worden gebruikt in verschillende project verschillende niveau. Voor mij, Ik geef de voorkeur return lagere hefboom fout aan de belangrijkste implementatie.

implementatie van logboekregistratie

4. Unit Test

het schrijven van unit tests kan ervoor zorgen dat onze code werkt zoals verwacht, is veel minder “duur” dan wanneer een bug of regressie maakt het helemaal naar een release.

als u zich de #1 interface-implementatie nog herinnert, en het andere voordeel van de interface-implementatie is dat u gemakkelijk testbare code kunt schrijven.

een Voorbeeld van de unit testing

Unit test dekking is geïnteresseerd onderwerp, gebruik ik gek genoeg zijn om te traceren van de 100% dekking, echter, ik leer mijn lessen, de belangrijkste unit test:

Hoe zeker bent u over uw code en zorg ervoor dat de CI/CD automatisering vangen zo veel als mogelijk de codering niveau regressie bugs.

go test -cover

eindresultaat

eindresultaat — gif

Ondersteuning Fase

Deze pijpleiding is alleen gebouwd in het weekend, laten we zeggen, 10 uur totaal ontwerpen, ontwikkelen/coderen. Vanwege de unit testen dekking, logging, en lokale integratie test. Ik ben er vrij zeker van dat het klaar is voor de productie, maar…

Verbeteringsfase

het enige wat hier ontbreekt, is de beveiliging implementatie, milieu niveau, en code niveau. dit is het belangrijkste onderdeel als u wilt verzenden naar productie.

dit artikel richt zich voornamelijk op het ontwerp en de bouw. De volgende post zal meer focus op ondersteuning en verbetering. 🙂

deel 2:

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.