Стиль coding'а для группы....
От: Prokher Россия  
Дата: 26.01.05 18:01
Оценка:
Очевидно при работе в коллективе необходимо придерживаться какого-то соглашения по оформлению кода. Всем нам хорошо известна проблема подбора "правильного" имени переменной и т.д. и т.п. Ранее всегда работал над отдельными модулями и отдавать свой код не приходилось. В недавнем прошлом перешли на C# и твердо решили согласовать стиль coding'а. Господа а у кого-нибудь есть примерный перечень того, что нужно обговаривать, а еще лучше прямо пример подобного соглашения. Желательно применительно к до диезу .
Заранее благодарен.
... << RSDN@Home 1.1.4 beta 3 rev. 207>>
Re: Стиль coding'а для группы....
От: Anatolix Россия https://www.linkedin.com/in/anatolix/
Дата: 26.01.05 18:06
Оценка: 11 (1) +3
Здравствуйте, Prokher, Вы писали:

P>Очевидно при работе в коллективе необходимо придерживаться какого-то соглашения по оформлению кода. Всем нам хорошо известна проблема подбора "правильного" имени переменной и т.д. и т.п. Ранее всегда работал над отдельными модулями и отдавать свой код не приходилось. В недавнем прошлом перешли на C# и твердо решили согласовать стиль coding'а. Господа а у кого-нибудь есть примерный перечень того, что нужно обговаривать, а еще лучше прямо пример подобного соглашения. Желательно применительно к до диезу .

P>Заранее благодарен.

Правильный стиль "такой как во фреймворке который вы пользуете". Т.е. т.к. ты наследуешься от классов фреймворка, то если там camelNotation, а ты решишь использовать CapitalizedFunctionNames, то в твоих классах будеть помесь нотаций. Так что возми посмотри исходники сорцов на на C# в составе с компилятором и сделай так.
Любая проблема дизайна может быть решена введением дополнительного абстрактного слоя, за исключением проблемы слишком большого количества дополнительных абстрактных слоев
Re: Стиль coding'а для группы....
От: WolfHound  
Дата: 26.01.05 18:13
Оценка: 18 (1)
Здравствуйте, Prokher, Вы писали:

Соглашениями по оформлению кода команды RSDN
ЗЫ Поиск рулит.
... << RSDN@Home 1.1.4 beta 3 rev. 185>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re: Стиль coding'а для группы....
От: BiТ  
Дата: 26.01.05 22:34
Оценка:
Здравствуйте, Prokher, Вы писали:

P>Очевидно при работе в коллективе необходимо придерживаться какого-то соглашения по оформлению кода. Всем нам хорошо известна проблема подбора "правильного" имени переменной и т.д. и т.п. Ранее всегда работал над отдельными модулями и отдавать свой код не приходилось. В недавнем прошлом перешли на C# и твердо решили согласовать стиль coding'а. Господа а у кого-нибудь есть примерный перечень того, что нужно обговаривать, а еще лучше прямо пример подобного соглашения. Желательно применительно к до диезу .

P>Заранее благодарен.

Пользуюсь теми — что рекомендованы MSDN с маленькими дополнениями
P.S. А ещё лет 5 назад использовал собственную нотацию — количество правил которой было в районе 200 . Благополучно пошла в корзину после того момента, как попал в крупный проект (одних программеров ~50 человек), тогда же осознал, что нотация должна быть простой и общепринятой.
Re[2]: Стиль coding'а для группы....
От: McSeem2 США http://www.antigrain.com
Дата: 27.01.05 00:18
Оценка: +1 -1
Здравствуйте, WolfHound, Вы писали:

WH>Соглашениями по оформлению кода команды RSDN


Чисто из любопытства — чем вызвано требование использовать табуляцию для отступов в начале строки? Есть этому какое-то разумное rationale?

Без намерения оспаривать, рискну высказать мнение, что табуляции — это "атрофизм", сохранившийся со времен PDP-11, чисто для экономии места в текстах на ассемблере. В современном мире, от них больше проблем, чем пользы.

Помню, народ долго искал ошибку в программе на Си (PDP-11), типа не срабатывает
      if(ch == ' ') ...

