ROBBESTAD ARCHIVErecovered 2026-09-01

ARCHIVE FILE

Flow — finn JavaScript bugs

written
archived
source
inbeta.no (Inmeta)

Flow -- finn JavaScript bugs med mindre arbeid.

Facebook avdekket nylig et nytt open source-prosjekt kalt Flow. Hensikten med verktøyet er å avdekke bugs i JavaScript-kode som kan oppstå fordi programmeringsspråket ikke krever at du lager variabler som bare inneholder en bestemt type data.

I JavaScript kan du for eksempel lage en variabel som du kaller mittNummer med en eller annen verdi., som et heltall Du kan senere angi at mittNummer skal være noe helt annet, for eksempel "ti", eller et flyttall som 10.0, eller et objekt og så videre.

Java og andre lignende språk ville klaget på dettte og ikke latt deg kjøre programmet, men JavaScript tenker at du som programmerer bør vite best selv og gir således ingen varsler.

De fleste JavaScript-programmerer setter pris på at soråket oppfører seg slikt, selv om det kan være en kilde til bugs. Det skal sies at programmerer fra andre språk har sett på dette som en uting, og har introdusert nye språk for å bøte på dette, som for eksempel TypeScript, CoffeeScript, Spider , AtScript og Dart

Felles for disse er at du må skrive JavaScript på en spesiell måte, med krav om at du ikke blander typer i variabler, og at de kompilerer til vanlig JavaScript. Språkene har selvfølgelig mange flere kort opp i ermet som skal gi bedre arbeidsflyt og kanskje mer oversiktlig kode.

Ulempen er at du må lære deg spesfikke måter å skrive JavaScript på som ikke ligner så mye på vanlig JavaScript. Det gir kanskje færre bugs, men det gjør deg til en dårligere JavaScript-programmerer. Er det ikke bedre å lære seg å skrive ordentlig JavaScript?

Med Flow prøver Facebook å avdekke bugs som forårsakes av blanding av variabeltyper. Den fungerer som en avansert linter, og går gjennom filene dine og sjekker at du ikke iet sted i koden sier at mittNummer er et heltall, og senere behandler det som noe annet.

Fordelen er at du ikke behøver å gjøre et dugg med koden din (unntatt å fikse bugs når Flow varsler deg om det). Du trenger altså ikke begynne med type-annotering, men kan la Flow finne det ut for deg.

← index