С появлением многофункциональных интерфейсных веб-приложений разработчикам приходится пересматривать и обращать внимание на возможности и использование языка JavaScript, отказываясь от прежней модели простого «копирования/вставки» обычных сценариев для выполнения простых интерфейсных задач. . Сам язык JavaScript представляет собой слабо типизированный язык сценариев с меньшими ограничениями, чем языки C++ или Java. Все идеи функционального программирования, ориентированные на функции, также предоставляют разработчикам более гибкие реализации синтаксиса. Однако, хотя эта гибкость обеспечивает эффективность, она также становится кошмаром для начинающих или неопытных разработчиков JavaScript. Различные стили кодирования и ошибочное поведение кода серьезно повлияли на читаемость и стабильность всего кода и стали одной из наиболее распространенных проблем в веб-проектах.
Поэтому нам нужен эффективный инструмент качества кода JavaScript, чтобы мы могли оперативно обнаруживать и исправлять проблемы, скрытые в коде JavaScript, и обеспечивать качество доставки кода. Являясь гибким и эффективным инструментом проверки качества кода JavaScript, JSLint позволяет пользователям указывать соглашения о стиле кодирования, отвечающие их конкретным потребностям в разработке приложений, что делает весь проект унифицированным по стилю. Такой способ работы, основанный на «правилах» (опциях), делает JSLint применимым. для различных потребностей обнаружения кода. Эта статья сначала познакомит читателей с основными концепциями и функциями JSLint, объяснит его метод работы, основанный на правилах, а затем проиллюстрирует его основное использование на примере. Наконец, она расскажет, как интегрировать JSLint в процесс приложения Ant и Eclipse. чтобы продемонстрировать все аспекты использования JSLint в повседневных задачах разработки.
Что такое JSLint
Будучи молодым языком с гибким синтаксисом и относительно свободными требованиями к формату, JavaScript имеет запутанные форматы кода и неправильное использование определенных функций языка, что часто приводит к тому, что конечный продукт содержит множество непредвиденных ошибок, вызванных соглашениями о стиле кодирования или ошибками, если таковые имеются. привычные проблемы не указываются и не исправляются вовремя, они часто будут повторяться в процессе итерации проекта, серьезно влияя на стабильность и безопасность веб-продуктов. JSLint — это инструмент, созданный Дугласом Крокфордом для решения таких проблем. Помимо указания на эти необоснованные условности, JSLint также может отмечать структурные проблемы. Хотя JSLint не может гарантировать правильность логики кода, он может помочь найти ошибки и научить разработчиков хорошим приемам кодирования. Стоит отметить, что сам инструмент JSLint также является частью кода JavaScript. Это сценарий JavaScript, проверяющий качество кода JavaScript. Проверка качества JavaScript-скриптов JSLint в основном включает в себя следующие аспекты:
• Обнаружение синтаксических ошибок: например, неправильное сочетание фигурных скобок «{}».
• Спецификации определения переменных: например, обнаружение неопределенных переменных.
• Спецификации формата кода: например, отсутствующая точка с запятой в конце предложения.
• Обнаружение использования дрянных функций языка: ограничения на использование, такие как eval и with.
Обновление версии JSLint было активным. На момент написания этой статьи последняя версия JSLint была выпущена 10 октября 2010 г. Многие распространенные редакторы кода обеспечивают хорошую расширенную поддержку JSLint, включая Eclipse, VS2008 и т. д.
В настоящее время существует множество инструментов обнаружения кода JavaScript с функциями, аналогичными JSLint, в том числе: YUI Test, Firebug, MS Script Debugger, CompanionJS и т. д. Большинство из них существуют в виде плагинов браузера в клиентском браузере для запуска JavaScript. Важная разница между JSLint и этими инструментами заключается в том, что он уделяет больше внимания обнаружению и отладке статических форматов кода, а это именно то, что необходимо и рекомендуется для непрерывного построения в нынешней горячей гибкой разработке.
Понимать правила JSLint
Основной принцип проверки качества кода JSLint заключается в наборе правил, установленных пользователем. Набор правил, предоставляемый JSLint, по умолчанию содержит стили разработки, которые веб-разработчики накопили за годы и считают их плохими. Мы можем создать определенный набор правил в соответствии с потребностями наших собственных проектов. JSLint будет сканировать основанные на нем сценарии JavaScript и предоставлять соответствующую информацию с описанием проблемы. Правила представлены в виде нескольких наборов пар ключ-значение: [параметр:опция] с именем правила в качестве ключа и указанием того, вызывается правило или нет в качестве значения. Например, правило: «plusplus:true» не разрешает появление операторов ++ и --, а «undef:true» не разрешает использование неопределенных переменных.
Поскольку инструмент JSLint по сути представляет собой обычный JS-скрипт, его работа, естественно, зависит от механизма выполнения JS. После загрузки механизмом он генерирует глобальный объект функции JSLint в памяти. Этот объект функции требует двух входных данных: источник и параметры. первый используется для указания строки или массива строк, сгенерированных после анализа обнаруживаемого файла сценария, а второй представляет определяемые пользователем параметры правила. Если параметры пусты, JSLint использует правила по умолчанию для сканирования и обнаружения источника.
Весь процесс обнаружения представляет собой процесс выполнения функции JSLINT (источник, параметры), содержащейся в скрипте. Когда указанный исходный сценарий проходит обнаружение при условии параметров, JSLint возвращает true, в противном случае он возвращает false, и в это время подробную информацию об ошибке можно получить через объект JSLINT.errors. На рисунке 1 показан весь рабочий процесс JSLint.
Рисунок 1. Принципиальная схема рабочего процесса JSLint
Как показано на рисунке, существует три способа настройки набора правил:
1. Измените правила по умолчанию напрямую, изменив исходный код JSLint.js.
2. Когда функция JSLint запущена, одновременно установите параметр options и динамически измените параметры его правила (сначала перезапишите). Этот метод подходит для использования одного и того же набора пользовательских правил для пакетных js-файлов.
3. Добавьте специальные правила (вторая перезапись), применимые к коду одного js-файла, добавив правила типа аннотации в заголовок детектируемого js-файла. Этот метод подходит для установки определенных правил обнаружения для разных js-файлов и обычно используется для введения в файл некоторых глобальных переменных.