eslint-config-htmlacademy
eslint-config-htmlacademy copied to clipboard
style: use tabs instead of spaces
Использование пробелом ограничивает возможности настройки редактора. При использовании табов, каждый может настроить себе ширину по желанию
Надо залинковать с yomoyo/issues/1097 👀
Добавьте к issue исследование на использование пробелов/табов в реальных проектах.
eslint-config-htmlacademy - это отражение многих мнений, как наставников в Академии, так и внешних компаний, поэтому тут для смены значения на табы нужны более весомые аргументы. Исследование - поможет более чётко сформулироват для чего это нужно.
Добавьте к issue исследование на использование пробелов/табов в реальных проектах.
Лично я всё больше встречаю в проектах табы, а не пробелы. И даже догадываюсь почему. Но собирать какую-то статистику — это вообще не имеет смысла. Выбор символов для индентации — это же не выбор фреймфорка, сборщика, препроцессора, и тому подобное, что не сменишь никак (ну почти) выбрав на проекте однажды. Это всего лишь символы. И они всего лишь в конфиге. Причём конфиге htmlacademy, которая в первую очередь должна думать о студентах, а не о том, что там кто использует в команде разработки, Лиге, и что там ещё есть внутри. И уж тем более не о том, что используют за пределами академии.
Просто для сравнения:
- Разработчиков в Академии и Лиге (не стажёров, а на постоянке) сколько? Не могу знать, но могу догадываться — где-то в районе пары десятков, а то и меньше. И эта пара десятков в паре команд могут у себя в конфиге кроме экстенда ещё и переопределение написать для этого одного правила, если уж такая непереносимость табов.
- Студентов тысячи, и никто из них либо не будет переопределять ничего, либо нарвётся на неприятности в автопроверках (не знаю, как сейчас, но раньше было нормально с этим, ибо робот сотрел на конфиг в проекте). Но страдают все эти тысячи.
Почему страдают? Потому что:
- Нет возможности настроить величину отступов для своего удобства, без влияния на дифф в гите и сломанного количества этих отступов. А делеко не всем удобно с оступами в 2 символа (по своим сужу: кто-то при табах менял дефолт 4 для таба в редакторе на 2, но большинство оставляло 4, не потому что дефолт, а именно удобно).
- Всегда есть возможность случайно стереть один пробел и потом после этого нечётного (или лучше скаать дробного) отступа куча строк с разными, но нечётными отступами. И курсы по js, не исключение из того правила, что на каждом потоке, обязательно будут подобные скриншоты (это свеженький из дискорда, но я таких сотни уже видел наверное):
- Но часто такие ↑ ситуации возникают даже не из-за случайного стирания, а потому что отбивают отступами клавишей Space (видел на созвонах не раз). А табы приучают манипулировать отступами клавишей Tab (с Shift, если уменьшить отступ).
И вот это всё (клавиша Tab; отсутствие и даже невозможность дробных отступов; настройка величины под себя у каждого при одинаковом конфиге у всех) я сейчас про образовательный процесс, который вообще-то у академии должен быть на первом плане, а не предпочтения команды разработчиков или лиги.
Не при чём тут исследования. После табов в учёбе устроившись выпускник на проекте с пробелами:
- не будет отбивать отступы клавишей Space, потому что привык уже нажимать Tab, а поэтому…
- не будет косячить с нечётными отступами (почти наверняка). Ну максимум будет неудобно с гвоздями прибитой величиной — переживёт.
P.S. И я не просто так прилинковал ишью из ё-моё, потому что это не только тут надо, а вообще на всех курсах во всех конфигах, которые в первую очередь для студентов.
На заметку: На 9й eslint всё равно никто так просто не обновится (#100), включая тех, кто просто использует этот академский конфиг как есть, как минимум надо сменить файл конфига и его логику подключения в него академского. Учитывая этот факт — это уникальная возможность наконец-то сменить дефолт в отступах. Если у какой-то внутренней команды аллергия на табы, просто в новый конфиг (всё равно же делать его будут) добавят переопределение этого правила. Но тысячам студентов будет наконец-то проще.
ИМХО отступы это вообще не ответственность линтинга.
Линтер вообще не должен лезть в форматирование, потому что это разные ответсвенности. При чём и по скорости.
А когда этим занимается линтер начинается что-то типо такого: