Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2007.12.09;
Скачать: [xml.tar.bz2];

Вниз

Как Вы обычно называете переменные типа :   Найти похожие ветки 

 
Акакий   (2007-11-06 04:55) [0]

Single, string, Byte, Boolean ? Ну и другие тоже.

Хочется назвать s1, b1. По первой букве, но тогда будет сразу неочевидно. Что посоветуете?


 
Riply ©   (2007-11-06 05:10) [1]

Я стараюсь называть по ее "смылу".
Например, переменную, для временного хранения результатов API ф-ии,
я бы назвала так: MyTemporaryVarForHoldResultOfFunctions :)


 
Джо ©   (2007-11-06 05:13) [2]

> Хочется назвать s1, b1.

Порочная практика.
Переменные должны носить осмысленные имена. За исключением, пожалуй, традиционных переменных цикла вроде i.
А префикс для определения типа (тут могут со мной поспорить) вообще излишен в языке со строгой типизацией. Да и выглядит уродливо (IMHO).


 
Джо ©   (2007-11-06 05:15) [3]

То есть, Акакий, когда я вижу такое:
var
 i1: Integer;
...
i1 := Length(Str);

я рыдаю, а когда вижу:
var
 StrLength: Integer;
...
StrLength := Length(Str)

душа моя наполняется радостью :)


 
Джо ©   (2007-11-06 05:17) [4]

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

П.С. И чего это я не сплю?..


 
Riply ©   (2007-11-06 05:19) [5]

> [4] Джо ©   (06.11.07 05:17)
> П.С. И чего это я не сплю?..

Может потому что у нас сейчас идет первый снег ?


 
Джо ©   (2007-11-06 05:32) [6]

> [5] Riply ©   (06.11.07 05:19)
> > [4] Джо ©   (06.11.07 05:17)
> > П.С. И чего это я не сплю?..
>
> Может потому что у нас сейчас идет первый снег ?

У нас уже прошлым утром был «первый» :)


 
Джо ©   (2007-11-06 05:36) [7]

Да, и еще, Акакий.
Примите во внимание, что подобная практика именования переменных, предложенная вами, зачастую порождает следующий бессмысленный и порочный код:

var
 i67: Integer; // Общая сумма
...
i67 := i1 + i24; // Общая сумма = сумма на карточке + сумма в банке


Который, вообще-то мог бы *вообще* обойтись без комментариев. Комментарием в них бы было само осмысленное название переменных:
TotalSumm := SummOnCard + SummInBank.


 
Акакий   (2007-11-06 06:30) [8]


> Riply ©   (06.11.07 05:10) [1]
>
> Я стараюсь называть по ее "смылу".
> Например, переменную, для временного хранения результатов
> API ф-ии,
> я бы назвала так: MyTemporaryVarForHoldResultOfFunctions
> :)


Очень удобно набивать.
А переменные цикла вместо i и j, вы тоже так называете?


 
Акакий   (2007-11-06 06:31) [9]

Удалено модератором
Примечание: Вот ты и добился желаемого, пока три дня РО, но ветку еще не дочитал до конца, возможно это не предел


 
Sergey Masloff   (2007-11-06 06:50) [10]

Акакий   (06.11.07 06:31) [9]
Даже если сейчас все ясно - будет ли ясно годика через четыре? Или позиция не предполагает длительных циклов развития?


 
Акакий   (2007-11-06 07:00) [11]

Поиск элемента в массие. Чего вам не ясно?

Только идиоту будет что-нибудь неясно годика через четыри.


 
Zeqfreed ©   (2007-11-06 08:18) [12]

> Riply ©   (06.11.07 05:10) [1]

res, ret, retval?


 
Zeqfreed ©   (2007-11-06 08:20) [13]

> Акакий   (06.11.07 07:00) [11]

Троллим потихоньку? Ну-ну.


 
Ega23 ©   (2007-11-06 09:12) [14]


> Только идиоту будет что-нибудь неясно годика через четыри.


Ага. Главное в котрольную группу идиотов не попасть.


 
Игорь Шевченко ©   (2007-11-06 09:29) [15]


> Как Вы обычно называете переменные типа


Длинноесамоиндентифицирующеесяимя1, Длинноесамоиндентифицирующеесяимя2,  
Длинноесамоиндентифицирующеесяимя3,  
и т.д.


 
Юрий Зотов ©   (2007-11-06 09:34) [16]

> Акакий

Программа должна увековечивать имя своего гениального создателя. Чтобы и через 4 года любому было сразу понятно, что ее писал не идиот.

