Стиль программирования
От: Аноним  
Дата: 07.08.02 09:32
Оценка:
1.
--------
if (...){
    .
    .
    .
}
else {
    .
    .
    .
}



2.
-----------
if (...)
{
    .
    .
    .
}
else 
{
    .
    .
    .
}


Какой стиль выбрать ? Мне кажется стиль 2 намного удобнее.

29.03.03 17:34: Перенесено из 'О жизни'
Re: Стиль программирования
От: Undutchable  
Дата: 07.08.02 09:38
Оценка:
Здравствуйте Аноним, Вы писали:

...
А>Какой стиль выбрать ? Мне кажется стиль 2 намного удобнее.


Я пользуюсь вторым, чтобы было проще отслеживать вложенные скобки.


PS По стилю программирования, мне кажется, вопросы открываются в Прочем (или я не прав?)
Re: Стиль программирования
От: Bell Россия  
Дата: 07.08.02 09:47
Оценка:
Здравствуйте Аноним, Вы писали:

ИМХО второй нагляднее.
Любите книгу — источник знаний (с) М.Горький
Re[2]: Стиль программирования
От: Кодт Россия  
Дата: 07.08.02 10:07
Оценка:
Здравствуйте Undutchable, Вы писали:

А>>Какой стиль выбрать ? Мне кажется стиль 2 намного удобнее.


U>Я пользуюсь вторым, чтобы было проще отслеживать вложенные скобки.


И я тоже.

U>PS По стилю программирования, мне кажется, вопросы открываются в Прочем (или я не прав?)


Но это же стиль программирования на Си.
Перекуём баги на фичи!
Re: Стиль программирования
От: econt Украина http://cprime.110mb.com
Дата: 07.08.02 10:16
Оценка:
Здравствуйте Аноним, Вы писали:

А>1.

А>--------
А>
А>if (...){
А>    .
А>    .
А>    .
А>}
А>else {
А>    .
А>    .
А>    .
А>}
А>



А>2.

А>-----------
А>
А>if (...)
А>{
А>    .
А>    .
А>    .
А>}
А>else 
А>{
А>    .
А>    .
А>    .
А>}
А>


А>Какой стиль выбрать ? Мне кажется стиль 2 намного удобнее.


Я тоже для себя (давно уже) выбрал 2-й стиль. Даже сдается мне, что древние программисты (типа Кернигана и Ритчи) предпочитали именно этот стиль. Но не все так просто. Не так давно мне пришлось общаться с одной американской фирмой по написанию одной (не слишком сложной) программы. Так вот, одним из из условий было соблюдение ИХ стиля оформления исходного текста. Вот некоторые пункты (что помню):
1) if, while и т.д. должны иметь стиль, как у тебя стиль 1
2) после if, while, switch и т.д. должен быть один пробел, а уже затем открывающая скобка
3) отступы должны состоять из 4-х пробелов
4) комментарии подобно их примеру (сейчас уже не вспомню)
5) имена переменных должны быть в венгерской нотации (был пример)
Мне никогда не нравилась MFC. (c) Charles Petzold
Re[2]: Стиль программирования
От: Павел Кузнецов  
Дата: 07.08.02 10:28
Оценка:
Здравствуйте econt, Вы писали:

E>Я тоже для себя (давно уже) выбрал 2-й стиль. Даже сдается мне, что древние программисты (типа Кернигана и Ритчи) предпочитали именно этот стиль.

<...>

Вероятно, маэстро изволит шутить? (1) обычно именуется не иначе как K&R style, где буковка K означает Kernighan А, вообще, по этому поводу есть статейка в Jargon File.
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Re[2]: Стиль программирования
От: Anatolix Россия https://www.linkedin.com/in/anatolix/
Дата: 07.08.02 11:44
Оценка:
Здравствуйте econt, Вы писали:

E>Здравствуйте Аноним, Вы писали:


А>>1.

А>>--------
А>>
А>>if (...){
А>>    .
А>>    .
А>>    .
А>>}
А>>else {
А>>    .
А>>    .
А>>    .
А>>}
А>>



А>>2.

А>>-----------
А>>
А>>if (...)
А>>{
А>>    .
А>>    .
А>>    .
А>>}
А>>else 
А>>{
А>>    .
А>>    .
А>>    .
А>>}
А>>


А>>Какой стиль выбрать ? Мне кажется стиль 2 намного удобнее.


E>Я тоже для себя (давно уже) выбрал 2-й стиль. Даже сдается мне, что древние программисты (типа Кернигана и Ритчи) предпочитали именно этот стиль.


K&R стилем называется как раз первый.

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

Где то я видел целую кучу автоматических расстановщиков стилей,
можно писать как хочешь а потом кодировать перед посылкой.

P.S. Я тоже предпочитаю второй, и вообще последнее время баланс
меняется в его сторону, притом прямопропорционально ширине
диагонали монитора. Одним из аргументов в ползу первого было
то что он не занимает лишнее место

if () {
}
это 2 строки

if ()
{
}

это 3.

С 25 строками на экране из которых под
редактор дано 15 это имело смысл,
а сейчас стало не сильно актуально.
Любая проблема дизайна может быть решена введением дополнительного абстрактного слоя, за исключением проблемы слишком большого количества дополнительных абстрактных слоев
Re: Стиль программирования
От: Ибрагим Беларусь http://blogs.rsdn.org/ikemefula
Дата: 07.08.02 13:37
Оценка:
Здравствуйте Аноним, Вы писали:

Стиль программирования следует выбирать так:


1. Случай для одного разработчика.
Пиши как угодно. Лишь бы тебе было понятно. Некоторые из моих знакомы писали на Паскале в одну строчку.
Я использую 2, он нагляднее.
В древние временя я писал на Паскале и после каждого end писал коммент: end; {for} или end; {repeat}
Мои программы легко понимали челы даже отдаленно знакомые с Паскалем.
Иногда приходится переносить куски кода из одного проекта в другой и тд. В случае с 1 много непоняток с отслеживанием скобок.


2. Случай для группы разработчиков.
Использовать надо то, что выбрано всеми. Так понятнее. Многие конторы вводят обязательные правила для оформления программ.
MFC и MSCRT юзают 2.

3. Случай с STL. Там стиль Питоновский. Не очень наглядный, но есть свои преимущества. Ходят слухи, что это оттого, что STL рождалась Питоном. Вообще, при расширении библиотеки следует использовать тот стиль оформления, именования и тд., которого придерживались создатели библиотеки.

А>1.

А>--------
А>
А>if (...){
А>    .
А>    .
А>    .
А>}
А>else {
А>    .
А>    .
А>    .
А>}
А>



А>2.

А>-----------
А>
А>if (...)
А>{
А>    .
А>    .
А>    .
А>}
А>else 
А>{
А>    .
А>    .
А>    .
А>}
А>


А>Какой стиль выбрать ? Мне кажется стиль 2 намного удобнее.
Re: Стиль программирования
От: Frostbitten Россия  
Дата: 07.08.02 21:00
Оценка:
А с кейсами как быть?

1.
switch (a)
{
case 1:
    ...
    break;

case 2:
    ...
    break;
};


2.
switch (a)
{
    case 1:
        ...
        break;

    case 2:
        ...
        break;
};


3.
switch (a)
{
    case 1:
        ...
    break;

    case 2:
        ...
    break;
};


%)
Re[2]: Стиль программирования
От: Dr_Sh0ck Беларусь  
Дата: 08.08.02 05:01
Оценка: 9 (1)
Здравствуйте Frostbitten, Вы писали:

F>А с кейсами как быть?


[skipped]

Я вообще так пишу:
switch (a)
{
    case 1:
    {

        ...
        break;
    }

    case 2:
    {
        ...
        break;
    }
};
Do not fake yourself ;)
ICQ#: 198114726
Re[3]: Стиль программирования
От: Lefay Россия  
Дата: 08.08.02 05:08
Оценка:
Здравствуйте Dr_Sh0ck, Вы писали:

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


F>>А с кейсами как быть?


DS>[skipped]


DS>Я вообще так пишу:

DS>
DS>switch (a)
DS>{
DS>    case 1:
DS>    {

DS>        ...
DS>        break;
DS>    }

DS>    case 2:
DS>    {
DS>        ...
DS>        break;
DS>    }
DS>};
DS>


Ну да это есть стиль, который описан в явовской натации =)
Взойти на гору можно разными путями, но само восхождение остается неизменным.
Re[3]: Стиль программирования
От: Aquary Россия https://wmspanel.com/
Дата: 08.08.02 05:17
Оценка:
Здравствуйте Dr_Sh0ck, Вы писали:


F>>А с кейсами как быть?


DS>    case 1:
DS>    {

DS>        ...
DS>        break;
DS>    }


там { } не нужны, просто не зачем

я пишу
switch (a) {
    case 1:
        //
        break;
    case 1:
        //
        break;
    default:
        //
} //switch (a)


последний комментарий //switch — если switch вылазит за пределы экрана (применяю также и к остальным конструкциям)

case переносится на 4 символа для того, чтобы на одной вертикальной линейке были только открывающие и закрывающие конструкции (напр., switch и закрывающая скобка). То же правило и для остального, т.е. написав
if ()
{

}

на одной линии оказывается 3 элемента, а не 2.

