Комментарии 53
Стиль «отсутствие стиля» not detected :)
В этом вся фишка. Каждый хотя бы в подсознании склоняется к чему-то одному, и задача опроса — отсечь среднее и выяснить правду-матку.
А третий вариант разве не подходит? )
Нет :) Есть именно отсутствие стиля, т.е. «каша»: из операторов, символов, скачущие строки, разнобой выравнивания, лишние пробелы и т.п.
Мой предыдущий начальник смотрел даже на количество пустых строк между объявлением методов, чтобы оно было одинаково для всего файла и всех файлов. Мотивация следующая: «как можно доверить что-то серьезное человеку, который даже не может вставить одинаковое количество переводов строки?»
:)
Мой предыдущий начальник смотрел даже на количество пустых строк между объявлением методов, чтобы оно было одинаково для всего файла и всех файлов. Мотивация следующая: «как можно доверить что-то серьезное человеку, который даже не может вставить одинаковое количество переводов строки?»
:)
Куда приятнее:
<?php
echo 'Hello';
?>
Нежели:
<?php
echo 'Hello';
?>
Нежели:
<?= 'Hello' ?>
P.S. Парсер съел табуляцию…
Вас зарезал злобный хабрапарсер :)
Вы извините, но в этом случае еще приятнее просто
Hello
(defined($style{compact}) && defined($style{smart})) || warn «Bad style»;
Для control flow рекомендуется использовать or и and вместо || и && :).
defined $style{compact} and defined $style{smart} or warn 'Bad style';
Нет лишних скобок, двойные кавычки заменены на одинарные, поскольку строка не содержит переменных.
Нет лишних скобок, двойные кавычки заменены на одинарные, поскольку строка не содержит переменных.
Вот тут есть спорные моменты. Некий Ларри Уолл советует расставлять скобки «побольше». Хотя без скобок мне тоже нравится больше :) А про and/or, имхо, в данном случае дело вкуса. У && || приоритет выше, но в данном случае это не играет роли. Кому как нравится :)
А можно ссылочку? Вот документ от меня по теме:
perldoc.perl.org/perlstyle.html
А конкретно: «Omit redundant punctuation as long as clarity doesn't suffer.»
perldoc.perl.org/perlstyle.html
А конкретно: «Omit redundant punctuation as long as clarity doesn't suffer.»
Ни то и ни другое. Надо что-то среднее. С одной стороны, сокращения очевидных операций и алгоритмов еще никому не повредили, но и с фанатизмом подходить к этому вопросу не стоит.
Если первый вариант, это что-то типа такого:
$string = trim(str_replace($pattern, $replacement, preg_replace($preg_pattern, $preg_replacement, $string)));
То я — за второй.
$string = trim(str_replace($pattern, $replacement, preg_replace($preg_pattern, $preg_replacement, $string)));
То я — за второй.
Да, это укладывается в рамки первого варианта.
Если нормально отформатировать имхо вполне читаемо, но перегибать с такими вложениями не стоит.
$string = trim( str_replace( $pattern, $replacement, preg_replace( $preg_pattern, $preg_replacement, $string ) ) );
А вот теперь представьте, что вам в процессе отладки захотелось посмотреть, что вернул preg_replace…
Если бы это был С/С++ и MS VS, то step in preg_replace, step out и в окошке Auto вы бы увидели, что вернула функция, из которой вы вышли. Отладчики PHP так не умеют?
да без проблем:
…
$debug_value = preg_replace()
…
echo $debug_value;
…
$debug_value = preg_replace()
…
echo $debug_value;
по настроению
Когда увеличение размера кода мало влияет на производительность программы — описываю всё подробно. Иногда приходится перечитывать собственные исходники через пару лет, и тут лаконичность пониманию не способствует. Внедрение пары временных переменных в таком случае — приемлимо, я считаю.
А вот когда приходилось писать на ассемблере (это было давно и неправда), тут никаких лишних строчек не допускалось; для асма работает правило «чем короче, тем понятней».
А вот когда приходилось писать на ассемблере (это было давно и неправда), тут никаких лишних строчек не допускалось; для асма работает правило «чем короче, тем понятней».
Ключевое слово — чтобы все было понятно и не вызывало вопросов ни у тебя, ни у членов команды.
«Лаконичный» — это когда одну строку всё через точку с запятой? :-)
Хорошо красиво написаный код удобно поддерживать. Особенно если его написал не ты. Особенно если пять лет назад. Особенно если документации нет, как нет и человека, который это писал, а это все надо срочно править.
А где же вариант «где мало строк, но каждая из них несет полезную нагрузку и выполняет оптимум (а то и минимум) возможных операций»? Ну или «код, который выполняет ровно то, что нужно»
Который соответствует code convention. Я программы не для себя пишу, а для людей, и единый стандарт оформления сильно облегчает нам всем жизнь.
Люблю все красиво оформить и подробно расписать, причем фанатично предан своей позиции, я считаю что некрасивый, неудобный для прочтения код, по определению не может хорошо работать, так как шанс допустить в нем ошибку на порядок выше. Да и вообще должно-же быть в нашей профессии что-то красивое… :P
К слову, «скрупулёзный». Это — очень распространённая ошибка.
За него и проголосовал.
За него и проголосовал.
Как тут уже сказали, принятые в проекте правила стиля прежде всего.
Краткость — не самоцель. Но красивый и понятный — не значит раздутый.
Я стараюсь минимизировать плотность побочных эффектов. Если цепочка из нескольких вызовов описывает понятный data flow, значит место ей в одном операторе. Эмпирический критерий: у промежуточного значения должно быть понятное и быстро придумываемое название, чтобы его имело смысл вынести в переменную.
В языках, где с выражением подобных абстракций туго, придерживаюсь verbose стиля.
В общем, стиль должен быть адекватен возможностям языка. Возможностям команды тоже, но это уже другой вопрос.
Краткость — не самоцель. Но красивый и понятный — не значит раздутый.
Я стараюсь минимизировать плотность побочных эффектов. Если цепочка из нескольких вызовов описывает понятный data flow, значит место ей в одном операторе. Эмпирический критерий: у промежуточного значения должно быть понятное и быстро придумываемое название, чтобы его имело смысл вынести в переменную.
В языках, где с выражением подобных абстракций туго, придерживаюсь verbose стиля.
В общем, стиль должен быть адекватен возможностям языка. Возможностям команды тоже, но это уже другой вопрос.
Как-то привык уже оформлять код относительно красиво )
Вместо табуляции использую два пробела. Не знаю, хорошо ли это, но читается достаточно удобно.
Вместо табуляции использую два пробела. Не знаю, хорошо ли это, но читается достаточно удобно.
А я наоборот отказался от двойного пробела в пользу табуляции, так как табуляция — это все-таки специально предназначенный для этого символ, который к тому-же в большинстве современных редакторов кода можно настроить самостоятельно, например на те-же два пробела, это способствует тому чтобы у другого программиста, открывшего этот код, он отображался чуточку ближе к его собственным предпочтениям.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Какой стиль написания/оформления кода вам ближе?