Поэтому переменные в ней надо на зывать так: Akaky1, Akaky2, SuperAkaky3, AkakyGenius4, VelikyAkaky5 - и т.д. А имена процедур должны быть глаголами повелительного наклонения и тоже увековечивать имя создателя программы.


 
Alkid ©   (2007-11-06 10:35) [17]

ИМХО это тонкий развод со стороны автора на "пофлеймить".

Если так - автору респект за возможность радостно попинать его ногами и тем самым расслабиться. :)

Если же автор искренен - то ему ещё "учиться, учиться и учиться". :)


 
clickmaker ©   (2007-11-06 10:40) [18]


> Как Вы обычно называете переменные типа

var
 uSeRNaME: string;
 toTAlAmOUnt: integer;
 _DeLIverED_: boolean;


 
korneley ©   (2007-11-06 10:55) [19]

Не вижу ничего плохого в том, чтобы _локальные_ переменные метода называть короткими именами:
s : string;
i : integer;
p : pointer;
Тем более, если таких переменных по одной штуке на каждый тип и тело метода не на 5 экранов


 
isasa ©   (2007-11-06 11:10) [20]

clickmaker ©   (06.11.07 10:40) [18]

:)

Хороший вариант продвинутой Венгерской нотации ....


 
Alkid ©   (2007-11-06 11:11) [21]


> Не вижу ничего плохого в том, чтобы _локальные_ переменные
> метода называть короткими именами:

Соглашусь, но при одном условии - если размер лексической области видимости (lexical scope) для этих переменных не будет превышать размеров одного экрана, иначе читаемость резко упадёт.

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

Для C, С++, Java, C# и прочих подобных им, где блок определяет свою область видимости, ограничение помягче - что бы один лексический блок, в котором такая переменная определяется, не был больше экрана.


 
korneley ©   (2007-11-06 11:14) [22]


> Alkid ©   (06.11.07 11:11) [21]

Ну так об этом и речь. Ясно, что поля объекта, или глобалы какие-нибудь, так называть не есть гуд, а негуд есть. %)


 
Сусл ©   (2007-11-06 11:20) [23]

я:
1. локальные - с префиксом k
2. privaet - с префиксом f
3. параметры - с префиксом a
4. остальная часть - по смыслу. исключения только для индексов масивов - kI, kJ и пр.


 
clickmaker ©   (2007-11-06 11:23) [24]


> 1. локальные - с префиксом k

а почему не L ?


 
DiamondShark ©   (2007-11-06 11:24) [25]


> Сусл ©   (06.11.07 11:20) [23]

а почему k?


 
Думкин ©   (2007-11-06 11:25) [26]

а потому что на клавише k латинской русская Л(окальные). :)


 
isasa ©   (2007-11-06 11:54) [27]

Сусл ©   (06.11.07 11:20) [23]
Думкин ©   (06.11.07 11:25) [26]


:) Судя по "privaet" пишем на C#, так там, по моему, можно тупо и русскими набрать, а то, ни в жисть бы не догадался...


 
Ega23 ©   (2007-11-06 12:18) [28]

Именование переменных (объектов, юнитов, имён таблиц в БД, название колонок, ХП и пр.) зависит исключительно от той семантики, которая принята в данный момент времени данной группой разработчиков.
В случае, если проект весь разрабатывается мною, то я применяю свою совственную модель семантики, которая сформировалась за несколько лет работы.

Так что вопрос "Как именно вы именуете переменные" начисто лишён смысла.


 
Галинка ©   (2007-11-06 12:31) [29]

Почитай Венгерскую Нотацию Помогает.


 
Игорь Шевченко ©   (2007-11-06 12:32) [30]

Один мой коллега в эпоху внедрения венгерской нотации на фирме (был такой грех) активно подхватил это начинание.
Смотрю я в код и вижу объявление
var
 lpFoo: Byte;
...

Спрашиваю, почему переменная типа Byte имеет такой префикс, на что коллега, смотря невинным взглядом, отвечает: "Ну как же, lp это локальная переменная".


 
clickmaker ©   (2007-11-06 12:35) [31]


> [29] Галинка ©   (06.11.07 12:31)
> Почитай Венгерскую Нотацию Помогает

не надо читать венгерскую нотацию, если конечно не хочешь стать пожизненным адептом программирования на API.
А то есть любители обзывать члены класса или структур типа intSize или strUserName. Если код не документирован, а полей - туча, то даже code insight хреново помогает...


 
Игорь Шевченко ©   (2007-11-06 12:52) [32]