Поэтому в предложенных 2-х вариантах всегда выбираю 2-й — меньше места, чем 1-й и одновременно понятен не меньше.
https://wmspanel.com/nimble — Nimble Streamer media server for live and VOD HLS, RTMP, HTTP streaming
https://wmspanel.com/ — Control and reporting panel for Wowza and Nimble Streamer
http://scm-notes.blogspot.com/ — Блог об управлении конфигурацией
Re[4]: Стиль программирования
От: Dr_Sh0ck Беларусь  
Дата: 08.08.02 05:34
Оценка:
Здравствуйте Aquary, Вы писали:

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



F>>>А с кейсами как быть?


A>
DS>>    case 1:
DS>>    {

DS>>        ...
DS>>        break;
DS>>    }
A>


A>там { } не нужны, просто не зачем


A>я пишу

A>[ccode]

[skipped]

Во-первых красивее, во-вторых — это эе область видимости
Do not fake yourself ;)
ICQ#: 198114726
Re[5]: Стиль программирования
От: Aquary Россия https://wmspanel.com/
Дата: 08.08.02 06:02
Оценка:
Здравствуйте Dr_Sh0ck, Вы писали:


A>>там { } не нужны, просто не зачем

DS>Во-первых красивее, во-вторых — это эе область видимости

А зачем там область видимости?
Или ты собираешься там еще кучу переменных в каждый case вводить с одинаковыми названиями?
Да даже если и так? Отработав один case прога по break перейдет за пределы switch и они так и так уже не будут видны... Или я что-то упустил?
https://wmspanel.com/nimble — Nimble Streamer media server for live and VOD HLS, RTMP, HTTP streaming
https://wmspanel.com/ — Control and reporting panel for Wowza and Nimble Streamer
http://scm-notes.blogspot.com/ — Блог об управлении конфигурацией
Re[6]: Стиль программирования
От: Dr_Sh0ck Беларусь  
Дата: 08.08.02 07:50
Оценка:
Здравствуйте Aquary, Вы писали:

[skipped]

A>Или я что-то упустил?


Yah (Да, то есть )
Do not fake yourself ;)
ICQ#: 198114726
Re[3]: Стиль программирования
От: econt Украина http://cprime.110mb.com
Дата: 08.08.02 10:27
Оценка:
Здравствуйте Anatolix, Вы писали:

E>>Я тоже для себя (давно уже) выбрал 2-й стиль. Даже сдается мне, что древние программисты (типа Кернигана и Ритчи) предпочитали именно этот стиль.


A>K&R стилем называется как раз первый.


Да, что-то я забывать стал основоположников... Книжку эту я последний раз читал лет так 8 назад. Так что за замечание спасибо.
Мне никогда не нравилась MFC. (c) Charles Petzold
Re[2]: Стиль программирования
От: Lefay Россия  
Дата: 08.08.02 16:03
Оценка:
Здравствуйте Undutchable, Вы писали:

U>Здравствуйте Аноним, Вы писали:


U>...

А>>Какой стиль выбрать ? Мне кажется стиль 2 намного удобнее.

U>Я пользуюсь вторым, чтобы было проще отслеживать вложенные скобки.


Специально попробовал в своем текущем проете использовать оба эти стиля и сравнить их, надо отметить, что первый гораздо удобнее и наглядней, с использованием первого возникает эффект удлиннения блоков кода и хуже
охваьывается структура кода и логика, так что для логики полезней, на мой взгляд второй вариант, а для человеко/сторок конечно первый =)
Хотя это всего лишь мое мнение.
Взойти на гору можно разными путями, но само восхождение остается неизменным.
Re[7]: Стиль программирования
От: Aquary Россия https://wmspanel.com/
Дата: 09.08.02 02:22
Оценка:
Здравствуйте Dr_Sh0ck, Вы писали:

A>>Или я что-то упустил?

DS>Yah (Да, то есть )

Что?
https://wmspanel.com/nimble — Nimble Streamer media server for live and VOD HLS, RTMP, HTTP streaming
https://wmspanel.com/ — Control and reporting panel for Wowza and Nimble Streamer
http://scm-notes.blogspot.com/ — Блог об управлении конфигурацией
Re[8]: Стиль программирования
От: achp  
Дата: 09.08.02 05:38
Оценка:
Здравствуйте Aquary, Вы писали:

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


A>>>Или я что-то упустил?

DS>>Yah (Да, то есть )

A>Что?


Ошибка компиляции: переход в обход инициализации объекта.
Re[9]: Стиль программирования
От: Aquary Россия https://wmspanel.com/
Дата: 09.08.02 05:52
Оценка:
Здравствуйте achp, Вы писали:

A>>>>Или я что-то упустил?

DS>>>Yah (Да, то есть )
A>>Что?
A>Ошибка компиляции: переход в обход инициализации объекта.

Ты про что? откомпилил (изменив case 1 на case 2 ), заработало...
https://wmspanel.com/nimble — Nimble Streamer media server for live and VOD HLS, RTMP, HTTP streaming
https://wmspanel.com/ — Control and reporting panel for Wowza and Nimble Streamer
http://scm-notes.blogspot.com/ — Блог об управлении конфигурацией
Re[10]: Стиль программирования
От: achp  
Дата: 09.08.02 06:21
Оценка: 17 (2)
Здравствуйте Aquary, Вы писали:

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


A>>>>>Или я что-то упустил?

DS>>>>Yah (Да, то есть )
A>>>Что?
A>>Ошибка компиляции: переход в обход инициализации объекта.

A>Ты про что? откомпилил (изменив case 1 на case 2 ), заработало...


switch (variant)
{
case 1:
    my_brilliant_class_that_desperately_needs_initialization x;
    // ...
    break;
case 2:
    // ...
}


Несмотря на break объект x видим после метки case 2. Т. е. к нему можно обращаться, он там "живет". Но! В случае перехода к этой метке инициализация x остается обойденной, что компилятором и не допускается.
Re[11]: Стиль программирования
От: Aquary Россия https://wmspanel.com/
Дата: 09.08.02 06:34
Оценка:
Здравствуйте achp, Вы писали:

A>>Ты про что? откомпилил (изменив case 1 на case 2 ), заработало...


A>
A>switch (variant)
A>{
A>case 1:
A>    my_brilliant_class_that_desperately_needs_initialization x;
A>    // ...
A>    break;
A>case 2:
A>    // ...
A>}
A>


A>Несмотря на break объект x видим после метки case 2. Т. е. к нему можно обращаться, он там "живет". Но! В случае перехода к этой метке инициализация x остается обойденной, что компилятором и не допускается.


Это все правильно, только вот скажи — часто ли тебе приходится объявлять объекты класса внутри case? ИМХО, несколько некрасиво это... ИМХО...
https://wmspanel.com/nimble — Nimble Streamer media server for live and VOD HLS, RTMP, HTTP streaming
https://wmspanel.com/ — Control and reporting panel for Wowza and Nimble Streamer
http://scm-notes.blogspot.com/ — Блог об управлении конфигурацией
Re[12]: Стиль программирования
От: DuШes  
Дата: 09.08.02 08:17
Оценка: 9 (1)
Здравствуйте Aquary, Вы писали:

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


A>>>Ты про что? откомпилил (изменив case 1 на case 2 ), заработало...


A>>
A>>switch (variant)
A>>{
A>>case 1:
A>>    my_brilliant_class_that_desperately_needs_initialization x;
A>>    // ...
A>>    break;
A>>case 2:
A>>    // ...
A>>}
A>>


A>>Несмотря на break объект x видим после метки case 2. Т. е. к нему можно обращаться, он там "живет". Но! В случае перехода к этой метке инициализация x остается обойденной, что компилятором и не допускается.


A>Это все правильно, только вот скажи — часто ли тебе приходится объявлять объекты класса внутри case? ИМХО, несколько некрасиво это... ИМХО...


WndProc,DlgProc
Re[12]: Стиль программирования
От: Dr_Sh0ck Беларусь  
Дата: 10.08.02 08:07
Оценка: 10 (1)
Здравствуйте Aquary, Вы писали:

[skipped]

A>Это все правильно, только вот скажи — часто ли тебе приходится объявлять объекты класса внутри case? ИМХО, несколько некрасиво это... ИМХО...


Приходится довольно часто. И очень даже красиво
Do not fake yourself ;)
ICQ#: 198114726
Re[4]: Стиль программирования
От: Андрей Тарасевич Беларусь  
Дата: 10.08.02 08:14
Оценка:
Здравствуйте Aquary, Вы писали:

F>>>А с кейсами как быть?


A>
DS>>    case 1:
DS>>    {

DS>>        ...
DS>>        break;
DS>>    }
A>


A>там { } не нужны, просто не зачем


A>я пишу

A>
A>switch (a) {
A>    case 1:
A>        //
A>        break;
A>    case 1:
A>        //
A>        break;
A>    default:
A>        //
A>} //switch (a)
A>


Если внутри ветки case есть переменная с нетривиальной инициализацией (класс с конструктором, переменная 'int' объявленная с инициализатором и т.п.) то без фигурных скобок ты получишь сообщение об ошибке компиляции.
Best regards,
Андрей Тарасевич
Re[12]: Стиль программирования
От: Андрей Тарасевич Беларусь  
Дата: 10.08.02 08:17
Оценка:
Здравствуйте Aquary, Вы писали:

A>>>Ты про что? откомпилил (изменив case 1 на case 2 ), заработало...


A>>
A>>switch (variant)
A>>{
A>>case 1:
A>>    my_brilliant_class_that_desperately_needs_initialization x;
A>>    // ...
A>>    break;
A>>case 2:
A>>    // ...
A>>}
A>>


A>>Несмотря на break объект x видим после метки case 2. Т. е. к нему можно обращаться, он там "живет". Но! В случае перехода к этой метке инициализация x остается обойденной, что компилятором и не допускается.


A>Это все правильно, только вот скажи — часто ли тебе приходится объявлять объекты класса внутри case? ИМХО, несколько некрасиво это... ИМХО...


Во-первых, мне, например, часто.

Во-вторых, это не обязятельно должен быть экземпляр класса. С обычным 'int i = 0;' будет то же самое — сообщение об ошибке компиляции.
Best regards,
Андрей Тарасевич
Re[5]: Стиль программирования
От: Aquary Россия https://wmspanel.com/
Дата: 10.08.02 09:19
Оценка:
Здравствуйте Андрей Тарасевич, Вы писали:


АТ>Если внутри ветки case есть переменная с нетривиальной инициализацией (класс с конструктором, переменная 'int' объявленная с инициализатором и т.п.) то без фигурных скобок ты получишь сообщение об ошибке компиляции.


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

Изначально другое интересно было — кто как форматирует это дело.
Cо скобками в первом стиле это будет

case 1: {
    do1();
    break;
}
case 2{
    do2();
    break;
}


Опять же ИМХО.
https://wmspanel.com/nimble — Nimble Streamer media server for live and VOD HLS, RTMP, HTTP streaming
https://wmspanel.com/ — Control and reporting panel for Wowza and Nimble Streamer
http://scm-notes.blogspot.com/ — Блог об управлении конфигурацией
Re[6]: Стиль программирования
От: Андрей Тарасевич Беларусь  
Дата: 10.08.02 17:46
Оценка:
Здравствуйте Aquary, Вы писали:

A>Изначально другое интересно было — кто как форматирует это дело.

A>Cо скобками в первом стиле это будет

A>
A>case 1: {
A>    do1();
A>    break;
A>}
A>case 2{
A>    do2();
A>    break;
A>}
A>


Я бы не называл все это "стилем программирования". К стилю программирования это никакого оотношения не имеет. Это скорее деталь стиля оформления исходных файлов. Я на практичке встречаю три стиля оформления:

if (expression) {
  statement;
}

if (expression) 
{
  statement;
}

if (expression) 
  {
  statement;
  }


Я пользуюсь средним вариантом. Давно не встречал последнего, хотя на одной из предыдущих работ им пользовались многие. В ветках 'case' я ставлю фигурные скобки только если они там действительно нужны (ветка содержит обпределения локальных объектов).
Best regards,
Андрей Тарасевич
Re: Стиль программирования
От: achp  
Дата: 12.08.02 06:02
Оценка:
Мне представляется разумным следующий стиль оформления исходников:

1. Фигурные скобки
{
    // Фигурные скобки одна под другой
    // Открывающая фигурная скобка всегда одинока на своей строчке, даже без комментария
}

Заключенное между фигурными скобками тело пространства имен первого уровня, кроме безымянного, не сдвигается, а вместо этого отбивается пустыми строками:
namespace имя
{

t f();

namespace вложенное
{
    t1 f1();
}

}

namespace
{
    t2 f2();
}

2. Циклы while и условные операторы
Если тело цикла или часть "то" или "иначе" условного оператора является чем-то иным, нежели оператором-выражением, оно заключается в фигурные скобки, даже если синтаксис этого не требует:
while (что-то)
{ // Синтаксис не требует здесь фигурных скобок
    if (нечто)
        оператор-выражение
}

3. else, while после фигурной скобки
Ключевые слова else, а также while, относящееся к циклу do-while, располагаются на одной строке с фигурной скобкой, завершающей предшествующее им тело цикла или часть "то" условного оператора, ежели таковая наличествует:
if (что-то)
{
    // Много чего
} else // Не является "самостоятельным", поэтому вслед за скобкой
    // Черт-те что!

А также:
do
{
    // Много чего
} while (что-то) // Не является "самостоятельным", поэтому вслед за скобкой


Интересно было бы услышать критические замечания.
Re[2]: Стиль программирования
От: Aquary Россия https://wmspanel.com/
Дата: 12.08.02 06:11
Оценка:
Здравствуйте achp, Вы писали:

A>Мне представляется разумным следующий стиль оформления исходников:

[тут сожрали демоны]
A>Интересно было бы услышать критические замечания.

1. места много уходит на одиночные скобки на строке — это уже писали
2. вложенные namespace лучше смещать на 4 символа, как и все остальное — нагляднее.
Вообще, имхо, любые вложения лучше смешать — чтобв открывающий и закрывающий элемент были на одногй "линии" — лучше отслеживать, где начало и где конец блока.
https://wmspanel.com/nimble — Nimble Streamer media server for live and VOD HLS, RTMP, HTTP streaming
https://wmspanel.com/ — Control and reporting panel for Wowza and Nimble Streamer
http://scm-notes.blogspot.com/ — Блог об управлении конфигурацией
Re[4]: Стиль программирования
От: The Lex Украина  
Дата: 12.08.02 18:06
Оценка:
Здравствуйте Aquary, Вы писали:

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

F>>>А с кейсами как быть?

A>
DS>>    case 1:
DS>>    {

DS>>        ...
DS>>        break;
DS>>    }
A>


A>там { } не нужны, просто не зачем


A>я пишу

A>
A>switch (a) {
A>    case 1:
A>        //
A>        break;
A>    case 1:
A>        //
A>        break;
A>    default:
A>        //
A>} //switch (a)
A>


Только вот "пустой" default не получится: компилятор ругается...

A>последний комментарий //switch — если switch вылазит за пределы экрана (применяю также и к остальным конструкциям)


Поддерживаю...
Голь на выдумку хитра, однако...
Re[3]: Стиль программирования
От: The Lex Украина  
Дата: 12.08.02 18:16
Оценка:
Здравствуйте Aquary, Вы писали:

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


A>>Мне представляется разумным следующий стиль оформления исходников:

A>[тут сожрали демоны]
A>>Интересно было бы услышать критические замечания.

A>1. места много уходит на одиночные скобки на строке — это уже писали


Точно! У меня как раз места на диске не хватает: надо куда-то переписать 2 или 3 гигабайта видео, уже и болванки лежат, да все руки не доходят...
Голь на выдумку хитра, однако...
Re[5]: Стиль программирования
От: Aquary Россия https://wmspanel.com/
Дата: 12.08.02 23:00
Оценка:
Здравствуйте The Lex, Вы писали:

TL>Только вот "пустой" default не получится: компилятор ругается...

Ну это я уже не стал дописывать — идею только демонстрировал

A>>последний комментарий //switch — если switch вылазит за пределы экрана (применяю также и к остальным конструкциям)

TL>Поддерживаю...
Это из Голуба, что ли... не помню... Кто-нибудь еще этим пользуется?
https://wmspanel.com/nimble — Nimble Streamer media server for live and VOD HLS, RTMP, HTTP streaming
https://wmspanel.com/ — Control and reporting panel for Wowza and Nimble Streamer
http://scm-notes.blogspot.com/ — Блог об управлении конфигурацией
Re[6]: Стиль программирования
От: The Lex Украина  
Дата: 13.08.02 06:19
Оценка: 4 (1)
Здравствуйте Aquary, Вы писали:

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


TL>>Только вот "пустой" default не получится: компилятор ругается...

A>Ну это я уже не стал дописывать — идею только демонстрировал

A>>>последний комментарий //switch — если switch вылазит за пределы экрана (применяю также и к остальным конструкциям)

TL>>Поддерживаю...
A>Это из Голуба, что ли... не помню... Кто-нибудь еще этим пользуется?

Не, Голуба я не знаю. Это из моих исходников. А еще есть глупая привычка в конце функции ее название приписывать:
someType SomeFunction()
{
  // Some code
  // ...
} // Some Function


Потому как совсем невмоготу стараться вникнуть в то, "где начало этого конца". И размеры экрана тут не при чем: у меня сейчас 1024 высоты имеется — все равно сильно много задумываться лень — проще задокументировать. Не все подряд, конечно, но каждый хвост, претендующий на сколь бы то ни было порядочную длинну, следует подписать. Мое скромное мнение, разумеется...
Голь на выдумку хитра, однако...
Re[7]: Голуб
От: Aquary Россия https://wmspanel.com/
Дата: 13.08.02 06:28
Оценка:
Здравствуйте The Lex, Вы писали:

TL>Не, Голуба я не знаю.


2Community: Может, выложим сабж на RSDN?
https://wmspanel.com/nimble — Nimble Streamer media server for live and VOD HLS, RTMP, HTTP streaming
https://wmspanel.com/ — Control and reporting panel for Wowza and Nimble Streamer
http://scm-notes.blogspot.com/ — Блог об управлении конфигурацией
Re: Стиль оформления
От: Chorkov Россия  
Дата: 13.08.02 11:08
Оценка:
Здравствуйте Аноним, Вы писали:
...
А>Какой стиль выбрать ?

Кстати, каккой стиль выбрать для оператора if, содержащего в теле только один оператор?


//1
if( AnyCondition() )
    AnyAction();

//2
if( AnyCondition() )
{
    AnyAction();
};

//3
if( AnyCondition() )   AnyAction();


