Dansk regnskabsprogram er kodet i ren JavaScript

Version2′s sommertour er nået omkring Billy’s Billing på Gothersgade i København. Den danske virksomhed laver et regnskabsprogram, der kører i en browser udelukkende via HTML5 og JavaScript.

»Fordelen med JavaScript er, at så meget kan foregå i browseren. Det får det hele til at virke mere flydende, og giver en bedre oplevelse, når man sidder med det,« fortæller udvikler hos Billy’s Billing gennem tre år Michael Storgaard.

Han er en del af et udvikler-team på fire, hvoraf de tre andre befinder sig i USA. Billy’s Billing anvender JavaScript-frameworket Ember. Det er velegnet til at strukturere de forskellige dele i regnskabsprogrammet og binde dem sammen, fortæller Michael Storgaard.


Udvikler gennem tre år hos Billy’s Billing Michael Storgaard tegner en grovskitse af backend og frontend-delen i virksomhedens regnskabsprogram.

Ember følger en såkaldt MVC-model – model, view og controller. Hvor model-delen repræsenterer datalaget, view er brugergrænsefladen og controlleren er det funktionelle lag, der eksempelvis tager sig af, hvad der skal ske, når brugeren trykker på en knap.

»Der er nogle strikse konventioner for, hvordan koden skal struktureres i Ember. Eksempelvis hvor filerne skal placeres i henhold til MVC-modellen. Og det hjælper med at bevare en rigtig god struktur på hele projektet,« siger Michael Storgaard.

JavaScript har ikke givet problemer i sig selv

JavaScript-fundamentet bevirker, at regnskabsprogrammet kører i diverse moderne browsere og på tablets uafhængigt af det underliggende operativsystem. Michael Storgaard fortæller, at valget af JavaScript som programmeringssprog til regnskabsprogrammet frem for klassiske sprog som eksempelvis Java eller C# ikke i sig selv har været et problem.

»Rent kodemæssigt er det ikke et problem at skrive det i Javascript. Vi har haft samme mulighed for at teste det hele igennem, som vi ville have med andre sprog. Tidligere har det måske været sådan, at JavaScript blev betragtet som lidt for løst struktureret, men det har blandt andet sådan noget som ember-frameworket hjulpet med at rette op på,« siger han.

Selvom regnskabsprogrammet kan køre i en browser, er det dog ikke optimeret til den mindre skærm på mobiltelefoner, fortæller Michael Storgaard. Men Billy’s Billing har dog planer om at lave en version af programmet som app til telefoner.


Grovskitsen viser de forskellige elementer i regnskabs-systemet fra Billy’s Billing. Nederst er frontenden, der kører i brugerens browser, og som er kodet med Javascript-frameworket ember. Dernæst et plugin til ember kaldet billydata, som samler og strømliner kommunikationen til backenden. Backend-delen kører i Amazons skytjeneste AWS og består af en database og et REST-baseret API kodet i PHP. Api’et bliver både tilgået af Billy’s Billings frontend program og af eksempelvis webbutikker, der opdaterer informationer om ordrer direkte i databasen.

Der findes ganske vist en mobilapp fra Billy’s Billing, men det er ikke det egentlige regnskabsprogram, men en slags tilføjelse til programmet, der gør det muligt at uploade regninger til det bagvedliggende system, når man er på farten.

Backend-systemet

Mens den del af regnskabssystemet, som ligger ude hos brugerne, er kodet i ember og HTML5, så er backend-systemet en lidt anden historie.

Billy’s Billing har lavet en plugin til Ember-frameworket kaldet billydata, som også ligger i brugerens browser. Den del sørger for at samle og optimere kommunikationen fra frontend-systemet til backenden, som ligger i Amazons skytjeneste AWS.

Her bliver data lagret via et REST-baseret API kodet i PHP. Altså en grænseflade, som kommunikation til og fra databasen foregår via.

Både Billy’s Billings eget regnskabsprogram og virksomhedens eksterne kunder anvender dette API for at tilgå regnskabsdata i databasen.

»At vi sidder og arbejder op mod vores eget offentlige API, betyder, at vi skal være opmærksomme på hvilke ændringer, vi laver på det. Vi kan ikke lave drastiske ændringer, bare fordi vi har behov for det. Andre skal kunne stole på API’et. Men at vi arbejder op mod det betyder på den anden side også, at vi støder på de samme udfordringer som kunderne, som vi så kan løse,« siger Michael Storgaard.

De kunder, som tilgår databasen via api’et kan eksempelvis være webbutikker, der automatisk opdaterer regnskabsdata i databasen, når nye ordrer tikker ind.

Omkring valget af Amazons skytjeneste, fremhæver Michael Storgaard fordelen ved hurtigt at kunne opskalere og nedskalere antallet af servere, så det passer til kundernes behov.

En drilagtig bug

I sine tre år som udvikler er Michael Storgaard selvsagt stødt på et par umiddelbart uforklarlige bugs. En af dem handlede om de danske bogstaver æ, ø og å, eller i hvert fald et af dem.

»Vi fik en melding fra nogle kunder om, at der var problemer med at uploade filer, og at det måske var noget med æ, ø og å i filnavnene,« siger han.

Efter at have forsøgt med filnavne med danske bogstaver, uden der var problemer, fandt udviklerne langt om længe frem til, at det faktisk kun var det danske bogstav å, der fik uploaden til at gå i skuddermudder.

»Vi lavede en generel funktion, der rettede alle specialtegn, så det var sikret fremover,« siger Michael Storgaard.

Posted in computer.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>