«Рекомендуемая» длина файла и ширина строки [закрыто]

9

Мне было бы любопытно, если бы кто-нибудь знал о рекомендации из авторитетного источника для максимального количества строк кода для данного файла. Например, Google Closure Linter рекомендует, чтобы каждая строка не превышала 80 символов.

Девин Дж Род
источник
Ваш пример несовместим с вопросом. Ваш вопрос спрашивает о строках в файле, а пример - количество символов в строке.
Джейсон С
2
Это та же самая концепция - квадратная область, которую вы должны прокручивать, горизонтальная или вертикальная.
Девин Г Род

Ответы:

11

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

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

hotpaw2
источник
Это самое полезное руководство, спасибо большое!
Девин Г Род
Есть ли слишком короткая длина файла ? У меня есть проект с 35 файлами со средней длиной ~ 200 строк.
Дан
1
@ Дэн, я бы рискнул "нет" в качестве ответа. Если открыть файл слишком сложно в вашей настройке, возможно, пришло время улучшить его (например, плагины vim, лучшую IDE, что бы ни делал emacs)
Майк Граф
@Dan: слишком короткий файл? Возможно, если вы потратите больше времени на поиск нужного крошечного файла для нескольких LOC вместо того, чтобы найти их в каком-то логически и тесно связанном (но не слишком длинном) файле.
hotpaw2
9

Такой вещи не существует, и если бы она существовала, это было бы в значительной степени зависеть от того, какой язык вы используете (например, в ассемблере по сравнению с C # или Java).

Для языков более высокого уровня вы можете увидеть это обсуждение SO. Для Java / C # 10-20 строк на метод - это то, что Боб Мартин рекомендует как максимум. Там нет обсуждения относительно файлов, так как это не имеет отношения к делу и зависит от того, что должен делать класс.

Что касается ограничения на 80 символов в строке - это возврат ко дням перфокарт. Сказав это, когда строки становятся слишком длинными, читаемость страдает.

Одед
источник
5
+1: хорошо иметь ширину менее 80 символов; легче читать и дает больше места для соседних окон
Donal Fellows
6
Лично я думаю, что читаемость страдает, когда строка разбита на несколько строк, чтобы уместиться в 80 или меньше. Есть также время, потраченное на решение, где сделать перерывы, или спор об этом.
ergosys
5

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

Длинные файлы, как правило, указывают на то, что методы, подпрограммы или классы слишком сложны (делают слишком много вещей, недостаточно разбираются и т. Д.)

Длинные строки указывают на то, что выражения слишком сложны.

Это запахи, которые указывают на потенциальную проблему с кодом, а не на четко определенные целевые показатели.

Рейн Хенрикс
источник
3

Длина строки должна быть такой, чтобы вам не приходилось прокручивать экран, чтобы увидеть всю строку. Это зависит от размера монитора и разрешения.

Методы и функции лучше всего подходят для одного экрана.

Файлы не должны быть слишком длинными. Лучшими являются короткие файлы, в которых легко понять класс и реализацию.
Однажды я работал над проектом, который имел файл 10 klines. Это было похоже на чтение очень сложной книги. Нужно ли мне сказать, сколько проблем вызвало внедрение?

BЈовић
источник
Код не должен требовать настройки крошечного шрифта для большого монитора, особенно для групповых проверок кода.
hotpaw2
«Длина строки должна быть такой, чтобы вам не приходилось прокручивать экран, чтобы увидеть всю строку». - что делать, если ваш редактор переносит?
Дан Даскалеску
3

80 персонажей!

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

С точки зрения размера класса, если вы попытаетесь применить это предложение к типичному классу Customer, который имеет около 80 свойств и около 20 методов, вам придется разбить класс на несколько других и сделать код действительно очень запутанным.

Без шансов
источник
1
Абсолютно. 80 символов означают, что вы можете распечатать фрагмент кода для мозгового штурма с разумным размером шрифта на листе формата A4 / Letter. Это также означает, что на разумном компьютерном мониторе для разработки вы можете просматривать три копии исходного кода бок о бок без горизонтальной прокрутки для выполнения трехстороннего слияния (забавно, что 80x8x3 составляет 1920 * 8 ').
Марк Бут
2

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

Кевин Клайн
источник
Я использую 22 "мониторы, которые переворачиваются по вертикали, что дает мне разрешение 1080 пикселей на каждом экране (и по вертикали я могу видеть одновременно 104 строки кода!). В таких сценариях полезно сохранять ширину строки до 90 или менее символов.
Рой Тинкер