> не надо читать венгерскую нотацию


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


 
Галинка ©   (2007-11-06 12:56) [33]

clickmaker ©   (06.11.07 12:35) [31]

так надо читать не Системную Венгерскую, а оригинальную, for Application. Там помнится тупизма с отражением ТИПА переменной не было. Там под типом понимали немного другое. Т.е. физический (и только в некоторых случаях программный)  смысл переменных. Так например для индекса - i, для количественных целых (натуральных в смысле) - n, для массива - ar. Короче в этом есть какой-то смысл. И ИМХО это имеет смысл если все это поддерживают.

А поводу полей, я как-то привыкла, что Поле класса "звучит" так же, как в последствии могло бы "звучать" Свойство, но начинается с маленькой буквы и подчеркивания. Т.е. если нужно свойство Ширина, то поле будет называться _width, а Свойство - Width. Поля все приватные, в свойствах открываем тольео то, что действительно надо.


 
clickmaker ©   (2007-11-06 13:02) [34]


> [33] Галинка ©   (06.11.07 12:56)

не, ну для общего развития, конечно, читать полезно. Но тогда поголовно всем.
А то вот придет кто-то, не читавший этого Спольски, и будет тупо втыкать, а что это у меня тут usName, а вот тут - sName? :)


 
Eraser ©   (2007-11-06 13:07) [35]


> Сусл ©   (06.11.07 11:20) [23]


> локальные - с префиксом k

в идеале, других и быть не должно, а если есть, то в виде исключения ;-)

> Галинка ©   (06.11.07 12:56) [33]


> Т.е. если нужно свойство Ширина, то поле будет называться
> _width, а Свойство - Width.

в C++ по одной из нотаций принято private поля и методы называть, начиная с _.
---
В Delphi всегда примером был VCL.


 
Сусл ©   (2007-11-06 13:07) [36]


>  [24] clickmaker ©   (06.11.07 11:23)
> > 1. локальные - с префиксом k
> а почему не L ?
>  [25] DiamondShark ©   (06.11.07 11:24)
> > Сусл ©   (06.11.07 11:20) [23]
> а почему k?


1. Очень хорошо визуально видится
2. Набирать удобно.
3. 10 лет так пишу, не помню всего :)


 
Desdechado ©   (2007-11-06 13:23) [37]

Я переменных не нумерую. Осмысленные имена даю.
Краткие имена вида i, s применяю только в очевидных местах, в качестве локальных в коротких процедурах.
Спереди я действительно пишу букву типа (для простых) или комбинацию букв (для классов), но по своему принципу, а не тупо отрезая первую букву.
Например:
nFieldCount: Integer;
cInputString: String;
lRequired: Boolean;
cbxStatus: TComboBox;
panDesigner: TPanel;
btnOk: TBitBtn;

Префиксная запись мне лично удона тем, что нет нужды вспоминать (или ползти в начало процедуры), какого типа переменная, если вижу ее в коде.


 
Галинка ©   (2007-11-06 14:06) [38]

clickmaker ©   (06.11.07 13:02) [34]

ну так ее и дают на первом вводном уроке в Си


 
Галинка ©   (2007-11-06 14:10) [39]

Desdechado ©   (06.11.07 13:23) [37]

аналогично. В последнее время для индексов (когда использую) применяю что-то типа curInd.

А про то, чтобы переменные были видны без листания, так тут Рипли кажется писала, что за функцию длиннее скольки-то строк лишать премии. Я ЗА.


 
clickmaker ©   (2007-11-06 14:10) [40]


> [38] Галинка ©   (06.11.07 14:06)

а мне не давали. Я уж потом из книги Чарли Калверта узнал про нее



Страницы: 1 2 вся ветка

Форум: "Прочее";
Текущий архив: 2007.12.09;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.55 MB
Время: 0.044 c
3-1186423517
Анна
2007-08-06 22:05
2007.12.09
запрос в сводную таблицу Excel


6-1175602922
user51
2007-04-03 16:22
2007.12.09
Как лучше реализовать пересылку пакетов


15-1194605822
boriskb
2007-11-09 13:57
2007.12.09
Это что? Сайт вроде солидный


2-1194898934
datorn
2007-11-12 23:22
2007.12.09
WinApi


11-1181038471
SergeR
2007-06-05 14:14
2007.12.09
Пожелания по сайту KOLnMCK.ru





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский