Карательные инструменты во фронтенде

Katya Pavlenko
3 min readMay 10, 2018
тред на reddit

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

  • привносить новые идеи
  • отстаивать собственное мнение
  • указывать коллегам на их ошибки
  • педантично следовать правилам
  • быть правым

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

война Остроконечников и Тупоконечников

Все это, конечно, здорово, общаться прикольно, аргументированные споры прокачивают soft skills, но вот только бы затраченные человекочасы были соразмерны полученной пользе.

В 2017 году ребята подумали: “это надо прекратить” и выкатили карательный инструмент prettier. Не можете договориться? Ни вашим, ни нашим! Главная его фишка

полное игнорирование вашего кодстайла

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

Причем форматирует он довольно паршиво. Я, всякий раз заходя в файл для разработки, переформатирую его средствами IDE как мне удобно(все равно на прекоммите обратно станет pretty). Однако читать пулл-реквесты стало противно. Вы только посмотрите:

без преттиера. форматирую многострочные сущности как хочу, дифф показывет именно строку с изменением
с преттиером. привет конфликты!

Ну и просто оцените крайнее уродство и отсутсвие консистентности у асинхронных тестов

Крайне трогательно, что авторы реально обосновывают все шесть настроек, извиняясь, что их не пять. Правда смущает(и дарит занудам надежду), что huge demand для них — это 62 лайка на гитхабе

Я воспринимаю prettier как карательный инструмент. Удобство с легкой ноткой унижения. В вашей команде кто-то считает, что именно его взгляд на читаемость кода и расположение отступов — верный? Кто-то ищет в пулл-реквестах больше проблем кодстайла, чем проблем логики? Команда тратит время на пустые споры?

Держите то, что никому не нравится, но зато не обсуждается!

Немного неловко было писать про кодстайл в 2к18, но что поделаешь, жиза.

Что до меня: год жарких споров в пулл-реквестах спустя, я не выдержала, вкрутила prettier и теперь все хорошо. Изучаю похожие решения для html, нашла html-beautifier, он не может в перенос закрывающего тега на новую строку, но с опытом использования prettier, коллеги согласились на эту инвалидность)

--

--

Katya Pavlenko

frontend developer, love instant noodles and super simple explanations of complex things Github: https://github.com/cakeinpanic