JavaScript: Линтер
Когда разные разработчики пишут код в разном стиле, код становится трудночитаемым: где-то пробел лишний, где-то отступы разные. Чтобы избежать разногласий, программисты договорились соблюдать единый стиль кодирования. Этот свод правил описывает, как должен выглядеть код: расстановку пробелов, оформление функций и названия переменных.
Единый стиль означает код, одинаково понятный всем членам команды, независимо от того, кто его написал. Это экономит время, снижает количество ошибок и упрощает совместную работу.
Стандарты кодирования
В экосистеме JavaScript нет одного официального стандарта, но существуют широко принятые руководства, например от AirBnb. Они подробно описывают, как оформлять код: какие отступы использовать, как расставлять пробелы, какой длины должны быть строки, как называть переменные и многое другое.
Эти правила знают и используют JavaScript-разработчики. Новичкам полезно время от времени заглядывать в них и вырабатывать правильные привычки с самого начала. Однако запоминать всё сразу нет необходимости.
Линтеры: автоматическая проверка кода
Запоминать все правила вручную не нужно. Существуют специальные программы, которые делают это за вас. Они называются линтеры.
Линтер представляет собой инструмент, который анализирует ваш код и сообщает о нарушениях стандартов. Он помогает:
- Избавиться от лишних пробелов
- Соблюдать отступы
- Писать читаемые и красивые выражения
Современный линтер: Biome
На сегодняшний день одним из самых быстрых и популярных линтеров для JavaScript является Biome. Он объединяет линтер и форматтер в одном инструменте, быстро работает и активно развивается.
Рассмотрим пример:
const result = 1+ 3;Такой код выглядит неаккуратно, и линтер справедливо укажет на ошибку. Вот как выглядит процесс проверки:
Код Линтер Результат
┌──────────────┐ ┌──────────┐ ┌─────────────────────────┐
│ const result │ → │ Biome │ → │ lint/style/noShoutyConst│
│ = 1+ 3 │ │ │ │ missing whitespace │
└──────────────┘ └──────────┘ └─────────────────────────┘Это значит, что перед и после + не хватает пробелов. Согласно стандарту, должно быть так:
const result = 1 + 3;Правила и их смысл
Каждое сообщение линтера связано с конкретным правилом. Например, одни правила касаются пробелов вокруг операторов, другие — пустых строк между блоками кода, третьи — длины строк. Когда вы только начинаете, такие мелочи могут казаться неважными. Но со временем становится понятно, что именно они формируют единый читаемый стиль.
С полным списком правил Biome можно ознакомиться в официальной документации.
Использование линтера в своих проектах
Когда вы начнёте писать собственные проекты за пределами учебной платформы, линтер будет незаменимым помощником. Его можно настроить в любом редакторе кода, запустить в терминале или подключить к сборке проекта. Линтер показывает ошибки и умеет исправлять их автоматически.
Задание
Вы получили код от коллеги — он работает правильно, но нарушает стандарт оформления. Исправьте пробелы вокруг операторов, не меняя логику:
console.log( (5 **2)-(3* 7));Результат должен остаться 4.
Полезное
Ваше упражнение проверяется по этим тестам
// @ts-check
import { expect, test, vi } from 'vitest';
test('linting', async () => {
const consoleLogSpy = vi.spyOn(console, 'log');
await import('./index.js');
const firstArg = consoleLogSpy.mock.calls.join('\n');
expect(firstArg).toBe('4');
});Решение учителя откроется через:
20:00
