Отличный вопрос!

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

Если бы вы показали мне этот код 4 года назад, я бы с вами согласился. После того, как я писал это таким образом в течение некоторого времени, я теперь предпочитаю его. Раньше это было не так, потому что сначала это выглядело довольно странно. На моей последней работе мы с коллегой углубились в концепции чистого кода, читаемости и удобства обслуживания и остановились на шаблонах, которые я использую сегодня.

На самом деле коллега так сильно предпочитал этот стиль, что переделывал устаревшие файлы AngularJS в новый формат, прежде чем выполнять в них какую-либо работу. Удивительно, но ему на самом деле стало легче отлаживать и находить проблемы, а мне — проверять код.

Кроме того, у него было немало других преимуществ:

  • Это позволило нам легко использовать 3–5 столбцов файлов кода в нашем текстовом редакторе.
  • Мы можем проверять код намного быстрее (даже на наших телефонах).
  • Конфликтов слияния Git почти не было, потому что изменение строки ничего не меняло вокруг нее.
  • Код стал иметь последовательный «внешний вид», что сделало очевидным, где начинаются и заканчиваются тернарные операторы, что передается в функцию, где код нуждается в рефакторинге и т. д. Это не было «иногда это одна строка, иногда несколько, иногда с переносом строки», если это имеет смысл.
  • Мы смогли просканировать файлы и выяснить общие принципы того, что делает код. Я думаю, это связано с тем, что большая часть кода находится ближе к левой стороне экрана.
  • Мы обнаружили, что было легче выявлять и исправлять ошибки, потому что мы могли делать более подробные имена переменных и не страдали от потери важной информации за пределами правой части экрана. Я лично использую line-wrap, но это тоже помогло мне, так как несколько наших строк когда-либо переносились.
  • Поскольку мы полностью использовали функциональный стиль в наших приложениях, эта методология действительно хорошо подходила. На самом деле это близко к тому, как вы разрабатываете компоненты React с помощью JSX, поскольку мы всегда опускаем реквизиты, если их больше одного.
  • Совершенно непреднамеренно, это значительно упрощает чтение статей Medium на вашем телефоне, поскольку вам нужно только прокручивать ось Y.

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

У меня в работе есть статья на эту тему, но я ее еще не закончил. Если у вас есть какие-либо отзывы, я обязательно включу их туда! Я думаю, что если писать о том, насколько что-то хорошо, это не донесет сообщения, если нет контраргументов.