Join us!
Want to join the team?

We would love to get to know you

Are you looking for an employer who cares about you as a person and where you feel involved in everything that concerns you? Welcome to JellyHive!
Who are we? We are a successful IT consultant company and our philosophy is that the company is our employees.
Who are you? You are a system developer (fullstack, frontend, backend), and/or maybe also a scrum master, test lead, devops etc.
What we offer you Participation in developing the company with generous benefits.


Upload your cv Supported filetypes are: .pdf, .doc and .docx
Hide

First Class Commands: The 2017 Edition

Reginald Braithwaite har jobbat med mjukvara länge och jobbat för både Github och nu PagerDuty. Hans talk om “first class commands” var en teknisk djupdykning i hur man kan se metod-körningar som körs som ett “command” och hur man gör för att hantera dessa som en “first class citizen” i sitt språk. I de flesta OOP-språk är object first class, dvs man kan spara dem i variabler, skicka in dem i, och returnera dem från, metoder. 

Vad är då poängen med detta? Om vi kan spara undan ett command för senare exekvering kan vi väldigt enkelt bygga en “Undo/Redo”-funktionalitet i vårt språk. Reginald demonstrerade detta genom att skriva en klass som hanterar en textsträng. På denna sträng kan man sedan göra olika Edit-kommandon, som t ex att byta ut delar av strängen mot något annat. Detta är en typ av separation of concerns som man gärna får till i kod för att minska komplexiteten. 

För er som är bekanta med event sourcing kan man se detta som events för metod-körningar.

I grund och botten är detta ett ganska enkelt pattern men det blir snabbt väldigt komplext, speciellt när man kommer till att kunna kombinera commands som körts på olika objekt. Till detta finns en rad olika tekniker man kan använda.

Vet ni vilken annan teknik som bygger på detta? Git. :) 

Comments