LINUX.ORG.RU

Какой стиль написания кода используете?

 , ,


0

2

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

Например:

let «a=b+c» let «a = b + c»

Или используете некий комбинированный вариант (например, выражения в скобках без пробелов, а вне скобок с пробелами)? Думаю что совсем без пробелов- плохо для восприятия, но может ошбаюсь?

Попутно вопрос, почему в операторе let не обязательно (но можно) использовать $ для взятия значения переменной, когда в других местах баша это необходимо? Честно говоря, напрягает такая двойственность и «не строгость» синтаксиса. Хочешь используй пробелы, хочешь не используй. Хочешь используй кавычки, хочешь нет. Хочешь используй $, хочешь нет... Чем продиктована такая «разгильдяйская» философия? По-моему это только мешает дисциплине.

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

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

Для этого и существует дисциплина и практики, поощряющие ее соблюдение. Использование автоформаттеров и линтеров, например.

Впердоливать какие-то драконовские ограничения в сам язык, невзирая на желания его пользователей — такое себе. Мне так думается.

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

А есть какая-то «классическая» рекомендация по пробелам и табам в программировании? Я табы только в циклах использую, в теле цикла, отодвигаю команды. А пробелы только в выражениях.

shkolnik_2021 ()

Какой стиль написания кода используете?

Танковая щель 1024×600 нетбука в качестве основного компьютера в течение 9 лет приучила к египетскому. Профессионально никогда не программировал. Сейчас для себя изредка тыкаю CommonLisp палочкой.

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

Если присваиваемое значение атомарно, пробелов не ставлю: a=$b. В вычис.

Попутно вопрос, почему в операторе let не обязательно (но можно) использовать $ для взятия значения переменной, когда в других местах баша это необходимо?

Потому что целевая аудитория bash – не программисты, а админы, которым нужно, чтобы любая наколеночная хрень отладилась и заработала как можно быстрее.

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

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

А как быть, например, с консольными редакторами (gedit, nano, vim)? Там таб - это таб? Или тоже не настоящий таб?

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

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

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

логика("") в реализации разбора - первые sh это просто присвоение rvalue имени lvalue поэтому все пробелы справа есть значимы - либо могут быть разделителями - как парсеровоплощатель произволит.

а разбор выражений уже был следующей нашлёпкой - если интересно у Боурна об этом подробней есть

qulinxao3 ()
Ответ на: комментарий от shkolnik_2021

Один редактор отображает Tab как 4 символа, другой как 8, в третьем программист себе 3 настроил. В итоге у каждого твой текст программы будет выглядеть по-разному. Это не очень хорошо.

Legioner ★★★★★ ()

Скажи, тебя никто ничему никогда не научит?

Тема: Какой стиль написания кода используете?

Тема: Модератор продолжает вести себя неадекватно

Тема: О синтаксисе в оригинальных руководствах… Сплошная БОЛЬ!!!

https://www.linux.org.ru/people/shkolnik_2019/profile

К сожалению, пользователь shkolnik_2019 не может более посещать LOR,

начиная с 22.01.2020 21:31:58.

Причина тому проста: 4.3, намеренно постит тупняк.

Мы сожалеем, правда.

Тебе любезно обозначили чего именно НЕ надо делать, а именно НЕ надо постить тупняк. Но тебя не остановить, да?

anonymous ()

Если ты тупой в край школьник, а исходя из ника и созданных тобою тем всё именно так, то обратись к стандартам, например: https://www.python.org/dev/peps/pep-0008/

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

Учти, где-то рыгание за столом хорошо, но где-то за такое дают «наряд вне очереди». Следуй локальному поведению!

P. S. Прекрати постить тупняк. Перед каждым своим вопросом гугли.

anonymous ()
Ответ на: комментарий от no-such-file

Попахивает какой-то школятиной. Жаргон обычно остроумный, а не вот этот вот тупняк. И да, ни разу не слышал раньше.

Да это, очевидно, тупняк и провокация. Удалить по 4.2, а то ещё приживётся.

anonymous ()
Ответ на: комментарий от no-such-file

По мне наоборот похоже на терминологию каких-то людей, для которых компьютер это ЭВМ. И книги по программированию читавших только на русском, в середине 90-х.

anonymous ()

Хороший код - простой код и чем проще тем лучше.

А вот let "a=b+c" или let "a = b + c" - мне импонирует второй вариант ибо читать проще.

Но есть загвоздка:

var = 1
# Result
var: command not found

или

var= 1
# Result
1: command not found

Именно потому если мне нужна арифметика в скрипте я юзаю:

(( var = 2 + 2 ))

Для конкатенации переменн. можно использовать VAR="${VAR1}${VAR2}"

Ну и само собой кавычки.
https://www.opennet.ru/docs/RUS/bash_scripting_guide/c1833.html

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

терминологию каких-то людей, для которых компьютер это ЭВМ

Не исключаю, что это вбросил какой-то препод-динозавр, который пытался так разнообразить лекцию.

no-such-file ★★★★★ ()
Ответ на: комментарий от no-such-file

Попахивает какой-то школятиной.

Школятиной попахивает «мускул», «M$», «некрософт», «лалка» и слишком широко употребленное «троллить».

Жаргон обычно остроумный, а не вот этот вот тупняк.

Я считаю такое сравнение остроумным.

И да, ни разу не слышал раньше.

Держите нас в курсе.

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

Школятиной попахивает

Это глупо конечно, но хотя бы понятно, что люди рофлят. А эти «египетские скобки» это какая-то скука смертная, анекдот, смысл которого приходится объяснять.

Держите нас в курсе

Тебя и твоего кота? Разумеется, приходи ещё, поболтаем.

no-such-file ★★★★★ ()

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

При этом, в голанге используются табы, а в расте пробелы. Еще в голанге в стандартном линтере, который так же везде используется, захардкожен список аббревиатур, которые ты обязан писать капсом, причем в остальных местах используется камелкейс. Т.е. вместо функции getHtmlToXmlId ты должен написать что-то вроде getHTMLToXMLID ( https://github.com/golang/lint/blob/414d861bb4acf565ff8cb05f9906a2283b7dc75a/lint.go#L770 )

Сразу вспоминается js XMLHttpRequest, в котором фиг запомнишь, какие буквы пишутся капсом и почему.

Но тирания равно лучше, чем разносортица в коде.

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

вашет обзывание епипетским стиля K&R пришло из где-то 82-84(край 85) из калифорнии когда была очередная волна кинокомедий подростковых и среди них несколько вокруг оживших принцесс из мумий – через это попало в несколько журнальных статей и книжек типо «PL за X Y»

недомем так и не взлетел и таким недомемом всё время остаётся.

qulinxao3 ()
Ответ на: комментарий от shkolnik_2021

Мне тоже так нравится, а не когда все символы смешиваются в один конвейер, особенно если выражение большое.

Хз, ты ли это (2019й который), но вот это отвечает на вопрос «Как вы понимаете писанину в манах». Когда разделено на блоки, как во втором примере, читается гораздо легче.

Zhbert ★★★★★ ()