The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Facebook открыл код статического анализатора для языка JavaScript

21.11.2014 20:25

Facebook представил новый открытый проект Flow, в рамках которого подготовлена система для статического анализа типов для языка JavaScript. Основной целью разработки является упрощение поиска ошибок в коде на языке JavaScript, без дополнительных трудозатрат на его аудит, а также предоставление средств для снижения уровня ошибок при разработке новых проектов. Проект написан на языке OCaml и распространяется под лицензией BSD.

В качестве метода выявления ошибок применяется автоматическое определение типов переменных на основании контекста, с дальнейшим отслеживанием их корректного использования. Например, если переменная участвует в арифметическом действии, то запись в неё строкового значения будет рассматриваться как потенциальная ошибка. Flow позволяет при проверке разделять динамический по своей задумке код, от кода, в котором используются неизменные типы.

Flow также обеспечивает продвинутый механизм выявления проблем со значениями null и массивами. Поддерживаются многие новые возможности, представленные в спецификации ECMAScript 6, такие как деструкторы, классы, расширенные объекты, опциональные параметры и такие расширения API, как Map, Set, Promise. При анализе JavaScript-модулей поддерживаются спецификации CommonJS / Node.js.

Кроме проверки корректности кода, Flow может использоваться для преобразования обычного Javascript в представлении с явным указанием типов, а также выполнение обратной конвертации. Например, из "function foo(x, y)" в "function foo(x: string, y: number): string" и наоборот. Типизированное представление синтаксически напоминает метод указания типов в языках AtScript и TypeScript. Управлять процессом проверки можно через специальные аннотации в комментариях к коду. В том числе можно осуществить проверку только определённых частей web-приложения.

  1. Главная ссылка к новости (https://code.facebook.com/post...)
  2. OpenNews: Google развивает AtScript, вариант JavaScript с аннотациями типов
  3. OpenNews: Увидел свет TypeScript 1.0, продвигаемый Microsoft в качестве альтернативы JavaScript
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/41105-javascript
Ключевые слова: javascript
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (16) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, User (??), 22:50, 21/11/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +10 +/
    Используем костыльный язык для разработки и потом пишем различные утилиты для разгребания этих костылей...
     
     
  • 2.2, Stax (ok), 23:16, 21/11/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Используем костыльный язык для разработки
    > Проект написан на языке OCaml

    ???

     
     
  • 3.4, A.Stahl (ok), 23:34, 21/11/2014 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Ок...
    Используем древний и мёртвый язык для разгребания костылей ненужных языков...
    А давайте на Форте напишем компилятор(ну или транслятор) Ада...
     
     
  • 4.6, day (?), 23:58, 21/11/2014 [^] [^^] [^^^] [ответить]  
  • +/
    А легко, я вот на яваскрипте форт пишу
     
     
  • 5.15, Аноним (-), 21:16, 22/11/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > А легко, я вот на яваскрипте форт пишу

    А я вот левой пяткой правое ухо чешу!

     
  • 3.13, Vkni (ok), 16:22, 22/11/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > ???

    OCaml - очень удобный язык для создания компиляторов, а под костыльным языком подразумевался JavaScript, очевидно.

     
     
  • 4.16, Аноним (-), 21:16, 22/11/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > OCaml - очень удобный язык для создания компиляторов,

    При том настолько удобный, что им практически никто не пользуется.


     
     
  • 5.17, k.bxya.ru (?), 01:17, 03/12/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > При том настолько удобный, что им практически никто не пользуется.

    Ну вот, в фейсбуке на нем уже PHP-компилятор и JS-компилятор во всю используются.

     
  • 2.3, Аноним (-), 23:33, 21/11/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Вообще-то лучший на данный момент язык и инфраструктура, с ним связанная.
     
     
  • 3.5, RazrFalcon (ok), 23:49, 21/11/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Для веба - да.
     
     
  • 4.7, User (??), 00:08, 22/11/2014 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Тормозит и потребляет ресурсы очень качественно. Это да. С этим никто не спорит.
     
     
  • 5.8, Зевака (?), 00:22, 22/11/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Попросите найти Вам обзор миллиона сессий на одном сервере с node.js
     
  • 5.9, неимя (?), 00:22, 22/11/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Альтернативы?
     
     
  • 6.11, Crazy Alex (ok), 06:21, 22/11/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Дык, специализированные клиенты, разумеется
     
  • 4.10, Crazy Alex (ok), 06:20, 22/11/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Угу. Она же худшая, она же единственная.
     
  • 3.12, Аноним (-), 08:43, 22/11/2014 [^] [^^] [^^^] [ответить]  
  • +/
    https://www.destroyallsoftware.com/talks/wat
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру