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

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

У меня как раз всё бы влезало :)

Ты не ответил, как к этому относишься.

tailgunner ★★★★★
()

100 раз обсуждалось

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

Конечно много. Надо писать

my $mail = new Mail::POP3Client ($u, $pw, $р, $tm);

Именованные параметры заставляют нас бессмысленно увеличивать длину строки!

А ещё лучше писать

my $mail = new Mail::POP3Client;
$mail->set_u($u);
$mail->set_pw($pw);
$mail->set_h($h);
$mail->set_tm($tm);
if (!$mail) {say $!;}
Xellos ★★★★★
() автор топика
Последнее исправление: Xellos (всего исправлений: 2)
Ответ на: комментарий от redgremlin

должно быть вот так

my $mail = new Mail::POP3Client (
                      USER     => $mail_user,
                      PASSWORD => $mail_password,
                      HOST     => $mail_host,
                      TIMEOUT  => $mail_timeout) or say $!;
А ещё правильнее не делать кучу переменных вида mail_~, а передавать это в дикте и его отдавать в POP3Client().

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

В результате на экран помещается вместо 50 дейтвий всего 10. Больше промоток! Больше беготни по коду вверх-вниз чтобы понять, что же делает функция!

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

Если их не надо читать, пусть будут. Та, которая самая длинная на 223 — это заполнение урла из хеша, смысл её читать, пишется раз и до следующего кардинального изменения целевого сайта.

redgremlin ★★★★★
()

гивно мамонта. пиши, как удобно тебе

ananas ★★★★★
()

я в 80 символов на строку

Плохо, неудобно.

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

Если их не надо читать, пусть будут.

Если не надо читать, тогда конечно.

tailgunner ★★★★★
()
Ответ на: комментарий от redgremlin
  my $mail = new Mail::POP3Client
             ( USER => $mail_user
             , PASSWORD => $mail_password
             , HOST=> $mail_host
             , TIMEOUT => $mail_timeout
             ) or say $!;

Так выглядит действительно хорошо и читаемо. А то что ты предлагаешь годится только для write-only скриптов.

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

В хорошем коде на брейнфаке в строку 80 символов умещают операционную систему!

Пруф или балабол.

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

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

Так нефиг большие функции писать.

anonymous
()

У меня в редакторе два маркера: на 80 и на 100. Стараюсь придерживаться 80, но без фанатизма. А то, опять же в некоторых случаях при большой вложенности или длинных имен функций, читабельность бы пострадала. Конечно, это пережиток прошлого с одной стороны. Но как раз использование больших диагоналей с 16:10 или даже 16:9 только поддталкивает к сохранению этого стандарта, чтоб исходник половину места по ширине занимал.

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

В результате на экран помещается вместо 50 дейтвий всего 10. Больше промоток! Больше беготни по коду вверх-вниз чтобы понять, что же делает функция!

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

Ещё нужно правильно выбирать модель данных приложения. Если все аргументы с $mail_ загонишь в объект (хэшик, например), то придётся передавать в POP3Client() всего один аргумент и заводить всего одну переменную вроде auth. Тогда вся эта сраная копипаста уложится в одну строчку меньше 80 символов.

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

должно быть вот так

Рука устанет скролл крутить, зато справа появится куча пустого места.

А ещё правильнее не делать кучу переменных вида mail_~, а передавать это в дикте

Это приведёт к ненужному загромождению кода в других местах.

redgremlin ★★★★★
()

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

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

Alve ★★★★★
()

Язабан всех кто против 80 символов.

buddhist ★★★★★
()

80 символов однозначно хватит не всем. Но тех кому не хватает 120, надо убивать. А длинные строки можно и переносить - ничего страшного. У меня обычно такие в условиях if или мат выражения и конкатенациях. Просто переношу на следующие с отступом в два таба и начинаю с оператора.

Suntechnic ★★★★★
()

Использую 120 символов для жабы. Хватает. Больше - уже слишком мелкий шрифт, с ноутбука неудобно читать.

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

Рука устанет скролл крутить, зато справа появится куча пустого места.

Мышковозилов чтоли? Есть ещё две таких сереньких кнопочки на клавиатуре, на них написан PgUp и PgDn, отлично заменяют скролл и рука от них не устаёт. А вопрос утилизации свободного места в топике уже несколько раз прояснили.

Если серьёзно, то ты придумываешь несуществующие проблемы в попытках защитить одностройчный гогнокод. Скроллить нужно всё равно и не обязательно делать это со сложностью O(N), позиционировать экран на начало ф-ии может тулза вроде ~ctags. Главное чтобы ф-я умешалась на экран.

Это приведёт к ненужному загромождению кода в других местах.

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

Это во-первых, локализация кода, т.е. иницилизация параметров для POP3 происходит в каком-то конкретном связанном месте (~не нужно перехерачивать весь гогнокод чтобы найти места происхождения параметров).

И во-вторых, избавление от копипасты в виде передачи мусора из $mail_~ между разными частями кода.

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

не делать их слишком большими

А 50 действий - это слишком большая функция?

Если все аргументы с $mail_ загонишь в объект

А в объект они загоняются волшебным образом, там нет строк, нет их длин...

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

Главное чтобы ф-я умешалась на экран

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

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

Главное чтобы ф-я умешалась на экран.

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

а странные фантазии

Вот именно. Ты почему-то о коде судишь по одной строчке. $mail_user и $mail_host используются много где и вдруг мне надо везде заменить на $auth{USERNAME} и $auth{HOSTNAME} ради того, чтобы можно было сделать в одном месте %auth. И только ради того, чтобы не оскорблять религиозные чувства секты 80чиков, единственный аргумент которых «ДЕДЫ ЗАВЕЩАЛИ!!!111».

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

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

Ты всё понял неправильно. Разбить строчку на несколько частей нужно для того, чтобы было удобнее читать.

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

Тем, что на самом деле речь идёт о

aaaaaaaaaaaa
bbbbbbbbbb
ccccccccccccccc
ddddddddd
eeeeeeeeeeee
fff
gggggggggggggg
hhhhhhhhhhhhhhhhhhhh
вместо
aaaaaaaaaaaabbbbbbbbbbcccccccccccccccdddddddddeeeeeeeeeeee
fffgggggggggggggghhhhhhhhhhhhhhhhhhhh

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

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

tailgunner ★★★★★
()

важно заранее(априорно) о коде знать - какое наибольшое число лексем в одной строке помещается в этом данном коде.

если имена длинные - то это отдельный разговор.

80 символов достаточно для 7-9 имён и 4-5 синтаксических элементов.

т.е если кто-либо впихнул в одну строку более 7+-2 лексемы - тот по факту обфусцитировал код.

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

«Не более одного уровня отступа на функцию.»

E ★★★
()

ну будет требование что-то вроде цикломатическая сложность не больше 5.

80 символов заставляет разбивать программу на достаточно мелкие кусочки.

dimon555 ★★★★★
()

разбивать на три строки

$self->named_function->
   {named_key_from_function_result}->
       format($first_named_param, $second_named_param)

В чём проблема? Стандартная практика на жабах и плюсах.

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

А 50 действий - это слишком большая функция?

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

А в объект они загоняются волшебным образом, там нет строк, нет их длин...

У тебя уже есть место, где всё это загоняешь в трешняк из $mail_~, вместо этого когда будет иницилизация словаря. Кол-во строк тут остаётся примерно таким же. Не нужно так откровенно тупить.

mashina ★★★★★
()

Ах да, по теме: у меня в редакторе три границы на 80, 100, и 120 символов. [0, 80) — желательно, [80, 100) — допустимо, [100, 120) — допустимо при разумном обосновании, 120+ — абсолютно never ever.

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

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

Но проблемы эти не от растягивания на 8 строк, а от неумения нормально структуировать код.

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

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

1) Длинные строки разбиваются, чтоб их было легче читать.
2) Строка в 80 символов ни разу не длинная практически на любом доступном ныне устройстве для программирования и языке программирования. Более того, если исходить из концепции «тем лучше, чем больше на экране символов кода по отношению к свободному пространству», то 80 символов — очень неэффективное ограничение для большинства современных языков программирования.
3) Разбивать строку в 130 символов на пять строк ради «удобства» будет только очень ушибленный человек.

redgremlin ★★★★★
()

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

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

видимый размер ф-ии измеряется в строчках, а не действиях

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

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

Xellos ★★★★★
() автор топика

Подумываю переходить на 120.

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

Если блок больше ~20-40 строчек, надо менять или язык, или программиста

И тут-то у Линуса Торвальдса очко-то и сжалось...

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

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

Если исходить из этой метрики, мы все должны забыть об отступах и вообще пользоваться минифаерами.

Разбивать строку в 130 символов на пять строк ради «удобства» будет только очень ушибленный человек.

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

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

Если блок больше ~20-40 строчек, надо менять или язык, или программиста

И тут-то у Линуса Торвальдса очко-то и сжалось...

У Линуса Тролльвардса это в CodingStyle записано (и 80 колонок - тоже).

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

Если исходить из этой метрики, мы все должны забыть об отступах и вообще пользоваться минифаерами

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

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

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

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