В конце концов выяснилось, что на месте пробела оказался символ табуляции — опции в редакторе были установлены таким образом, чтобы автоматически делать Tabify при сохранении.
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re[3]: Стиль coding'а для группы....
От: IT Россия linq2db.com
Дата: 27.01.05 00:40
Оценка: +4
Здравствуйте, McSeem2, Вы писали:

MS>Чисто из любопытства — чем вызвано требование использовать табуляцию для отступов в начале строки? Есть этому какое-то разумное rationale?


Разные программисты предпочитают устанавливать разный размер отступа в своих редакторах. Кому-то нравится 4 символа, кому-то 2, кому-то 8. Использование табулиции в качестве отступа позволяет удовлетворить потребности всех.
Если нам не помогут, то мы тоже никого не пощадим.
Re[4]: Стиль coding'а для группы....
От: McSeem2 США http://www.antigrain.com
Дата: 27.01.05 01:03
Оценка: +6 -1
Здравствуйте, IT, Вы писали:

MS>>Чисто из любопытства — чем вызвано требование использовать табуляцию для отступов в начале строки? Есть этому какое-то разумное rationale?


IT>Разные программисты предпочитают устанавливать разный размер отступа в своих редакторах. Кому-то нравится 4 символа, кому-то 2, кому-то 8. Использование табулиции в качестве отступа позволяет удовлетворить потребности всех.


Дык от этого форматирование неизбежно отъезжает... Например, это противоречит требованию не писать длинных строк. Вообще, это крайне сложно написать текст программы так, чтобы он хорошо выглядел при любом размере табуляции. На практике получается полный бардак, в результате которого, со временем узаконивается вполне определенный размер табуляуции, скажем, 4. Дальнейший шаг, логически вытекающий из предыдущего — полный отказ от табуляций.
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re[4]: Стиль coding'а для группы....
От: Шахтер Интернет  
Дата: 27.01.05 01:16
Оценка: -1
Здравствуйте, IT, Вы писали:

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


MS>>Чисто из любопытства — чем вызвано требование использовать табуляцию для отступов в начале строки? Есть этому какое-то разумное rationale?


IT>Разные программисты предпочитают устанавливать разный размер отступа в своих редакторах. Кому-то нравится 4 символа, кому-то 2, кому-то 8. Использование табулиции в качестве отступа позволяет удовлетворить потребности всех.


Наоборот.
... << RSDN@Home 1.1.0 stable >>
В XXI век с CCore.
Копай Нео, копай -- летать научишься. © Matrix. Парадоксы
Re: Стиль coding'а для группы....
От: Шахтер Интернет  
Дата: 27.01.05 01:16
Оценка: -4
Здравствуйте, Prokher, Вы писали:

P>Очевидно при работе в коллективе необходимо придерживаться какого-то соглашения по оформлению кода. Всем нам хорошо известна проблема подбора "правильного" имени переменной и т.д. и т.п. Ранее всегда работал над отдельными модулями и отдавать свой код не приходилось. В недавнем прошлом перешли на C# и твердо решили согласовать стиль coding'а. Господа а у кого-нибудь есть примерный перечень того, что нужно обговаривать, а еще лучше прямо пример подобного соглашения. Желательно применительно к до диезу .

P>Заранее благодарен.

Не очевидно. Лучше, когда человек работает как привык, а не как навязали.
... << RSDN@Home 1.1.0 stable >>
В XXI век с CCore.
Копай Нео, копай -- летать научишься. © Matrix. Парадоксы
Re[5]: Стиль coding'а для группы....
От: IT Россия linq2db.com
Дата: 27.01.05 01:16
Оценка: +1
Здравствуйте, McSeem2, Вы писали:

IT>>Разные программисты предпочитают устанавливать разный размер отступа в своих редакторах. Кому-то нравится 4 символа, кому-то 2, кому-то 8. Использование табулиции в качестве отступа позволяет удовлетворить потребности всех.


MS>Дык от этого форматирование неизбежно отъезжает... Например, это противоречит требованию не писать длинных строк.


Почему? Какая разница ставишь ты 4 пробела или делаешь табуляцию в размером в 4 символа?

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


Это так же сложно как и придерживаться в команде любых конвенций. Поначалу коробит чужой стиль, руки тянутся сделать по своему. Потом привыкаешь.
Если нам не помогут, то мы тоже никого не пощадим.
Re[5]: Стиль coding'а для группы....
От: IT Россия linq2db.com
Дата: 27.01.05 01:32
Оценка:
Здравствуйте, Шахтер, Вы писали:

MS>>>Чисто из любопытства — чем вызвано требование использовать табуляцию для отступов в начале строки? Есть этому какое-то разумное rationale?


IT>>Разные программисты предпочитают устанавливать разный размер отступа в своих редакторах. Кому-то нравится 4 символа, кому-то 2, кому-то 8. Использование табулиции в качестве отступа позволяет удовлетворить потребности всех.


Ш>Наоборот.


Этот как наоборот? Я ставлю в коде 4 пробела, ты 2 и все довольны?
Если нам не помогут, то мы тоже никого не пощадим.
Re[2]: Стиль coding'а для группы....
От: IT Россия linq2db.com
Дата: 27.01.05 01:32
Оценка:
Здравствуйте, Шахтер, Вы писали:

Ш>Не очевидно. Лучше, когда человек работает как привык, а не как навязали.


Привычки иногда бывают вредные. А если мне после тебя сопровождать твой код, то при отсутствии единого стиля, я его скорее всего выброшу и перепишу по новой.
Если нам не помогут, то мы тоже никого не пощадим.
Re[3]: Стиль coding'а для группы....
От: Костя Ещенко Россия  
Дата: 27.01.05 01:39
Оценка: +3
Здравствуйте, McSeem2, Вы писали:

WH>>Соглашениями по оформлению кода команды RSDN


MS>Чисто из любопытства — чем вызвано требование использовать табуляцию для отступов в начале строки? Есть этому какое-то разумное rationale?


Чтобы сдвинуть курсор (или подвинуть всю строку) на один отступ влево при использовании табуляции надо один раз нажать '<-' (или backspace/delete), а при использовании пробелов — 4 раза. Для меня это достаточная причина использовать табы.
На самом деле, люди не читают газеты, они принимают их каждое утро, так же как ванну. ©Маршалл Мак-Льюэн
Re[6]: Стиль coding'а для группы....
От: McSeem2 США http://www.antigrain.com
Дата: 27.01.05 01:41
Оценка: +2
Здравствуйте, IT, Вы писали:

MS>>Дык от этого форматирование неизбежно отъезжает... Например, это противоречит требованию не писать длинных строк.


IT>Почему? Какая разница ставишь ты 4 пробела или делаешь табуляцию в размером в 4 символа?


Разница огромная. Вот текст, в том виде, в котором он задумывался (отступ==табуляция==4):
    if(app->m_ctrls.on_mouse_button_down(app->m_specific->m_cur_x, 
                                         app->m_specific->m_cur_y))
    {
        app->on_ctrl_change();
        app->force_redraw();
    }
    else
    {
        if(app->m_ctrls.in_rect(app->m_specific->m_cur_x, 
                                app->m_specific->m_cur_y))
        {
            if(app->m_ctrls.set_cur(app->m_specific->m_cur_x, 
                                    app->m_specific->m_cur_y))
            {
                app->on_ctrl_change();
                app->force_redraw();
            }
        }
        else
        {
            app->on_mouse_button_down(app->m_specific->m_cur_x, 
                                      app->m_specific->m_cur_y, 
                                      app->m_specific->m_input_flags);
        }
    }



Вот как он выглядит при табуляции 2:

  if(app->m_ctrls.on_mouse_button_down(app->m_specific->m_cur_x, 
                     app->m_specific->m_cur_y))
  {
    app->on_ctrl_change();
    app->force_redraw();
  }
  else
  {
    if(app->m_ctrls.in_rect(app->m_specific->m_cur_x, 
                app->m_specific->m_cur_y))
    {
      if(app->m_ctrls.set_cur(app->m_specific->m_cur_x, 
                  app->m_specific->m_cur_y))
      {
        app->on_ctrl_change();
        app->force_redraw();
      }
    }
    else
    {
      app->on_mouse_button_down(app->m_specific->m_cur_x, 
                    app->m_specific->m_cur_y, 
                    app->m_specific->m_input_flags);
    }
  }


