LINUX.ORG.RU

80 символов?


0

1

А что думают благородные доны про Великий и Вечный Стандарт Кодирования в 80 символов на строку?
Лично мне как-то не хватает. По крайней мере в перле. Приходится всякие вещи вроде $self->named_function->{named_key_from_function_result}->format($first_named_param, $second_named_param) либо разбивать на три строки, либо как в каменном веке именовать функции вместо get_all_operator_settings как g_all_os. Бесит и первое, и второе.
Вроде эпоха 17" мониторов давно кончилась, и я бы сказал, что стоит писать символов по 150 в строке.

Понял. Вопрос религиозный. Религия велит использовать 80 символов, делать в блоке не более 30 строк, не думать о действиях, думать о строках.

★★★★★

Последнее исправление: Xellos (всего исправлений: 1)

Ответ на: комментарий от redgremlin

Ооок, чтоб функция умещалась на экран, надо каждую строчку разбить на несколько частей.

Это начальное данное, примерно как и строчки не должны быть длинными. Ограничения обусловленные особенностями восприятия информацией человеком. А как можно вложиться в эти ограничения вопрос следующий. Кроме «компактизации» кода в объёкты есть ещё и другие методы и приципы.

Вот именно. Ты почему-то о коде судишь по одной строчке. $mail_user и $mail_host используются много где и вдруг мне надо везде заменить на $auth{USERNAME} и $auth{HOSTNAME} ради того, чтобы можно было сделать в одном месте %auth.

И что тут такого? По символам это почти так же, как и твоё $mail_user, немного длиннее. Можно вообще отдельный объект заводить с аксессорами. Как именно хорошо делать в твоём случае зависит от много чего, в частности от ограничения ЯП.

И только ради того, чтобы не оскорблять религиозные чувства секты 80чиков, единственный аргумент которых «ДЕДЫ ЗАВЕЩАЛИ!!!111».

Это всё делается только ради одной цели - сделать гогнокод читабельным, об этом пишут с самого начала треда. Твоё дело хотеть этого или нет. Но и дело других разработчиков слать тебя на (~принимать на работу, платить болше $...) или нет. Разработка чаще процесс коллективный.

mashina ★★★★★
()
Ответ на: комментарий от redgremlin

свободное место это не пробельные символы. Это то, что правее кода до конца окна редактора/IDE.

Лично у меня на 80 символах край редактора, а за ним - outline модуля.

И меня подкорабливает от
Каждый
охотник
желает
знать
где
сидит
фазан.

А у меня всё в порядке с

Каждый охотник
желает знать
где сидит фазан.

tailgunner ★★★★★
()

Сам иногда матюкаюсь: ну не влезают функции с пятью-шестью параметрами в одну строку! Приходится переносить по параметру на строку.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от redgremlin

Строка в 80 символов ни разу не длинная практически на любом доступном ныне устройстве для программирования

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

Более того, если исходить из концепции «тем лучше, чем больше на экране символов кода по отношению к свободному пространству», то 80 символов — очень неэффективное ограничение для большинства современных языков программирования.

Это же полная чушь. Длинных строк даже у самых упоротых не бывает слишком много, коротких и совсем коротких (~ пунктуация ЯП, типа {} ) будет больше. Итого, если пересчитывать отношение для окна редактора, то 80 строк с очень большим отрывом выигрывает.

mashina ★★★★★
()
Ответ на: комментарий от Xellos

О, то есть если функция переходит за 40 СТРОК, мне надо срочно начинать новую?

Тебе лично хз что нужно, предлагал для начала что-нибудь почтитать. Но с такими заявлениями есть некоторые опасения

mashina ★★★★★
()
Ответ на: комментарий от PolarFox

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

Это прописано в Linux kernel coding style:

Functions should be short and sweet, and do just one thing. They should fit on one or two screenfuls of text (the ISO/ANSI screen size is 80x24, as we all know), and do one thing and do that well.

mashina ★★★★★
()
Ответ на: комментарий от mashina

Исторически древние девайсы подгоняли под некоторые стандарты «юзабили» из типографии, которые в свою очередь растут от простоты/сложности восприятия человеком.

Сказки матушки Гусыни. Никто никуда не подгонял, просто исторически сложилось сначала знакоместо 8х8 (в результате любой однобайтный шрифт занимал ровно 256*8=2k), а потом уж 80 символов в строке, с появлением CGA.

коротких и совсем коротких (~ пунктуация ЯП, типа {} )

Для пишущих

if ()
{
}
вместо
if () {
}
в аду есть отдельный, особо жаркий, котёл.

redgremlin ★★★★★
()
Последнее исправление: redgremlin (всего исправлений: 1)

Из гуглового стайлгайда для плюсов (и не только)

