LINUX.ORG.RU

[Быть или не быть?] Как вы считаете? Сокращать, или не сокращать?


0

1

Все не могу решить в своей голове вопрос, вот спрашиваю ваше мнение
Расскажу суть на примере Bash скриптов. Ну вот «стандартное» условие

if [[ что-то ]];
then делать то-то then...
else делать то-то else...
fi
Вопрос: Лучше все так и оставить, или можно заменить это все на вот такую чудо-конструкцию:
[[ что-то ]] && {
 делать то-то then...
} || {
 делать то-то else...
};
Выглядит более брутально, но не всегда можно с первого раза понять, что это...
Для тех кто не понял что это, я это называю(для себя) альтернативной(короткой) вариацией if. баш обрабатывает это как логическое выражение что-то и делать то-то then... или делать то-то else.... Такая конструкция возможна благодаря сокращенному выполнению логических выражений(зачем выполнять следующее, ведь в «или» если что-то дает true, то оно и будет true), которое присутствует если не во всех, то почти во всех языках
Я думаю достаточно объяснений того, что у меня на уме(если нет, могу добавить).
Ну так быть или не быть сокращать или не сокращать?
P.S. если это было где-то хорошо разжевано, то дайте ссылку. И прошу не кидаться какашками

★★★★

нифига второе не короче первого

только в случае одной команды после условия, те
if zhopa; do ...; done
vs
zhopa && ...

anonymous
()

Почему квадратные скобки двойные? О_О И да, пиши по-стандартному. В записи с помощью логических условий легко запутаться

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

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

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

не всегда можно с первого раза понять, что это...

нубу? нубу поможет только ман и практика

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

и точка с запятой после

if [ что-то ]; 
не нужна, если then пишешь на следующей строчке

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

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

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

Почему квадратные скобки двойные? О_О

Башу без разницы. Но с двойными скобками я смогу сделать так: [[ что-то 1 || что-то 2 ]], а с одинарными как мне объяснили - нет

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

Я нубов не имел ввиду.

нубу поможет только ман и практика

Подтверждаю, т.к. сам недалеко от нуба, но исправляюсь потихоньку :)

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

Башу без разницы. Но с двойными скобками я смогу сделать так: [[ что-то 1 || что-то 2 ]], а с одинарными как мне объяснили - нет

Эва как. А я вот и не знал

HerrWeigel ★★★★
()

Сокращай, однозначно.

Обфускация скриптов повышает грамотность читающих.

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

А вот это да, минус. Спасибо что подметил

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

Обфускация скриптов повышает грамотность читающих.

1024% - сам когда-то нашел такой прикол как

[[ что-то ]] && команда;
после частенько использовал его уже у себя в скриптах, а потом додумался добавить лог. или(||)...

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

Значит будем использовать, но осторожно(доверяй, но проверяй).

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

с одинарными пришлось бы делать так: [ что-то 1 ] || [ что-то 2 ]

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

Толстячок, я имел ввиду «делать то-то тогда..» :3

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

И ах да, правильней это

[nexfwall@LenovoS10-20027 bashlib]$ (( 1 == 1 )) && uname;
Linux
[[ что-то 1 == что-то 2 ]] в баше, это сравнивание строк, а не целых чисел.

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

Вот у меня почти такие же проблемы. Порой по 20 минут выбираю имя для функции, пока оно понравится

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

Порой по 20 минут выбираю имя для функции

по-моему, так и должно быть.

эволюция языков программирования выглядит примерно так:

много думать — много писать (перфокарты) мало думать — много писать (кобол) мало думать — мало писать (питон) много думать — мало писать (к чему, я думаю, надо стремиться)

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

наверное, если бы я был ынтырпрайзным жабакодером, я бы целыми днями рисовал uml-диаграммы.

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