А вот так при табуляции 8:

        if(app->m_ctrls.on_mouse_button_down(app->m_specific->m_cur_x, 
                                                                                 app->m_specific->m_cur_y))
        {
                app->on_ctrl_change();
                app->force_redraw();
        }
        else
        {
                if(app->m_ctrls.in_rect(app->m_specific->m_cur_x, 
                                                                app->m_specific->m_cur_y))
                {
                        if(app->m_ctrls.set_cur(app->m_specific->m_cur_x, 
                                                                        app->m_specific->m_cur_y))
                        {
                                app->on_ctrl_change();
                                app->force_redraw();
                        }
                }
                else
                {
                        app->on_mouse_button_down(app->m_specific->m_cur_x, 
                                                                          app->m_specific->m_cur_y, 
                                                                          app->m_specific->m_input_flags);
                }
        }

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

IT>Это так же сложно как и придерживаться в команде любых конвенций. Поначалу коробит чужой стиль, руки тянутся сделать по своему. Потом привыкаешь.


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

В борьбе имха с имхом неизбежно побеждает имхо, имхо.
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re[6]: Стиль coding'а для группы....
От: Шахтер Интернет  
Дата: 27.01.05 01:49
Оценка: -2 :))
Здравствуйте, IT, Вы писали:

IT>Здравствуйте, Шахтер, Вы писали:


MS>>>>Чисто из любопытства — чем вызвано требование использовать табуляцию для отступов в начале строки? Есть этому какое-то разумное rationale?


IT>>>Разные программисты предпочитают устанавливать разный размер отступа в своих редакторах. Кому-то нравится 4 символа, кому-то 2, кому-то 8. Использование табулиции в качестве отступа позволяет удовлетворить потребности всех.


Ш>>Наоборот.


IT>Этот как наоборот? Я ставлю в коде 4 пробела, ты 2 и все довольны?


Где именно ты ставишь 4 пробела? А ты не подумал, что отступ -- величина не постоянная? Разные элементы кода можно отступать на разное число пробелов. Например, я обычно делаю отступы так

