Coding style...

Кто какой вариант кода предпочитает

Вариант 1
15
13%
Вариант 1
15
13%
Вариант 2
34
30%
Вариант 2
34
30%
Вариант 3
3
3%
Вариант 3
3
3%
Свой вариант
5
4%
Свой вариант
5
4%
 
Total votes: 114

User avatar
mikeG
Уже с Приветом
Posts: 8485
Joined: 02 Aug 2003 01:32
Location: SPb->SFBA

Post by mikeG »

Gennadiy wrote:А если именно вы вырабатываете этот стандарт? У меня это уже второй раз происходит.


А зачем велосипед изобретать?
http://java.sun.com/docs/codeconv/
http://www.possibility.com/Cpp/CppCodingStandard.html
http://www.icsharpcode.net/TechNotes/SharpDevelopCodingStyle03.pdf
User avatar
Gennadiy
Уже с Приветом
Posts: 11332
Joined: 30 Mar 2000 10:01
Location: Ice Storm Town

Post by Gennadiy »

theukrainian wrote:В C++, как и в C '_' перед началом identifier зарезервировано для internal use of implementation.
Под рукой нету стандарта, но вот что я нашел в comp.lang.c++:

А у меня не C++ или C. C# однако. :mrgreen:
User avatar
Gennadiy
Уже с Приветом
Posts: 11332
Joined: 30 Mar 2000 10:01
Location: Ice Storm Town

Post by Gennadiy »

mikeG wrote:
Gennadiy wrote:А если именно вы вырабатываете этот стандарт? У меня это уже второй раз происходит.


А зачем велосипед изобретать?
http://java.sun.com/docs/codeconv/
http://www.possibility.com/Cpp/CppCodingStandard.html
http://www.icsharpcode.net/TechNotes/SharpDevelopCodingStyle03.pdf

А чем они лучше моего? :pain1:
Нет - я конечно их читал, и взял как считаю лучшее из разных предложений. Да еще и свое добавил :wink:
User avatar
Sergey_P
Уже с Приветом
Posts: 5280
Joined: 01 Nov 2000 10:01
Location: (RU->WA->NJ->?)

Post by Sergey_P »

yocto wrote:Тггда лучше так

Code: Select all

   while
   (
   1
   ==
   1
   {
   };

Ну этооткровенное жульничество, а вот эклипс интересно форматирует объявления методов

Code: Select all

   void fnName(
      String argumentName1,
      String argumentName2,
      String argumentName3,
      String argumentName4,
      String argumentName5) {

   }
User avatar
Sergey_P
Уже с Приветом
Posts: 5280
Joined: 01 Nov 2000 10:01
Location: (RU->WA->NJ->?)

Post by Sergey_P »

Veselchak U wrote:Я привык ставить фигурные скобки всегда, даже если они для одного statement-а. Автоматом избегается ошибка, когда добавляется statement, а скобки ставить забываются...

Аналогично. Предпочитаю 1. т.к. привык. Работал только в конторах где измерялась способность решить проблему в выдененное время .
IMHO читабельность 1 и 2 отличается непринцвпиально, зато больше кода в экране умещается
User avatar
theukrainian
Уже с Приветом
Posts: 2506
Joined: 13 Jan 2003 22:34
Location: Kiev :: Los Angeles, CA

Post by theukrainian »

Veselchak U wrote:
CTAC_P wrote:
DenisM wrote:1) А кто какой tab/ident size использует?

:х
Tab = Tab! :umnik1:
В редакторе поставьте, насколько вам двигать.


Только если это делаете в Visual Studio, не забудьте выбрать опцию, чтобы вместо таба редактор поставил пропуски. А то другие редакторы, типа vi, фигово воспринимают табы, и код читать невозможно; приходится переформатировать. :umnik1:

Vi воспринимает tabs очень даже нормально. Что значит "фигово воспринимает" ?

денис
User avatar
шпиён
Уже с Приветом
Posts: 3459
Joined: 29 Oct 2002 20:08
Location: US

Post by шпиён »

Veselchak U wrote:Я привык ставить фигурные скобки всегда, даже если они для одного statement-а. Автоматом избегается ошибка, когда добавляется statement, а скобки ставить забываются...


same here
User avatar
шпиён
Уже с Приветом
Posts: 3459
Joined: 29 Oct 2002 20:08
Location: US

Post by шпиён »

Sergey_P wrote:а вот эклипс интересно форматирует объявления методов

Code: Select all

   void fnName(
      String argumentName1,
      String argumentName2,
      String argumentName3,
      String argumentName4,
      String argumentName5) {

   }


Я тоже примерно так делаю, ручками. Только еще комментарии к парамертам после каждого.
А, не совсем, единственный параметр будет вместе, а последняя скобка (и, возможно, const, throw-spec и/или "=0") после списка на отдельной строке.
Tardes
Уже с Приветом
Posts: 1471
Joined: 02 Sep 2001 09:01
Location: Earth

Re: Coding style...

Post by Tardes »

Проголосовал за Вариант 2, хотя есть некоторые отличия:

Code: Select all

function f ()
{
    while ( ... )
        {
        //line 1
        }

    if ( ... )
        {
        //line 1
        //line 2
        ...
        //line N
        }
}
staff
Уже с Приветом
Posts: 356
Joined: 13 Feb 2000 10:01

Post by staff »

Sergey_P wrote:
yocto wrote:Тггда лучше так

Code: Select all

   while
   (
   1
   ==
   1
   {
   };

Ну этооткровенное жульничество, а вот эклипс интересно форматирует объявления методов

Code: Select all

   void fnName(
      String argumentName1,
      String argumentName2,
      String argumentName3,
      String argumentName4,
      String argumentName5) {

   }


Да в эклипсе это все рулиться. А по умолчанию он настроен под Java Codding Convention oт Sun, в часности и приведенный вами пример.
User avatar
adb
Уже с Приветом
Posts: 9275
Joined: 14 Dec 2001 10:01
Location: Российская Федерация

Post by adb »

В C++, как и в C '_' перед началом identifier зарезервировано для internal use of implementation.


'_' используют после названия. Т.е variable_, вместо m_variable
User avatar
KVA
Уже с Приветом
Posts: 5347
Joined: 03 Feb 1999 10:01
Location: NJ, USA

Post by KVA »

adb wrote:
В C++, как и в C '_' перед началом identifier зарезервировано для internal use of implementation.


'_' используют после названия. Т.е variable_, вместо m_variable


Ужасный стиль.
User avatar
Sergey_P
Уже с Приветом
Posts: 5280
Joined: 01 Nov 2000 10:01
Location: (RU->WA->NJ->?)

Post by Sergey_P »

staff wrote:

Code: Select all

   void fnName(
      String argumentName1,
      String argumentName2,
      String argumentName3,
      String argumentName4,
      String argumentName5) {

   }


Да в эклипсе это все рулиться. А по умолчанию он настроен под Java Codding Convention oт Sun, в часности и приведенный вами пример.[/quote]
Я в курсе, просто заташился, что он автоматом так делает если объявдение длинное (т.е. "void fnName(String arg1)" он в одну строку оставит).
В общем с Mic-ом на проловину категорически несогласен ( VS rules true; остальноe - сакс !true )
User avatar
Sergey_P
Уже с Приветом
Posts: 5280
Joined: 01 Nov 2000 10:01
Location: (RU->WA->NJ->?)

Post by Sergey_P »

шпиён wrote:Я тоже примерно так делаю, ручками. Только еще комментарии к парамертам после каждого.

Це Java, у нас комментарии к парамертам выше идут (иначе их в сгенереной документации видно небудет).
User avatar
mikeG
Уже с Приветом
Posts: 8485
Joined: 02 Aug 2003 01:32
Location: SPb->SFBA

Post by mikeG »

Gennadiy wrote:
mikeG wrote:
Gennadiy wrote:А если именно вы вырабатываете этот стандарт? У меня это уже второй раз происходит.


А зачем велосипед изобретать?

А чем они лучше моего? :pain1:
Нет - я конечно их читал, и взял как считаю лучшее из разных предложений. Да еще и свое добавил :wink:


Стандарты хороши тем, что они стандартны.
Тем соответственно и лучше :)

Например third party code написанный неизвестно кем в одному
ему известном стиле очень напряжно прививать.
Другое дело - когда есть уверенность что любой код одинаково написан.
User avatar
Gennadiy
Уже с Приветом
Posts: 11332
Joined: 30 Mar 2000 10:01
Location: Ice Storm Town

Post by Gennadiy »

mikeG wrote:
Gennadiy wrote:
mikeG wrote:
Gennadiy wrote:А если именно вы вырабатываете этот стандарт? У меня это уже второй раз происходит.


А зачем велосипед изобретать?

А чем они лучше моего? :pain1:
Нет - я конечно их читал, и взял как считаю лучшее из разных предложений. Да еще и свое добавил :wink:


Стандарты хороши тем, что они стандартны.
Тем соответственно и лучше :)

Например third party code написанный неизвестно кем в одному
ему известном стиле очень напряжно прививать.
Другое дело - когда есть уверенность что любой код одинаково написан.

На самом деле различия между стандартами не существены. Ну там использовать _ вместо м_. Разница не мешает восприятию.
И потом - а кто вам сказал что 3-парти код будет намисам по стандарту?
User avatar
Sergey_P
Уже с Приветом
Posts: 5280
Joined: 01 Nov 2000 10:01
Location: (RU->WA->NJ->?)

Post by Sergey_P »

mikeG wrote:Стандарты хороши тем, что они стандартны.
Тем соответственно и лучше :)

Например third party code написанный неизвестно кем в одному
ему известном стиле очень напряжно прививать.
Другое дело - когда есть уверенность что любой код одинаково написан.


Зажрались Вы батенька. Я, в пследнее время, счастлив если один файл целиком написан в одном стиле и вполне доволен если в нем вообще присутствует человеческое форматирование (пусть и с незначительными девиациями как в предложенных вариантах).
Приходится мирится с
String kakoy_nibud_flag = “yes”;
String flag_po_sosedstwu = “N”;
и объяснять, что "по стандарту положенно
boolean kakoyNibudFlag = true; Так что в следующий раз, пожалуйста пишите на Java в Java стиле а не Oracle"
User avatar
Gennadiy
Уже с Приветом
Posts: 11332
Joined: 30 Mar 2000 10:01
Location: Ice Storm Town

