Re[6]: {
От: T4r4sB Россия  
Дата: 19.09.16 08:24
Оценка:
Здравствуйте, chaotic-kotik, Вы писали:

CK>Почему?


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


Согласен, пустые строки должны быть средством выразительности.
Но я вот задумался, а что если реально сделать так?
status = api_call_foo(...)
if (!status) 
{   panic("foo failed")
}
do_smthng_with_foo()
                                //< пустая строка отделяет два блока кода
status = api_call_bar(...)
if (!status) 
{   panic("bar failed")
}
Нет такой подлости и мерзости, на которую бы не пошёл gcc ради бессмысленных 5% скорости в никому не нужном синтетическом тесте
Re[5]: {
От: alpha21264 СССР  
Дата: 19.09.16 09:22
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>Здравствуйте, alpha21264, Вы писали:


A>>Я знаю. Но программы гораздо чаще читаются, чем пишутся.


Pzz>Если написать printf на отдельной строчке, программу не станет сложнее читать. Но зато ее станет проще писать.


Станет сложнее читать. Лишняя строчка потратится. А это значит, что в экран влезет меньше текста.

Течёт вода Кубань-реки куда велят большевики.
Re[7]: {
От: chaotic-kotik  
Дата: 19.09.16 09:22
Оценка: 2 (1) +3
Здравствуйте, T4r4sB, Вы писали:


TB>Согласен, пустые строки должны быть средством выразительности.

TB>Но я вот задумался, а что если реально сделать так?
TB>
TB>status = api_call_foo(...)
TB>if (!status) 
TB>{   panic("foo failed")
TB>}
TB>do_smthng_with_foo()
TB>                                //< пустая строка отделяет два блока кода
TB>status = api_call_bar(...)
TB>if (!status) 
TB>{   panic("bar failed")
TB>}


Во первых это не красиво. Блоки с одной сточкой внутри будут отличаться от блоков большего размера. В однострочных {} будут сливаться, в больших блоках будет разрыв, КМК, это создает визуальный мусор

if (!status)
{    panic("fail");
}


vs

if (!status)
{    log(status, "error message");
     panic("fail");
}


К тому же, легко допустить следующую ошибку, допустим изначально было:

if (!status)
{    panic("fail");
     log(status, "error message");
}


мы поменяли строчки местами, но забыли про {

if (!status)
     log(status, "error message");
{    panic("fail");
}


код скомпилировался, но теперь panic вызвыается всегда
Re[6]: {
От: Evgeny.Panasyuk Россия  
Дата: 19.09.16 10:53
Оценка:
Здравствуйте, chaotic-kotik, Вы писали:

P>>
P>>if (err != 0) 
P>>    throw std::runtime_error("bloody hell!");
P>>

CK>напрямую запрещено стилем кодирования на работе (считаю что хорошая идея)

Это уже похоже на yoda conditionals — да, немного повышает безопасность (будущих изменений), но при этом несоизмеримо бьёт по другим параметрам (лаконичность).
Yoda conditionals используете?
Re[6]: {
От: Evgeny.Panasyuk Россия  
Дата: 19.09.16 10:57
Оценка:
Здравствуйте, chaotic-kotik, Вы писали:

CK>
CK>                                //< теряется на фоне кучи строк содержащих только { или }
CK>


Не теряется, тем более если включено отображение непечатаемых символов.
И при твоём подходе несколько строчек с } не отделённые пустыми строчками всё равном могут быть (несколько уровней в глубину).
Re: {
От: ksandro Мухосранск  
Дата: 19.09.16 11:55
Оценка: 3 (1) +9
Здравствуйте, Varavva, Вы писали:

V>Кто как ставит { для цикла for?

V>В смысле в этой же строке или отдельно на следующей?

V>Мне ужасно неудобно и плохо читаемо, когда "{" на той же строчке. Какие плюсы такого написания? Текст программы сокращается? Ну смешно же это.


В студенчиские годы ставил { на той же строке, и был уверен что только так удобно и правильно. Пришел на первую работу,
а там у них на следующей строке ставят и вообще есть внутренний стандарт, который обязывает ставить на следующей строке.
Не представляете как меня это раздражало, но где-то через месяц вдруг привык и стало казаться что ставить "{" надо именно на следующей строке и тлько так удобно и правильно.
Потом сменил я работу, а у них по внутреннему стандарту положено на той же строке ставить.. Как меня это раздражало! Но через две недели привык.
Перешел на другой проект, а там опять на следующе строке ее ставят, ужас!!!

После нескольких таких итераций стало пофигу, к любому стилю привыкаешь где-то за неделю.
Это же относится к вопросу, какого размера делать отступ, пробелы или табуляция, CamelCase или snake_case, и тд.

Главное, придерживаться одного стиля во всем проекте, для этого в начале проекта желательно договориться всей командой о стиле, который будет меньше всего раздражать комманду.
Если надо править уже существующий старый код, то стоит оставить тот стиль в котором он написан.
Re[4]: {
От: sin_cos Земля  
Дата: 19.09.16 12:38
Оценка:
Здравствуйте, Marty, Вы писали:

M>Синусоида или косинусоида?


не, он сам первый начал.
Re[3]: {
От: fin_81  
Дата: 19.09.16 15:55
Оценка: +1
Здравствуйте, kochetkov.vladimir, Вы писали:

KV>Пфф. Кого это остановит?


KV>
KV>for x in xrange(3): #{
...
KV>


СталинаОкаамы на вас нет. Нет человекафигурных скобок, нет проблемы.
Re[4]: {
От: qwertyuiop Российская Империя  
Дата: 19.09.16 19:03
Оценка: +1
Здравствуйте, утпутуук, Вы писали:

Q>>А зачем дополнительный пробел после скобки? Он же не ломает табуляцию.


У>В принципе, можно и 2+2, как ниже
Автор: netch80
Дата: 18.09.16
сказали.


Я вообще не понимаю, почему скобки должны быть не на уровне табуляций. Я могу понять такой способ
Автор: anonymouse2
Дата: 18.09.16
(хотя скобки при этом оказываются "висящими", или лучше такой
Автор: qwertyuiop
Дата: 18.09.16
. Но ставить скобки не на уровне табуляций — это просто извращение какое-то.
Я отвечаю за свои слова, а не за то как вы их интерпретируете!
Re[4]: {
От: qwertyuiop Российская Империя  
Дата: 19.09.16 19:11
Оценка: +1
Здравствуйте, chaotic-kotik, Вы писали:

CK>>>
CK>>>if (err != 0)
CK>>>{
CK>>>    throw std::runtime_error("bloody hell!");
CK>>>}
CK>>>


CK>лишняя строка делает его лучше?


Лучше его делает не строка, а четкое обозначение тела программы, расположенного между скобками. Благодаря тому, что закрывающая скобка расположена точно под открывающей.
Я отвечаю за свои слова, а не за то как вы их интерпретируете!
Re[6]: {
От: AlexRK  
Дата: 19.09.16 21:39
Оценка:
Здравствуйте, chaotic-kotik, Вы писали:

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


CK>
CK>status = api_call_foo(...)
CK>if (!status) {
CK>    panic("foo failed")
CK>}                                                  //< а эта пустая строка что от чего отделяет?
CK>do_smthng_with_foo()
CK>                                //< пустая строка отделяет два блока кода
CK>status = api_call_bar(...)
CK>if (!status) {
CK>    panic("bar failed")
CK>}                                                  //< а эта?
CK>
Re[2]: {
От: ononim  
Дата: 20.09.16 08:35
Оценка:
У>Отдельно
У>[ccode]
У>for(unsigned i=0; i!=size; ++i)
У> {
У> if (data[i]>tres)
У> {
так вот кто писал GLIB..
Как много веселых ребят, и все делают велосипед...
Re: {
От: vdimas Россия  
Дата: 20.09.16 08:44
Оценка:
Здравствуйте, Varavva, Вы писали:

V>Кто как ставит { для цикла for?


Для простых многострочных конструкций оставляю на той же строке.
while(pred(x)) {
  line1();
  line2();
}


Для слишком многострочных — переношу:
while(pred(x)) 
{
  line1();
  line2();
  ...
  line25();
}



Если есть вложенные конструкции, тоже переношу на новую строку:
while(pred1(x)) 
{
  for(;pred2(y);) {
    line1();
    line2();
  }
}


У простых структур (без конструкторов) тоже оставляю скобку на той же строке.


V>В смысле в этой же строке или отдельно на следующей?


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


V>Какие плюсы такого написания? Текст программы сокращается? Ну смешно же это.


Это ты не пробовал читать исходники программ, распечатанные на "бесконечной" ленте матричного принтера.
Вот это было действительно удобно.
Тут никакая экономия строк не требовалась.

А 2-3 десятка строк на экране — это заведомо нечитабельно вовсе.
Т.е., эти все трюки можно списать на попытки разместить перед глазами больше осмысленных строк текста.
Re: {
От: neFormal Россия  
Дата: 20.09.16 10:30
Оценка: +1 -1 :)
Здравствуйте, Varavva, Вы писали:

V>Мне ужасно неудобно и плохо читаемо, когда { на той же строчке. Какие плюсы такого написания? Текст программы сокращается? Ну смешно же это.


скобцам не понять.
меня напрягает скроллить код изза перенесённых скобок. уж лучше всё видеть на одном экране, а не ползать.
также это минимизация визуального мусора, потому что скобки кодеру не нужны, они нужны компилятору.
...coding for chaos...
Re[2]: {
От: Varavva  
Дата: 20.09.16 10:34
Оценка:
Здравствуйте, neFormal, Вы писали:

F>скобцам не понять.

F>меня напрягает скроллить код изза перенесённых скобок. уж лучше всё видеть на одном экране, а не ползать.
F>также это минимизация визуального мусора, потому что скобки кодеру не нужны, они нужны компилятору.

Фигово код написан, если для понимания листать надо. Понимание, что делает функция приходит пошагово и блочно. Вот этот цикл отделяет то от этого, вот это условие — когда то-то. Невозможно обхватить разумом и понять целую страницу напичканную вызовами других функций.
Re[3]: {
От: neFormal Россия  
Дата: 20.09.16 11:39
Оценка:
Здравствуйте, Varavva, Вы писали:

V>Фигово код написан, если для понимания листать надо.


да, скобки не нужны. только место отъедают.

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


я код читаю наискосок. и всё понятно.
потому что хороший код можно так прочитать, а вот в плохой приходится вчитываться.
...coding for chaos...
Re[6]: {
От: rumia Россия  
Дата: 20.09.16 12:07
Оценка: +1 -1
Здравствуйте, chaotic-kotik, Вы писали:

CK>
CK>status = api_call_foo(...)
CK>if (!status) 
CK>{
CK>    panic("foo failed")
CK>}
CK>do_smthng_with_foo()
CK>


А вот в чём логика ставить пробел между if и '(', но не ставить между функцией и '('?
Вот я понимаю тех кто ставит и там и там, или не ставит нигде. :/
Re[2]: {
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 20.09.16 13:22
Оценка:
Здравствуйте, neFormal, Вы писали:

V>>Мне ужасно неудобно и плохо читаемо, когда { на той же строчке. Какие плюсы такого написания? Текст программы сокращается? Ну смешно же это.


F>скобцам не понять.

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

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

F>также это минимизация визуального мусора, потому что скобки кодеру не нужны, они нужны компилятору.


Это к чему?
The God is real, unless declared integer.
Re[3]: {
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 20.09.16 14:24
Оценка:
Здравствуйте, sin_cos, Вы писали:

_>а я так:


_>
_>  for( int i=0 ; i<10 ; i++ )
_>    {  
_>  printf("сам дурак!\n"); // <-- скобка и первый оператор на разных строчках, оператор без оступа
_>    }

_>


Любишь злоупотреблять?
[КУ] оккупировала армия.
Re[3]: {
От: neFormal Россия  
Дата: 20.09.16 14:36
Оценка:
Здравствуйте, netch80, Вы писали:

N>Скроллить нужно только в кривых редакторах, которые вместо заворота строки показывают её обрезанной.

N>Может, они хороши для показа табличек в тексте, но не для кода.

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

F>>также это минимизация визуального мусора, потому что скобки кодеру не нужны, они нужны компилятору.

N>Это к чему?

к тому, что скобки не нужны, поэтому прятать их в египетском стиле — это легко, приятно, исправляет прикус и не сушит попку твоего малыша.
...coding for chaos...
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.