class ISomeObjectImp : public ISomeObject
 {
   IContext *ctx;
 
  public:
  
   explicit ISomeObjectImp(IContext *ctx);
   ~ISomeObjectImp();


Какие тут на фиг табуляции?

А, кроме того, табуляция сильно мешает двигаться по тексту. Если я жму стрелку вниз, то я ожидаю, что курсор сдвинется точно вниз на одно знако-место. При наличии табуляций это не так. Курсор становится бешенным.
... << RSDN@Home 1.1.0 stable >>
В XXI век с CCore.
Копай Нео, копай -- летать научишься. © Matrix. Парадоксы
Re[3]: Стиль coding'а для группы....
От: Шахтер Интернет  
Дата: 27.01.05 01:49
Оценка:
Здравствуйте, IT, Вы писали:

IT>Здравствуйте, Шахтер, Вы писали:


Ш>>Не очевидно. Лучше, когда человек работает как привык, а не как навязали.


IT>Привычки иногда бывают вредные. А если мне после тебя сопровождать твой код, то при отсутствии единого стиля, я его скорее всего выброшу и перепишу по новой.


Проще выучить мой стиль будет.
... << RSDN@Home 1.1.0 stable >>
В XXI век с CCore.
Копай Нео, копай -- летать научишься. © Matrix. Парадоксы
Re[7]: Стиль coding'а для группы....
От: IT Россия linq2db.com
Дата: 27.01.05 01:49
Оценка: 4 (1)
Здравствуйте, McSeem2, Вы писали:

IT>>Почему? Какая разница ставишь ты 4 пробела или делаешь табуляцию в размером в 4 символа?


MS>Разница огромная. Вот текст, в том виде, в котором он задумывался (отступ==табуляция==4):


Гы. Ну так тут нужно прежде всего определить само понятие отступа. Я всегда в подобных случаях сразу под ифом начинаю ставить пробелы. Исключением являются случаи, когда нужна ещё только одна табуляция, которая не испортит картины.

ЗЫ. Ctrl+R+W у меня всегда включены (стелочки и точечки перекрашены и почти сливаются с фоном). Так что проблем видеть где что я не испытываю. А уж проблем типа "нудно форматировать текст" и подавно.
Если нам не помогут, то мы тоже никого не пощадим.
Re[8]: Стиль coding'а для группы....
От: McSeem2 США http://www.antigrain.com
Дата: 27.01.05 02:18
Оценка:
Здравствуйте, IT, Вы писали:

MS>>Разница огромная. Вот текст, в том виде, в котором он задумывался (отступ==табуляция==4):


IT>Гы. Ну так тут нужно прежде всего определить само понятие отступа. Я всегда в подобных случаях сразу под ифом начинаю ставить пробелы. Исключением являются случаи, когда нужна ещё только одна табуляция, которая не испортит картины.


Действительно, вполне можно писать текст "прельстиво" при любой табуляции:

Но... Это ж надо быть мазохистом

IT>ЗЫ. Ctrl+R+W у меня всегда включены (стелочки и точечки перекрашены и почти сливаются с фоном).


Ой, как оно замусоривает текст... К тому же, подобная фича есть не во всех редакторах. Следовательно, налагается дополнительное ограничение — пользоваться только теми редакторами, где оно есть.

IT>Так что проблем видеть где что я не испытываю. А уж проблем типа "нудно форматировать текст" и подавно.


Это означает, что требования к оформлению кода команды RSDN не полны. Надо как минимум дополнить пунктом, что "Текст не должен терять структуры при любом размере табуляции, отличном от 0".

Поскольку далеко не все включают точечки и стрелочки, обеспечить выполнение этого пункта становится тяжелой задачей. Следовательно, вполне логичным будет добавить пункт "включать точечки и стрелочки" и постоянно анализировать "красивость" с точки зрения табуляций . А поскольку не все редакторы поддерживают подобную возможность, вполне логичным будет включить в требования "в качестве редактора использовать VS и только VS, как гарантированно обеспечивающую данную возможность". Отсюда логически вытекает требование "писать программы под MS VS и только под нее".

Ладно-ладно — это я просто гоню...
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re[9]: Стиль coding'а для группы....
От: IT Россия linq2db.com
Дата: 27.01.05 02:51
Оценка: 1 (1) +1
Здравствуйте, McSeem2, Вы писали:

MS>Действительно, вполне можно писать текст "прельстиво" при любой табуляции:

MS>...
MS>Но... Это ж надо быть мазохистом

Ну да. Сначала нестерпимо больно, но потом начинаешь получать удовольствие Впрочем, у меня всегда красивый ровный код вызывал интерес и уважение, а грязненький в зависимости от запущенности чувства вплоть до тошноты.

IT>>ЗЫ. Ctrl+R+W у меня всегда включены (стелочки и точечки перекрашены и почти сливаются с фоном).


MS>Ой, как оно замусоривает текст... К тому же, подобная фича есть не во всех редакторах. Следовательно, налагается дополнительное ограничение — пользоваться только теми редакторами, где оно есть.


Я там выделил



MS>Это означает, что требования к оформлению кода команды RSDN не полны. Надо как минимум дополнить пунктом, что "Текст не должен терять структуры при любом размере табуляции, отличном от 0".


Come on!
Если нам не помогут, то мы тоже никого не пощадим.
Re[7]: Стиль coding'а для группы....
От: IT Россия linq2db.com
Дата: 27.01.05 02:51
Оценка: +2 -1
Здравствуйте, Шахтер, Вы писали:

Ш>Где именно ты ставишь 4 пробела? А ты не подумал, что отступ -- величина не постоянная?


Впервые об этом слышу.

Ш>Разные элементы кода можно отступать на разное число пробелов. Например, я обычно делаю отступы так


Можно вообще всё делать без отступов. Но я говорю о всеобще принятой практике.

Ш>А, кроме того, табуляция сильно мешает двигаться по тексту. Если я жму стрелку вниз, то я ожидаю, что курсор сдвинется точно вниз на одно знако-место. При наличии табуляций это не так. Курсор становится бешенным.


Бешеных курсоров пока видеть не доводилось
Если нам не помогут, то мы тоже никого не пощадим.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.