Я использую стиль 1, но возможно есть идеи и лучьше?
Re[2]: Вариант 2)
От: Vi2 Удмуртия http://www.adem.ru
Дата: 13.08.02 11:37
Оценка:
Здравствуйте Chorkov, Вы писали:

C>Кстати, каккой стиль выбрать для оператора if, содержащего в теле только один оператор?


C>//1
C>if( AnyCondition() )
C>    AnyAction();
C>//2
C>if( AnyCondition() )
C>{
C>    AnyAction();
C>}
C>//3
C>if( AnyCondition() )   AnyAction();


C>Я использую стиль 1, но возможно есть идеи и лучьше?


В целях последующих изменений (а это почти всегда бывает нужно) лучше использовать {} — проще модифицировать программу. Да и AnyCondition бывает достаточно сложным, со скобками, да и многострочным. Так что 2). Хотя при быстром написании (посколько VC не делает автоматически {}) иногда получается вариант 1).
Vita
Выше головы не прыгнешь, ниже земли не упадешь, дальше границы не убежишь! © КВН НГУ
Re: Стиль программирования
От: OlegO Россия http://www.mediachase.ru
Дата: 13.08.02 11:42
Оценка: 12 (2)
Здравствуйте Аноним, Вы писали:

А>Какой стиль выбрать ? Мне кажется стиль 2 намного удобнее.


Предлагаю всем вместо приведения различных ситуаций, почитать книгу Ален И.Голуб "Правила программирования на С++", там этой теме целая книга посвещена, с примерами и аргументами.
С уважением, OlegO.
Re: Стиль программирования
От: Susumanin Россия  
Дата: 13.08.02 14:10
Оценка:
Здравствуйте Аноним, Вы писали:

А>1.

А>--------
А>
А>if (...){
А>    .
А>    .
А>    .
А>}
А>else {
А>    .
А>    .
А>    .
А>}
А>



А>2.

А>-----------
А>
А>if (...)
А>{
А>    .
А>    .
А>    .
А>}
А>else 
А>{
А>    .
А>    .
А>    .
А>}
А>


А>Какой стиль выбрать ? Мне кажется стиль 2 намного удобнее.


Здесь очень трудно говорить какой из стилей удобней, т.к. все сугубо индивидуально. Но, например, когда входишь в новую команду ,а у них уже куча кода с одним стилем (например с первым), то хочешь или не хочешь, а придется писть используя второй.
Это и есть самое главное в любых стилях — главное постоянство. Потому что любой программер привыкнет к чтению даже самого отвратного стиля, но если он будет использоваться на протяжении всего проекта.
Re[2]: Стиль программирования
От: Aquary Россия https://wmspanel.com/
Дата: 14.08.02 02:05
Оценка: 6 (1)
Здравствуйте OlegO, Вы писали:

OO>Предлагаю всем вместо приведения различных ситуаций, почитать книгу Ален И.Голуб "Правила программирования на С++", там этой теме целая книга посвещена, с примерами и аргументами.


Где-то в этом же треде я уже предлагал разместить ее на сайте, чтоб далеко не ходить...
https://wmspanel.com/nimble — Nimble Streamer media server for live and VOD HLS, RTMP, HTTP streaming
https://wmspanel.com/ — Control and reporting panel for Wowza and Nimble Streamer
http://scm-notes.blogspot.com/ — Блог об управлении конфигурацией
Re[3]: Стиль программирования
От: OlegO Россия http://www.mediachase.ru
Дата: 14.08.02 06:33
Оценка:
Здравствуйте Aquary, Вы писали:

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


OO>>Предлагаю всем вместо приведения различных ситуаций, почитать книгу Ален И.Голуб "Правила программирования на С++", там этой теме целая книга посвещена, с примерами и аргументами.


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


Да это было бы прикольно, К кому обращаться с просьбой это сделать
С уважением, OlegO.
Re: Мои пять копеек. Re: Стиль программирования
От: Vladimir_K  
Дата: 14.08.02 06:59
Оценка:
В принципе нет существенной разницы между этими двумя вариантами.
Мне приходилось пользоваться обоими (один предпочитал я, другой
в одном из проектов был требованием заказчика).
Если хотите для себя выбрать один из них — руководствуйтесь
своими эстетическими соображениями. :) Главное — не менять
выбранный стиль от модуля к модулю. ;)

Кстати говоря, мне сейчас более импонирует третий вариант,
по наглядности превосходящий оба предыдущих:


class Test
  {
  public Test()
    {
    // Initialize instance
    m_iCurrentInstance = m_iTotalInstances++;
    }

  public int getInstanceNumber() 
    { 
    return m_iCurrentInstance; 
    }

  private static int m_iTotalInstances=0;
  private int m_iCurrentInstance;
  }