Those who favor this rule argue that it is rude to force them to resize their windows and there is no need for anything longer. Some folks are used to having several code windows side-by-side, and thus don't have room to widen their windows in any case. People set up their work environment assuming a particular maximum window width, and 80 columns has been the traditional standard. Why change it?

Актуально и здесь, думаю.

Y ★★
()
Ответ на: комментарий от redgremlin

древние девайсы подгоняли под некоторые стандарты «юзабили» из типографии, которые в свою очередь растут от простоты/сложности восприятия человеком.

Сказки матушки Гусыни.

Вытащил из шкафа самую «широкую» книгу, посчитал буквы в наугад взятой строке - 82. «Случайно совпало» (ц)

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Вот я предлагаю страдать первым. Которые столько лет жили без windows side-by-side, а теперь не могут даже второй монитор себе поставить.

Xellos ★★★★★
() автор топика
Ответ на: комментарий от redgremlin

Сказки матушки Гусыни. Никто никуда не подгонял, просто исторически сложилось сначала знакоместо 8х8 (в результате любой однобайтный шрифт занимал ровно 256*8=2k), а потом уж 80 символов в строке, с появлением CGA.

ой. Снова путаешь причины и следствия.

mashina ★★★★★
()
Ответ на: комментарий от Xellos

Вот я предлагаю страдать первым.

Напиши своё ядро и свой кодингстайл к нему, там предложи любую длинну. А здесь стандарт уже готов, извиняйте.

anonymous
()
Ответ на: комментарий от Xellos

Остальное мы игнорируем.

Код пишешь не ты один и сам ты не всегда будешь писать код один. Логично всегда использовать один стиль – удобный большинству. Тем более, что он имеет и ряд других преимуществ, уже упомянутых в данном треде.

Y ★★
()
Ответ на: комментарий от Xellos

Вот я предлагаю страдать первым.

А гугловые стандарты обязывают страдать вторых.

Которые столько лет жили без windows side-by-side, а теперь не могут даже второй монитор себе поставить.

Кхм. Я даже не буду спрашивать тебя, откуда ты знаешь, как они жили и к чему они привыкли.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

кстати, у меня на экран влазит 230 букв. Как ты относишься к строкам такой длины? %)

Считаю, что ограничение надо удвоить до 460. А то как-то не по-хакерски получится - всякое ламьё сможет прочесть этот великий не-днище-нский код :)

d_Artagnan ★★
()

На странице книги 66 символов ЕМНИП. И это неспроста. Так удобнее читать.

А 80 это вдвое больше 40, которое образовалось исторически.

ziemin ★★
()
Ответ на: комментарий от Xellos

Больше беготни по говнокоду вверх-вниз чтобы понять, что же делает функция!

fixed

по _коду_ бегать, чтобы понять, не надо. потому что функция «влезает» в один экран.

Учись кодировать под музыку MC Connell !

d_Artagnan ★★
()
Ответ на: комментарий от mashina

Coding style is very personal, and I won't _force_ my views on anybody

Please at least consider the points made here.

unless exceeding 80 columns significantly increases readability and does not hide information

it's OK to have a longer function.

aedeph_ ★★
()
Последнее исправление: aedeph_ (всего исправлений: 1)
Ответ на: комментарий от Xellos

В хорошем коде на брейнфаке

В строку 80 символов умещают операционную систему!

Я вижу, среди юного поколения бытует много мифов про BF.

d_Artagnan ★★
()
Ответ на: комментарий от guest_star

А то, опять же в некоторых случаях при большой вложенности или длинных имен функций, читабельность бы пострадала.

Use refactoring, Luke...

PS стайлкопа и аналогов многим не хватает для вправления мозгов :)

d_Artagnan ★★
()
Ответ на: комментарий от Xellos

Ладно еще +1 камент...

Так вот с этим начинаются проблемы, когда создание объекта растягивается на 8 строк.

Перловка ж поддерживает ООП стиль - реализуй для объектов со сложным конструированием паттерн Builder там какой? ...И снова влезешь в 1 экран и 80 символов :)

Все проблемы от отсутствия подготовки к инженерному подходу в программировании :)

d_Artagnan ★★
()
Ответ на: комментарий от Xellos

Слушайте, чем вас всех тут окуривали?

«Если все кругом - говно, может быть, проблема в тебе?» (с)

d_Artagnan ★★
()
Ответ на: комментарий от ziemin

На странице книги 66 символов ЕМНИП. И это неспроста. Так удобнее читать.

Ага, потому что книгу большей ширины неудобно держать в руках.

А 80 это вдвое больше 40

Казалось бы, при чём тут 66 символов в книге?

Xellos ★★★★★
() автор топика
Ответ на: комментарий от Xellos

при чём тут 66 символов в книге?

