1
Flow es un verificador de tipo estático para JavaScript que creamos en Facebook.La misión general de Flow es ofrecer una experiencia de codificación inmersiva para los desarrolladores de JavaScript, un ciclo rápido de edición y actualización, incluso a medida que la base de código evoluciona y crece.En términos de ingeniería, identificamos dos objetivos concretos que son importantes para esta misión: precisión y velocidad.Estos objetivos impulsan de manera generalizada el diseño y la implementación.Los errores de precisión de JavaScript pueden tener un impacto significativo en Facebook.Los desarrolladores quieren encontrar y corregir tantos errores como puedan para cuando su código entre en producción.Por eso debemos preocuparnos por la solidez.Al mismo tiempo, también debemos preocuparnos por no informar demasiados errores espurios, porque una relación señal / ruido baja implica una tasa de corrección baja.En otras palabras, queremos que el análisis de Flow sea preciso en la práctica: debe modelar las características esenciales del lenguaje con la suficiente precisión como para comprender la diferencia entre el código idiomático y los errores no intencionales.La precisión de la velocidad generalmente viene a costa de la velocidad.Pero aunque es deseable un análisis preciso, la mayor parte del atractivo de JavaScript se pierde si ralentizamos el ciclo de edición y actualización haciendo que los desarrolladores esperen mientras compilamos.En otras palabras, debemos diseñar el análisis de Flow para que sea extremadamente rápido: debe responder a los cambios de código sin demora notable, sin dejar de ser lo suficientemente preciso en la práctica.
flow-js