Hvad er vertikal softwareudvikling?

Vertikal softwareudvikling, også kaldet vertical slice architecture, er en metode til softwareudvikling, der skiller sig ud fra den mere klassiske lagdelte arkitektur ved at inddele sig yderligere efter funktioner i stedet for teknologiske lagdelinger.
En traditionel lagdelt arkitektur kunne bestå af 3 lag. En database (repository), et servicelag (business logic) og et user interface (UI). Alle funktioner som softwaren har, skal altså igennem de samme 3 lag. Det kan føre til kompliceret og langsom arkitektur, især hvis softwaren har mange funktioner. Med vertical slice architecture har man i stedet et vertikalt snit for hver funktion. Hver enkelt funktion indeholder altså alt hvad der skal til for at implementere dens funktionalitet. En funktion eller et vertikalt “slice” vil altså indeholde både databasen, servicelaget og user interfacet i én samlet pakke. Den yderligere opdeling gør udviklingen af funktioner mere overskuelig og samtidigt bliver det lettere at implementere nye eller gennemføre ændringer på eksisterende funktioner.

Få effektivt software med Vertikal Softwareudvikling

Hvilke fordele har vertikal softwareudvikling?

Vertikal softwareudvikling giver en række attraktive muligheder, man ikke får med klassisk lagdelt arkitektur. Idet hver funktion kan implementeres separat er det nemt at lave ændringer og man kan hurtigere oprette nye funktioner og teste dem. Flere udviklere kan også arbejde på den samme software, da de kan arbejde på hver deres individuelle funktioner. Vertikal softwareudvikling har også fordele for meget store softwareløsninger, idet de tilbyder en fantastisk skalerbarhed. Hvis du har brug for komplekst software med mange funktioner og modularitet er vertikal softwareudvikling en rigtig god mulighed.
Vertikal softwareudvikling tilbyder også lettere vedligehold, da de forskellige funktioner kan vedligeholdes individuelt uden at de andre påvirkes.

Hvad er CQRS - og hvorfor er det godt til vertikal softwareudvikling?

CQRS står for Command Query Responsibility Segregation og bliver ofte brugt i forbindelse med vertikal softwareudvikling. CQRS er adskillelsen af kommandoer og forespørgsler, altså de operationer der ændrer data (kommandoer) og læser data (forespørgsler). CQRS er særligt velegnet til vertikal softwareudvikling, idet hvert vertikalt slice har sin egen funktion, og det er ikke alle funktionerne der både kræver mulighed for kommandoer og forespørgsler. Derfor kan man drage fordel af CQRS, som deler kommandoer og forespørgsler op i to, hvilket giver hurtigere svartider. Hvis man bruger den samme model til at ændre og læse data, kan den ene proces gøre den anden langsom under stort besøgstryk. Derfor kan man især på større softwareløsninger have gavn af at bruge CQRS. Alternativet til CQRS er en CRUD løsning. CRUD står for create (opret), read (læs), update (opdater) og delete (slet). En CRUD løsning kan godt være fin til en mindre softwareløsning, men CQRS er optimalt til større løsninger med mange besøgende om dagen.

Vertikal Softwareudvikling hos CodeOptimus

Interesseret i at høre mere om Vertikal Softwareudvikling?

Kontakt CodeOptimus for en uforpligtende snak om Vertikal Softwareudvikling og hvordan det kunne blive en fordel i dit softwareprojekt.