// Без комментариев — классы JavaScript, проверка API и глубокое обучение


• Реорганизация устаревшего кода JavaScript для использования классов: хороший, плохой и уродливый

• Статическая проверка запросов веб-API в JavaScript

• Разработка платформы глубокого обучения на основе JavaScript и приложения для распределенного обучения.

Иногда новости достаточно хорошо сообщаются в других местах, и нам нечего добавить, кроме как обратить на это ваше внимание.

Без комментариев — это формат, в котором мы представляем исходную информацию об источнике, слегка отредактированную, чтобы вы могли решить, хотите ли вы следить за ней.

Рефакторинг устаревшего кода JavaScript для использования классов: хороший, плохой и уродливый

JavaScript — это язык, который мы все любим ненавидеть, за исключением, конечно, тех немногих редких программистов, которые уловили его редкие качества и приняли его отличие. Однако что нужно сделать, чтобы JavaScipt выглядел красивым? Классы его взломают? А как насчет рефакторинга кода для использования классов?

Системы JavaScript становятся все более сложными и большими. Для решения проблем, связанных с реализацией этих систем, язык развивается и включает несколько конструкций для программирования в целом.

Например, хотя язык основан на прототипах, последний стандарт JavaScript, названный ECMAScript 6 (ES6), обеспечивает встроенную поддержку для реализации классов. Несмотря на то, что большинство современных веб-браузеров поддерживают ES6, лишь очень немногие приложения используют синтаксис класса.

В этой статье мы анализируем процесс миграции структур, которые имитируют классы в устаревшем коде JavaScript, чтобы принять новый синтаксис для классов, представленный ES6. Мы применяем набор правил миграции к восьми устаревшим системам JavaScript. В нашем исследовании мы документируем:

(а) случаи, которые легко перенести (хорошие части);

(б) случаи, требующие ручной и специальной миграции (плохие части);

а также

(c) случаи, которые нельзя перенести из-за ограничений ES6 (уродливые части).

Шесть из восьми систем (75%) содержат примеры плохих и / или уродливых случаев. Мы также собираем мнения разработчиков JavaScript о переносе их кода на использование нового синтаксиса для классов.

Из комментариев у нас есть только один прототип JavaScript:

«IMHO, синтаксис класса вводит в заблуждение, поскольку« классы »JS на самом деле не являются классами. Использование прототипных шаблонов кажется более простым способом наследования ». (Разработчик системного изомера)

Хорошо помнить, что не все думают, что этот класс основан. объектно-ориентированный. язык — единственное решение.

Статическая проверка запросов веб-API в JavaScript

Это кажется действительно хорошей идеей, но почему не всегда так делают? Кажется, что API на основе HTTP на самом деле не в счет, и мы не считаем их достаточно реальными для разработки инструментов.

Многие приложения JavaScript выполняют HTTP-запросы к веб-API, полагаясь на URL-адрес запроса, метод HTTP и данные запроса, которые должны быть правильно построены с помощью строковых операций. Традиционная проверка ошибок во время компиляции, такая как вызов несуществующего метода в Java, недоступна для проверки того, соответствуют ли такие запросы требованиям веб-API.

В этой статье мы предлагаем подход к статической проверке запросов веб-API в JavaScript. Наш подход сначала извлекает строку URL-адреса запроса, метод HTTP и соответствующие данные запроса с помощью межпроцедурного анализа строк, а затем проверяет, соответствует ли запрос заданным спецификациям веб-API.

Мы оценили наш подход, проверив, соответствуют ли запросы веб-API в файлах JavaScript, добытых с GitHub, общедоступным спецификациям API. Из 6575 запросов в объеме наш подход определил, согласованы ли URL-адрес запроса и метод HTTP со спецификациями веб-API с точностью 96,0%.

Наш подход также правильно определил, были ли извлеченные данные запроса согласованными или несовместимыми с требованиями к данным с точностью 87,9% для данных полезной нагрузки и 99,9% для данных запроса. При систематическом анализе несогласованных случаев мы обнаружили, что многие из них были вызваны ошибками в клиентском коде. Предлагаемое здесь средство проверки может быть интегрировано с редакторами кода или с инструментами непрерывной интеграции, чтобы предупреждать программистов о коде, содержащем потенциально ошибочные запросы.

Разработка платформы глубокого обучения на основе JavaScript и приложения для распределенного обучения

Забудьте о TensorFlow. вы можете делать ИИ на JavaScript. Важно отметить, что это не игрушечная система и не демонстратор. Он использует аппаратное обеспечение графического процессора, чтобы получить разумную скорость обучения.

Глубокое обучение все больше привлекает внимание к обработке больших данных. Существующие структуры для глубокого обучения должны быть настроены на специализированные компьютерные системы. Таким образом, получение достаточных вычислительных ресурсов влечет за собой высокие затраты на развертывание и обслуживание.

В этой работе мы реализуем матричную библиотеку и фреймворк глубокого обучения, использующий JavaScript. Он может работать в веб-браузерах, работающих на обычных персональных компьютерах и смартфонах.

Используя JavaScript, глубокое обучение может выполняться в самых разных средах без необходимости установки программного обеспечения. Используя GPGPU из среды WebCL, наша структура может обучать крупномасштабные сверточные нейронные сети, такие как VGGNet и ResNet. В экспериментах мы демонстрируем их практичность, обучая VGGNet распределенным образом с использованием веб-браузеров в качестве клиента.

Вы можете скачать код по адресу: https://github.com/mil-tokyo, где вы также найдете быструю библиотеку матриц.

Наш вклад заключается в следующем:

• Мы реализовали самую быструю библиотеку матриц и библиотеку глубокого обучения, которая может работать в веб-браузерах с использованием GPGPU. Исходный код предоставляется как программное обеспечение с открытым исходным кодом.

• Даже там, где нельзя использовать GPGPU, предоставляется встроенная реализация JavaScript, которая позволяет выполнять высокоуровневые операции с многомерными матрицами.

• Мы описываем возможность обучения крупномасштабных CNN распределенным образом без установки программного обеспечения в вычислительных узлах, за исключением универсального плагина.

• Поклонник JavaScript Ян Эллиот является автором книги Just jQuery: The Core UI.


Добавить комментарий