Короче, нужно короче
Я помню, как смеялся в университете, когда видел смешные правила на длину строчки кода в 80 символов. У меня были примерно такие мысли: “Пфф, 80 символов - это же из старого терминала, 80х24, сейчас-то разрешение экрана позволяет писать строчки кода длиннее, потому что 140 легко влезает и читается”. Спустя время я понял, что 80 символов актуальны до сих пор.
Недавно в одном из ревью кода, которое я проводил, я увидел, что автор изменений увеличил максимально допустимую длину строчки кода в правилах статического анализатора. Я счел это недопустимым, и вот, что я ему тогда написал:
Не стоит увеличивать, уменьшать только стоит. Да, у всех на столах стоит по три широкоформатных монитора, но это не значит, что человеческому мозгу легко читать строчки кода по 140 символов. Более того, когда пытаешься прочесть строчку кода длиной в 140 символов в браузере в ревью (где экран делится на два вертикальной чертой и слева отображаются старые изменения, а справа новые) эти строчки начинают переноситься, что еще больше ломает восприятие такого кода (ну не растягивать же окно браузера на два монитора!). Более того, когда происходит мерж конфликт, и, я например, использую визуальное средство для разрешения конфликтов, то там экран делится на три (две вертикальные линии делят) части: слева изменения в локальном репозитории, посредине результат, справа изменения в удаленном репозитории - примерно понятно, о чем я? Длина строки напрямую влияет на поддерживаемость кода, и чем короче строчка, тем проще будет читать и поддерживать.
Есть даже немного более общее правило: чем больше смысла на строчку кода, тем сложнее эту строчку читать.
80 символов актуальны до сих пор потому, что современный процесс разработки заставляет нас тратить бОльшую часть времени на чтение кода (сравнение diff-ов, проведение код-ревью, понимание написанного другим разработчиком). Не каждому человеку комфортно читать 140 символов в строке какого-нибудь романа, не то, что кода. А ведь код сложнее! Потому что когда читаешь код, то постоянно меняется контекст: то в один файл заглянул, то в другой, то вобще открыл постороннюю библиотеку, а потом вернулся опять в свой проект. Такая частая смена контекста возможна в быстром темпе только тогда, когда контексты маленькие, не переполненные смыслом. Когда, чтобы прочесть одну строчку кода, не нужно иметь в ввиду в голове 500 строчек выше, или даже 20 символов левее на этой же строке.