Re[3]: Всеобщий заговор в отношении скобок...
От: telek1024  
Дата: 27.11.10 18:05
Оценка: -2
Здравствуйте, Sinix, Вы писали:

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


S>Чтоб понятней было, что имею в виду:

S>
  Скрытый текст
S>
S>    private static PathToken ParseToken(PathTokenInfo parsingToken)
S>    {
S>      PathToken result;

S>      if (IsCurrentDirectoryToken(parsingToken))
S>      {
S>        result = CurrentDirectoryToken.Instance;
S>      }
S>      else if (IsParentDirectoryToken(parsingToken))
S>      {
S>        result = ParentDirectoryToken.Instance;
S>      }
S>      else
S>      {
S>        string tokenName = GetNormalizedTokenName(parsingToken);

S>        if (parsingToken.SeparatorCount == 0)
S>        {
S>          result = new FileToken(tokenName);
S>        }
S>        else
S>        {
S>          result = new DirectoryToken(tokenName);
S>        }
S>      }

S>      return result;
S>    }
S>



Ну вот у вас каждая строка, которая хоть что-то делает отделена от другой минимум одной строкой, которая ничего не делает. Такой код занимает больше места и приходится дольше скролить.
Re[4]: Всеобщий заговор в отношении скобок...
От: okman Беларусь https://searchinform.ru/
Дата: 27.11.10 18:09
Оценка:
Здравствуйте, Antikrot, Вы писали:

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


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

A>объясни сдвиг скобки:
A>
A>    if (state->flags & 0x0400)
A>        {
A>


A>PS. а раз мы всё же в КСВ, я бы за такой сдвиг расстреливал


Сдвиг скобки сейчас объясню (по причине того, что мы в КСВ ).
Хотя ее положение непринципиально, можно ее и без отступа писать.
Скобка — это начало вложенного блока. То есть, она все же имеет большее
отношение к этому блоку, чем ко внешнему, поэтому и должна быть с ним на одном уровне.
Но абстрактно. Лично я и так и так писал, в разное время.

if (a == b)
    {
    ...
    ...
    ...
    }

else
    {
    ...
    ...
    ...
    }


Ну как, дико, да ?
Re[3]: Всеобщий заговор в отношении скобок...
От: okman Беларусь https://searchinform.ru/
Дата: 27.11.10 18:10
Оценка:
Здравствуйте, Sinix, Вы писали:

S>Чтоб понятней было, что имею в виду:

S>
  Скрытый текст
S>
S>    private static PathToken ParseToken(PathTokenInfo parsingToken)
S>    {
S>      PathToken result;

S>      if (IsCurrentDirectoryToken(parsingToken))
S>      {
S>        result = CurrentDirectoryToken.Instance;
S>      }
S>      else if (IsParentDirectoryToken(parsingToken))
S>      {
S>        result = ParentDirectoryToken.Instance;
S>      }
S>      else
S>      {
S>        string tokenName = GetNormalizedTokenName(parsingToken);

S>        if (parsingToken.SeparatorCount == 0)
S>        {
S>          result = new FileToken(tokenName);
S>        }
S>        else
S>        {
S>          result = new DirectoryToken(tokenName);
S>        }
S>      }

S>      return result;
S>    }
S>



Хороший код. Вот я к такому и стремлюсь.
Re[2]: Всеобщий заговор в отношении скобок...
От: sc Россия  
Дата: 27.11.10 18:16
Оценка: 1 (1) +1
Здравствуйте, telek1024, Вы писали:
...
T>Лично я не люблю стиль вида
T>
T>if (a == b)
T>{
T>  ...
T>}
T>


T>Мне он кажется слишком разреженным. Получается принудительная пустая строка, а иногда это мешает.


А я наоборот предпочитаю. Не люблю, когда все поналепят в кучу, не поймешь, где начало, где конец блока, особенно когда их несколько.
А еще комментарии "разрежают" код Но ведь и мониторы то давно уже не 80 на 25 строчек
Re[4]: Всеобщий заговор в отношении скобок...
От: Sinix  
Дата: 27.11.10 18:18
Оценка: 1 (1)
Здравствуйте, telek1024, Вы писали:

T>Ну вот у вас каждая строка, которая хоть что-то делает отделена от другой минимум одной строкой, которая ничего не делает. Такой код занимает больше места и приходится дольше скролить.


Мне редко приходится скроллить: методы небольшие, переход — ctrl-click. Кода много, куда важнее быстро понять что он делает (особенно, если долго с ним не работал).

Я пару раз выше давал дисклеймеры — мы делаем так, как удобно нам. Если вам так неудобно — лучше делитесь своим, чем доказывайте как же я неправ
Re: Всеобщий заговор в отношении скобок...
От: Zontin  
Дата: 27.11.10 18:24
Оценка: 1 (1) +3
Здравствуйте, okman, Вы писали:

O>... При виде закрывающей фигурной скобки хочется сразу отыскать ее

O>"старшую сестру", чтобы мысленно обозначить выделенный ими кусок кода, а для этого приходится бегать
O>глазами и выискивать конструкции типа if и while...

А я не ищу "старшую сестру". Да и на "младшую" обычно внимания не обращаю. Хватает отступов.
Re[5]: Всеобщий заговор в отношении скобок...
От: Antikrot  
Дата: 27.11.10 18:25
Оценка: 1 (1) +5
Здравствуйте, okman, Вы писали:

O>Сдвиг скобки сейчас объясню (по причине того, что мы в КСВ ).

O>Хотя ее положение непринципиально, можно ее и без отступа писать.
вообще-то принципиально — выделить границы блока. в твоём случае границы блока в виде скобок сливаются с самим блоком, и границей блока зрительно кажутся части внешнего блока. и нафиг в таком случае тратить две строки на скобки, непонятно.
Re[6]: Всеобщий заговор в отношении скобок...
От: okman Беларусь https://searchinform.ru/
Дата: 27.11.10 18:39
Оценка:
Здравствуйте, Antikrot, Вы писали:

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


Если честно — я не понял про границы. Можно "на пальцах" ?
Re[7]: Всеобщий заговор в отношении скобок...
От: sc Россия  
Дата: 27.11.10 18:56
Оценка: 1 (1) +6
Здравствуйте, okman, Вы писали:

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


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


O>Если честно — я не понял про границы. Можно "на пальцах" ?


Если скобки с отступом, вот так:
if(условие)
    {
    какой-то код
    }

то скобки не выполняют ф-цию визульного выделения блока (или границ блока). Их можно убрать, как сделали в Питоне, например.
Re[3]: Всеобщий заговор в отношении скобок...
От: hattab  
Дата: 27.11.10 19:29
Оценка:
Здравствуйте, CreatorCray, Вы писали:

CC> Ну, я к примеру паскаль освоил раньше чем С, и помню с каким облегчением избавился от опостылевших begin end.


У меня все было ровно наоборот И из-за этих скобок (и, как правильно заметил ТС, разного стиля их использования) я жутко не люблю сишные исходники читать.
avalon 1.0rc3 rev 368, zlib 1.2.3
Re: Всеобщий заговор в отношении скобок...
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 27.11.10 19:34
Оценка: :)))
Здравствуйте, okman, Вы писали:

O>
O>if (a == b) {
O>  ... }
O>


Это не правильно !

Правильно будет так

a == b && (printf(someting),update(someting),count++);


O>Ну неужели я не прав, и первый вариант читается лучше ?

O>Или это какой-то всеобщий заговор, или code convention, которому следуют, не задумываясь ?

Оба варианта одинаково плохи, форматированием проблему не решить.
Re: Всеобщий заговор в отношении скобок...
От: Pzz Россия https://github.com/alexpevzner
Дата: 27.11.10 20:01
Оценка: 1 (1)
Здравствуйте, okman, Вы писали:

O>Ужасно ! Тут же черт ногу сломит !


Это стандартный K&R-стиль. В таком стиле написаны тонны говнокода. Нравится он вам или нет, но в таком стиле надо уметь читать. Хотя замечу, сам я предпочитаю фигурные скобки на отдельной строке, и чтобы тело if'а и цикла тоже было на отдельной строке, даже если оно тривиальное (в случае тривиального без отдельных скобок, впрочем).

O>Или это какой-то всеобщий заговор, или code convention, которому следуют, не задумываясь ?


Всеобщий заговор.
Re[8]: Всеобщий заговор в отношении скобок...
От: okman Беларусь https://searchinform.ru/
Дата: 27.11.10 20:28
Оценка:
Здравствуйте, sc, Вы писали:

sc>Если скобки с отступом, вот так:

sc>
sc>if(условие)
sc>    {
sc>    какой-то код
sc>    }
sc>

sc>то скобки не выполняют ф-цию визульного выделения блока (или границ блока). Их можно убрать, как сделали в Питоне, например.

Все равно непонятно. Как это не выполняют ? Так, что ли, лучше:

if (условие 1)    {
    какой-то код
        } else if (условие 2) { еще код
               } else
    { ну и еще немножко кода
}

[/ccode]
Re[9]: Всеобщий заговор в отношении скобок...
От: sc Россия  
Дата: 27.11.10 20:48
Оценка: 1 (1) +5
Здравствуйте, okman, Вы писали:

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


sc>>Если скобки с отступом, вот так:

sc>>
sc>>if(условие)
sc>>    {
sc>>    какой-то код
sc>>    }
sc>>

sc>>то скобки не выполняют ф-цию визульного выделения блока (или границ блока). Их можно убрать, как сделали в Питоне, например.

O>Все равно непонятно. Как это не выполняют ? Так, что ли, лучше:


O>
O>if (условие 1)    {
O>    какой-то код
O>        } else if (условие 2) { еще код
O>               } else
O>    { ну и еще немножко кода
O>}
O>

O>[/ccode]

теперь я уже ничего не понял
вот исходный код, немного "причесанный"
if (условие 1)    
{
    какой-то код
} 
else if (условие 2) 
{ 
    еще код
} 
else    
{ 
    ну и еще немножко кода
}