Эмпирическое число, при котором глаза не устают прыгать со строчки на строчку и не теряют «flow».

beastie ★★★★★
()
Ответ на: комментарий от beastie

Отлично, как это относится к 80 символам в строке кода?

Xellos ★★★★★
() автор топика
Ответ на: комментарий от Xellos

Казалось бы, при чём тут 66 символов в книге?

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

ziemin ★★
()
Ответ на: комментарий от ziemin

80 почти на 17% больше чем 66. Почему тогда не 60? Не 25, наконец? Можно будет поместить рядом восемь окон с кодом!

Xellos ★★★★★
() автор топика
Ответ на: комментарий от Xellos

80 почти на 17% больше чем 66.

80 это вдвое больше 40. А 40 уже гораздо ближе к 66.

Почему тогда не 60? Не 25, наконец?

Тут я могу только предполагать. Первые мониторы/принтеры были целиком аппаратные. Может, с точки зрения всяких сдвиговых регистров, это «круглое» число. А может это от фазы луны зависело. ХЗ, в общем.

ziemin ★★
()
Ответ на: комментарий от redgremlin

Chapter 2: Breaking long lines and strings

Coding style is all about readability and maintainability using commonly available tools.

The limit on the length of lines is 80 columns and this is a strongly preferred limit.

Statements longer than 80 columns will be broken into sensible chunks, unless exceeding 80 columns significantly increases readability and does not hide information. Descendants are always substantially shorter than the parent and are placed substantially to the right. The same applies to function headers with a long argument list. However, never break user-visible strings such as printk messages, because that breaks the ability to grep for them.

Угадай откуда эта цитата

anonymous
()
Ответ на: комментарий от guest_star

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

d_Artagnan ★★
()
Ответ на: комментарий от aedeph_

FORTRAN77

а вот она и истинна)))) там ещё и дибилизм с ограничением имён переменных по длине

golodranez ★★★★
()
Ответ на: комментарий от zinfandel

temperature_value - вот имя переменной, уже 17 символов - какие нахрен 80 ? вы походу все переменные называете x, y, a, b. Глупости не говорите.

golodranez ★★★★
()
Ответ на: комментарий от golodranez

я вообще их не разбиваю, нормальные редакторы их сами разбивают

Доверяешь той настройке, которую за тебя сделал какой-то левый дядя? Для пописулек под локалхост пойдёт.

anonymous
()
Ответ на: комментарий от golodranez

temperature_value - вот имя переменной, уже 17 символов - какие нахрен 80 ? вы походу все переменные называете x, y, a, b. Глупости не говорите.

Одна функция и пара переменных, чего тебе ещё в одной строке надо?

anonymous
()
Ответ на: комментарий от d_Artagnan

Возник вопрос - а почему не просто temperature(11) или там temp(4) или просто t(1) ?

Потому что все твои варианты нечитаемы. Почему _value? Потому что есть ещё статус, и прочие приставки. А остальное... - temp - ТЕМП? 120 ударов в минуту?))))

golodranez ★★★★
()
Ответ на: комментарий от d_Artagnan

if (write_multiple_registers( starting_address, quantity_of_registers, registers_value, quantity_of_registers * 2) < 0)

вот вызов функции Modbus, и он будет понятен любому кодеру. Как его сократить, не утратив ясности?

golodranez ★★★★
()
Ответ на: комментарий от anonymous

Доверяешь той настройке, которую за тебя сделал какой-то левый дядя?

Ты не понял. Переносит ВИДИМОСТЬ, в файле исходников ничего не меняется.

golodranez ★★★★
()

а вот если тебе нужно три файла слить в один, ты что будешь делать? 240 букв влазит, но Over9000 — увы, нет.

emulek
()
Ответ на: комментарий от Eddy_Em

Сам иногда матюкаюсь: ну не влезают функции с пятью-шестью параметрами в одну строку!

а зачем её обязательно в одну строку пихать?

emulek
()
Ответ на: комментарий от redgremlin

а потом уж 80 символов в строке, с появлением CGA.

ВНЕЗАПНО: 80 символов намного древнее CGA. И фонты тут не при чём. 80 символов были ещё на чёрно-зелёных мониторах в 70х года прошлого века в Этой Стране, ещё задолго до твоей CGA(что было в те годы гламуром и понтом, точнее уже в 80х).

emulek
()
Ответ на: комментарий от redgremlin

в аду есть отдельный, особо жаркий, котёл.

я срал на твой ад. Всегда так писал и так и буду писать впредь.

emulek
()
Ответ на: комментарий от zinfandel


Нужно. Стараюсь держать меньше 70, но 80 для меня предел. Настроил вим, чтобы ругался при превышении. Почему это хорошо уже сказали.



Рецепт в студию, пожалуйста.

blackst0ne ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.