Post by Gennadiy »

Sergey_P wrote:
mikeG wrote:Стандарты хороши тем, что они стандартны.
Тем соответственно и лучше :)

Например third party code написанный неизвестно кем в одному
ему известном стиле очень напряжно прививать.
Другое дело - когда есть уверенность что любой код одинаково написан.


Зажрались Вы батенька. Я, в пследнее время, счастлив если один файл целиком написан в одном стиле и вполне доволен если в нем вообще присутствует человеческое форматирование (пусть и с незначительными девиациями как в предложенных вариантах).
Приходится мирится с
String kakoy_nibud_flag = “yes”;
String flag_po_sosedstwu = “N”;
и объяснять, что "по стандарту положенно
boolean kakoyNibudFlag = true; Так что в следующий раз, пожалуйста пишите на Java в Java стиле а не Oracle"

Это точно. Я работал в одной конторе на Украине - там было несколько орлов с таким интересным стилем...
Один очень любил именовать переменные
a1, а2, ... , а38. Функции run1, run2, run3. И главное он помнил, что каждая из них означает! 8)
Другой использовал имена перемнных и методы в стиле:
a_poshla_ty_na_fig, SdelajChtoNibudNakonez, ni_figa, или вообще неприличные слова в перемежку с однобуквеными именами функций. Мне как то пришлось разбирать одну его функцию под названием Vpered длиной в 2100 строчек (64К). 8O Ее пришлось перделывать потому что это был лимит тогдашних редакторов - и она не могла больше расти.
Третий постоянно участвовал в каком-то религиозном течении, поэтому из его кода приходилось ваюживать коментарии то в виде Кришнаитских мантр, то лозунгов Белого Братства, а то и восклицаний "Хвала Сатане" :pain1:
Вот такая была командочка.С тех пор я понял непреходящее значение соблюдения стиля.
User avatar
Flying Hen
Уже с Приветом
Posts: 1377
Joined: 14 May 2003 20:37
Location: NY, USA

Post by Flying Hen »

Моя работа не меряется килограммами, слава те Господи, поэтому я пользуюсь первым вариантом. Это экономно, к чему расходовать лишнюю строчку? Кроме того мне приходится писать на нескольких языках, в одном из них аналогичный синтаксис будет выглядеть так:

Code: Select all


IF (...) THEN
   -- line 1
ELSEIF (...) THEN
   -- line 2
ELSE
   -- line 3
END IF;


IF (...)
THEN
   -- line 1
ELSEIF (...)
THEN
   -- line 2
ELSE
   -- line 3
END IF;



Первый вариант ИМХО более нагляден, так как четко видно три куска для IF, ELSEIF и ELSE. Второй смотрится более "бардачно". Ограничители блоков на отдельной строке в-общем то не нужны, т.к. это не создают визуальности, а только загромождает текст. Поэтому открывающая скобка у меня идет на предыдущую строку, а закрывающая занимает разделительную строку между блоками.

Еще обожаю Camel Notation, префиксы, суффиксы а также приставки и окончания ;) Ненавижу когда используют символы табуляции, переносишь в другой редактор и все разъезжается нафиг, indent 3 пробела самое оно.
User avatar
OBender
Уже с Приветом
Posts: 1564
Joined: 27 Nov 2001 10:01
Location: Live free or die

Post by OBender »

Про символы табуляции вот тут говорили много. Я их очень люблю и уважаю. А по поводу разных редакторов так оно везде настраимается. А с пробелами фиг вам. А если мне 3 пробела не нравятся я допустим привык к 5 или там к 4. А так когда все используют табуляцию то пофиг у кого сколько. Каждый видет то что ему нравится.
Интересный вы человек! Все у вас в порядке. Удивительно, с таким счастьем - и на свободе. (C) О.Бендер
User avatar
adb
Уже с Приветом
Posts: 9275
Joined: 14 Dec 2001 10:01
Location: Российская Федерация

Post by adb »

Flying Hen wrote:

Code: Select all


IF (...) THEN
   -- line 1
ELSEIF (...) THEN
   -- line 2
ELSE
   -- line 3
END IF;



Модула, что ли?
User avatar
Gennadiy
Уже с Приветом
Posts: 11332
Joined: 30 Mar 2000 10:01
Location: Ice Storm Town

Post by Gennadiy »

adb wrote:
Flying Hen wrote:

Code: Select all


IF (...) THEN
   -- line 1
ELSEIF (...) THEN
   -- line 2
ELSE
   -- line 3
END IF;



Модула, что ли?

Похоже на PL/SQL
User avatar
Flying Hen
Уже с Приветом
Posts: 1377
Joined: 14 May 2003 20:37
Location: NY, USA

Post by Flying Hen »

Почти угадали ;) Это SQL PL, его дибитушный аналог.

Return to “Вопросы и новости IT”