Здесь каждый блок кода имеет заголовок и тело. Тело
оформляется отступом. Такое оформление позволяет лучше видеть
структуру кода (сначала, конечно, несколько непривычно,
но быстро привыкаешь и начинаешь ощущать преимущества такого стиля).

Кстати, AFAIR этого у Голуба нет. Есть у МакКоннелла:
McConnell, Code Complete. Это существенно более
интересная книжка, чем Голуб. И более толстая. :)

Regards,
Vladimir
Re[2]: Мои пять копеек. Re: Стиль программирования
От: Aquary Россия https://wmspanel.com/
Дата: 14.08.02 08:08
Оценка:
Здравствуйте Vladimir_K, Вы писали:

VK>
[сожрали демоны]
VK>

VK>Здесь каждый блок кода имеет заголовок и тело. Тело
VK>оформляется отступом. Такое оформление позволяет лучше видеть
VK>структуру кода (сначала, конечно, несколько непривычно,
VK>но быстро привыкаешь и начинаешь ощущать преимущества такого стиля).

Отступ — 4 символа, ОК? А то ретяешься... сегодня копался в коде одного... умельца... такие такие же отступы стояли... Жуть!

VK>Кстати, AFAIR этого у Голуба нет. Есть у МакКоннелла:

VK>McConnell, Code Complete. Это существенно более
VK>интересная книжка, чем Голуб. И более толстая.

URL?
https://wmspanel.com/nimble — Nimble Streamer media server for live and VOD HLS, RTMP, HTTP streaming
https://wmspanel.com/ — Control and reporting panel for Wowza and Nimble Streamer
http://scm-notes.blogspot.com/ — Блог об управлении конфигурацией
Re: Стиль программирования
От: XMbIPb  
Дата: 14.08.02 11:49
Оценка:
Если нет ограничений, то стараюсь писать так:

if (...){
    .
    .
    .
}else{ //if (...)
    .
    .
    .
} // if (...)
Re[3]: Мои пять копеек. Re: Стиль программирования
От: Vladimir_K  
Дата: 14.08.02 14:45
Оценка:
Здравствуйте Aquary, Вы писали:


A>Отступ — 4 символа, ОК? А то ретяешься...

Чего делаешь? :)

A>сегодня копался в коде одного... :crash: умельца...

A>такие такие же отступы стояли... Жуть!
Я предпочитаю 2. 1 и 4 — это крайность. А 2 — золотая середина. :)
А вообще что 2, что 4 — нет большой разницы, как только привык к какому-либо
варианту, другие раздражают.

VK>>Кстати, AFAIR этого у Голуба нет. Есть у МакКоннелла:

VK>>McConnell, Code Complete. Это существенно более
VK>>интересная книжка, чем Голуб. И более толстая. :)

A>URL?

Насколько я знаю, ее нет в Инете. Во всяком случае ни я, ни еще несколько человек
ее не нашли. На Амазоне можно найти по названию.

Regards,
Vladimir
Re[4]: Мои пять копеек. Re: Стиль программирования
От: Aquary Россия https://wmspanel.com/
Дата: 15.08.02 01:07
Оценка:
Здравствуйте Vladimir_K, Вы писали:

A>>Отступ — 4 символа, ОК? А то ретяешься...

VK>Чего делаешь?
Теряешься

A>>сегодня копался в коде одного... умельца...

A>>такие такие же отступы стояли... Жуть!
VK>Я предпочитаю 2. 1 и 4 — это крайность. А 2 — золотая середина.
VK>А вообще что 2, что 4 — нет большой разницы, как только привык к какому-либо
VK>варианту, другие раздражают.

С 2 все сливается, особенно если не стоят комментарии после закрывающих скобок
https://wmspanel.com/nimble — Nimble Streamer media server for live and VOD HLS, RTMP, HTTP streaming
https://wmspanel.com/ — Control and reporting panel for Wowza and Nimble Streamer
http://scm-notes.blogspot.com/ — Блог об управлении конфигурацией
Re[5]: Мои пять копеек. Re: Стиль программирования
От: Аноним  
Дата: 15.08.02 06:38
Оценка:
Здравствуйте Aquary, Вы писали:

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


A>>>Отступ — 4 символа, ОК? А то ретяешься...

VK>>Чего делаешь? :)
A>Теряешься :shuffle:
:) А я было подумал, это какая-то жаргонная калька с английского.

VK>>Я предпочитаю 2. 1 и 4 — это крайность. А 2 — золотая середина. :)

VK>>А вообще что 2, что 4 — нет большой разницы, как только привык к какому-либо
VK>>варианту, другие раздражают.

A>С 2 все сливается, особенно если не стоят комментарии после закрывающих скобок :crash:

Не знаю-не знаю... Конечно, если методы по два экрана размером, то такая проблема может иметь место. Но это же ненормально. :) А если метод в 5-7 строк, то ничего никуда не потеряется. :)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.