здесь каждая пара скобок {} выделяет отдельный блок. если скобки сделать так:
if (условие 1)    
    {
    какой-то код
    } 
else if (условие 2) 
    { 
    еще код
    } 
else    
    { 
    ну и еще немножко кода
    }

то блок выделятеся уже не скобками {}, а отступами. Следовательно визуальную ф-цию выделения блока скобки не выполняют. Следовательно скобки можно убрать. Такой подход применили в Питоне.
Re[3]: Всеобщий заговор в отношении скобок...
От: telek1024  
Дата: 27.11.10 21:17
Оценка:
Здравствуйте, sc, Вы писали:

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

sc>...
T>>Лично я не люблю стиль вида
T>>
T>>if (a == b)
T>>{
T>>  ...
T>>}
T>>


T>>Мне он кажется слишком разреженным. Получается принудительная пустая строка, а иногда это мешает.


sc>А я наоборот предпочитаю. Не люблю, когда все поналепят в кучу, не поймешь, где начало, где конец блока,

Та же фигня была. Потом научился определять по отступам.

sc>А еще комментарии "разрежают" код Но ведь и мониторы то давно уже не 80 на 25 строчек

Сейчас популяризуются ноуты. Так что можно считать, что экраны "сузились".
Re: Всеобщий заговор в отношении скобок...
От: DOOM Россия  
Дата: 28.11.10 04:53
Оценка:
Здравствуйте, okman, Вы писали:

O>Приветствую всех !


Господи, ну когда уже все освоят элементарную утилиту indent и перестанут спорить где какую скобку ставить????
Re[2]: Всеобщий заговор в отношении скобок...
От: Игoрь Украина  
Дата: 28.11.10 11:24
Оценка: 1 (1) +3 -3
Здравствуйте, dilmah, Вы писали:

D>еще K&R использовали такой стиль

когда они его использовали, размеры мониторов и разрешение были совсем другими, а стиль говенный, независимо от того, кто его использовал. Нужен он только там, где есть необходимость экономить пространство, на сегодняшний день это только книги.
Re[3]: Всеобщий заговор в отношении скобок...
От: dilmah США  
Дата: 28.11.10 11:39
Оценка:
И>когда они его использовали, размеры мониторов и разрешение были совсем другими, а стиль говенный, независимо от того, кто его использовал. Нужен он только там, где есть необходимость экономить пространство, на сегодняшний день это только книги.

выше уже упомянули ноуты.

Скажем, сегодняшний google code style использует этот стиль и накладывает 80-символьное ограничение.
Re[4]: Всеобщий заговор в отношении скобок...
От: Игoрь Украина  
Дата: 28.11.10 11:52
Оценка:
Здравствуйте, dilmah, Вы писали:

D>Скажем, сегодняшний google code style использует этот стиль и накладывает 80-символьное ограничение.

Во-первых, при чем здесь 80-символьное ограничение, если оно по ширине, а не по высоте? Хотя и его считаю уже не актуальным. А во-вторых, сейчас полно ноутбуков с нормальными дисплеями и разрешением. У меня 15 дюймовый ноут, вполне нормально.
Re[4]: Всеобщий заговор в отношении скобок...
От: CreatorCray  
Дата: 28.11.10 17:47
Оценка: :)
Здравствуйте, Sinix, Вы писали:

S>
  На выходе
S>
S>    case EXTRA:
S>      if (state->flags & 0x0400)
S>      {
S>        copy = state->length;
S>        if (copy > have)
S>        {
S>          copy = have;
S>        }
S>        if (copy)
S>        {
S>          if (state->head != Z_NULL
S>           && state->head->extra != Z_NULL)
S>          {
S>            len = state->head->extra_len - state->length;

S>            zmemcpy(
S>              state->head->extra + len,
S>              next,
S>              (len + copy) > state->head->extra_max ?
S>                state->head->extra_max - len :
S>                copy);
S>          }
S>          if (state->flags & 0x0200)
S>          {
S>            state->check = crc32(state->check, next, copy);
S>          }
S>          have -= copy;
S>          next += copy;
S>          state->length -= copy;
S>        }
S>        if (state->length)
S>        {
S>          goto inf_leave;
S>        }
S>      }
S>      state->length = 0;
S>      state->mode = NAME;
S>


CC>>[нудным голосом] Отступы маленькие, некошерные; разбивка на строки слишком частая.
S>
  да пжалста
S>
S>        private static PathToken ParseToken(PathTokenInfo parsingToken) {
S>            PathToken result;
S>            if (IsCurrentDirectoryToken(parsingToken))
S>                result = CurrentDirectoryToken.Instance;
S>            else if (IsParentDirectoryToken(parsingToken))
S>                result = ParentDirectoryToken.Instance;
S>            else {
S>                string tokenName = GetNormalizedTokenName(parsingToken);
S>                if (parsingToken.SeparatorCount == 0)
S>                    result = new FileToken(tokenName);
S>                else
S>                    result = new DirectoryToken(tokenName);
S>            }
S>            return result;
S>        }
S>


S>И как, легче читается?

Хуже. Потому что ты скобки сделал не так как в первом примере.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.