Sammanfattning av verktygsval, arbetsmetoder och rutiner för utvecklingsfasen av vår DevOps-cykel.
Table of Contents | ||||
---|---|---|---|---|
|
Utvecklingsmiljö
Med utvecklingsmiljö här avser vi den lokala miljön som utvecklare sitter med.
Generella verktyg
Som generell editor föreslår vi Visual Studio Code med lämpliga plugins (dokumentera en rekommenderad grunduppsättning). Det bör dock vara fritt att använda andra editors om en känner sig effektivare med dem, så länge inte byggmiljöer påverkas eller licensmässiga problem uppstår.
Finns det några andra verktyg som alla skall/bör använda sig av? Skriv i så fall lite om dem här.
Språk och ramverk
Förstahandsvalet för utveckling av backendtjänster skall vara Java, med hjälp av ramverket Quarkus. Se bakgrunden till beslutet.
Databas
MariaDB används som databas i produktion. Quarkus har bra stöd för integration mot MariaDB. Ett tips är att använda Hibernate ORM för att generera upp databastabeller. Då blir det väldigt enkelt att köra samma kod med t.ex. H2.
...
Maven dependencies:
quarkus-jdbc-h2
OpenAPI
Vi genererar upp OpenAPI-specifikationer för våra applikationer. Detta gör vi för att få en bra dokumentation samtidigt som det gör det enkelt för klienter att anropa våra applikation. Denna OpenAPI-specifikation används även för att skapa ett API i vår API-Gateway WSO2.
...
Maven dependencies:
quarkus-smallrye-openapi
Namnsättning i Java-applikationer
Allt namnsätts på engelska.
Paket
Paket namnsätts med gemener.
Paketstrukturen ska inledas med
se.sundsvall
Exempel:
se.sundsvall.util
se.sundsvall.database
Klasser
Klasser namnsätts enligt UpperCamelCase.
Klassnamn ska vara substantiv.
Undvik förkortningar i klassnamn.
Exempel:
FeedbackSettingResource
Message
Metoder
Metoder namnsätts enligt lowerCamelCase.
Metodnamn ska vara verb.
Exempel:
convertDateToString
deleteFeedbackSetting
Variabler
Variabler namnsätts enligt lowerCamelCase.
Försök undvika variabelnamn med endast en bokstav, förutom temporära variabler (t.ex. for-loop).
Exempel:
personId
primaryContactMethod
Konstanter
Konstanter namnsätts med versaler.
Orden separeras med understreck ( _ ).
Exempel:
THE_REQUEST_MUST_CONTAIN_A_REQUEST_BODY
Kodhantering
Kodhantering sker idag internt på våran GitLab server https://gitlab.sundsvall.se
...
Hur fungerar det med branchhanteringen? När och hur skapas featurebrancher?
Anchor | ||||
---|---|---|---|---|
|
Funktionella tester
...
Enhetstester (https://www.javatpoint.com/unit-testing )
Dessa tester ska fokusera på att testa enskilda isolerade komponenter och dess funktionalitet.
...
Dessa tester ska vara automatiska och exekveras vid varje commit.
Integrationstester (https://www.javatpoint.com/integration-testing )
Dessa tester ska fokusera på att testa integrationerna mellan olika komponenter.
...
Dessa tester ska vara automatiska och exekveras vid varje commit.
Systemtester (https://www.javatpoint.com/system-testing )
Dessa tester ska fokusera på att testa systemets helhet. Dessa tester ska omfatta hela lösningen i vilken “våra” applikationer/mikrotjänster är en delmängd.
...
Dessa tester kan antingen vara automatiska eller manuella och ska exekveras inför varje release.
Acceptanstester (https://www.javatpoint.com/acceptance-testing )
Acceptanstestning ska utföras av kunden. Dessa tester ska fokusera på att säkerställa att systemet motsvarar de specificerade kraven.
Dessa tester ska exekveras inför varje release.