1
Flow je statická kontrola typu JavaScriptu, kterou jsme vytvořili na Facebooku.Celkovým posláním společnosti Flow je poskytnout vývojářům JavaScriptu pohlcující zážitek z kódování - cyklus rychlých úprav a obnovování - i když se vývoj a vývoj kódové základny vyvíjí.Z technického hlediska určujeme dva konkrétní cíle, které jsou pro tuto misi důležité: přesnost a rychlost.Tyto cíle všudypřítomně ovlivňují návrh a implementaci.Přesné chyby JavaScriptu mohou mít na Facebooku významný dopad.Vývojáři chtějí najít a opravit tolik chyb, kolik mohou, než se jejich kód objeví.Takže se musíme starat o zdravost.Zároveň se musíme také starat o to, abychom neohlásili příliš mnoho rušivých chyb, protože nízký poměr signál / šum znamená nízkou fixní rychlost.Jinými slovy, chceme, aby Flowova analýza byla v praxi přesná - musí modelovat základní charakteristiky jazyka dostatečně přesně, aby pochopila rozdíl mezi idiomatickým kódem a neúmyslnými chybami.Speed Precision obvykle přichází za cenu rychlosti.Přestože je požadována přesná analýza, většina odvolání JavaScriptu je ztracena, pokud zpomalíme cyklus úprav a obnovování tím, že vývojáři čekají, až kompilaci provedeme.Jinými slovy, musíme analyzovat Flowovu analýzu tak, aby byla extrémně rychlá - musí reagovat na změny kódu bez znatelného zpoždění, zatímco v praxi je stále dostatečně přesná.
flow-js