Главная страница
    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)

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


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

Eraser ©   (06.11.07 13:07) [35]

Я не знала. Честно. Но так удобнее отличить, что внутренне, а что внешнее.


 
Kerk ©   (2007-11-06 14:14) [42]

Desdechado ©   (06.11.07 13:23) [37]

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

Навел курсор и посмотрел


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

Kerk ©   (06.11.07 14:14) [42]

ага, особенно когда код редактируешь в блокноте ))) или в pico в линуксе. Хорогие привычки, они везде помогают. Даже если где-то избыточны.


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

> Хорогие привычки, они везде помогают. Даже если где-то избыточны.

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


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


> Галинка ©   (06.11.07 14:16) [43]

А часто ты код редактируешь в блокноте?


 
Игорь Шевченко ©   (2007-11-06 14:25) [46]

Kolan ©   (06.11.07 14:22) [44]


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


Сказал как отрезал

Kerk ©   (06.11.07 14:22) [45]


> А часто ты код редактируешь в блокноте?


Я часто. Не в блокноте, а в FAR-е. И компиляцию в командной строке делаю, потому как одним батником умудряюсь около 300 проектов собрать.

Я тоже что-то делаю не так ?


 
oldman ©   (2007-11-06 14:30) [47]


> Игорь Шевченко ©   (06.11.07 14:25) [46]
> И компиляцию в командной
> строке делаю, потому как одним батником умудряюсь около
> 300 проектов собрать.


Я думал я один такой отсталый...
Это еще от ДОС-времен осталось - компиляция и сборка батником.

Все таки старая гвардия есть старая гвардия.
Если работает - "сынок! только ничего руками не трогай!!!"...
:)


 
clickmaker ©   (2007-11-06 14:33) [48]


> около 300 проектов собрать

ого!


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

Kerk ©   (06.11.07 14:22) [45]

сейчас частенько. Правда не в блокноте, а в pico.


 
Sonia ©   (2007-11-06 14:36) [50]


> Сусл ©   (06.11.07 11:20) [23]
> я:
> 1. локальные - с префиксом k

А как вы отличаете локальные integer от double? что-то типа kIntNumber, kDoubNumber?


 
Игорь Шевченко ©   (2007-11-06 14:37) [51]

Посчитал. 347 штук :)


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


> Я думал я один такой отсталый...
> Это еще от ДОС-времен осталось - компиляция и сборка батником.
>


Дело не в этом. Дело в том, что у меня не получилось иначе собрать такое количество :)


 
Kolan ©   (2007-11-06 14:40) [53]

> польская натация

венгерская конечно :)


 
Kolan ©   (2007-11-06 14:40) [54]

— Одним словом болгорин
— так он же румын
— да!? А какая разнца?
©
:)


 
oldman ©   (2007-11-06 14:44) [55]


> Игорь Шевченко ©   (06.11.07 14:38) [52]


Игорь! А зачем оправдываться при похвале???
:)))


 
clickmaker ©   (2007-11-06 14:45) [56]


> [51] Игорь Шевченко ©   (06.11.07 14:37)
> Посчитал. 347 штук :)

вот где настоящая жизнь! )
а мы тут... "иконку в трей", "как переменную обозвать"... )


 
oldman ©   (2007-11-06 14:46) [57]


> clickmaker ©   (06.11.07 14:45) [56]
> вот где настоящая жизнь! )


Это только он тут на форуме вещает.
А в это время 347 рабов ...
:)


 
clickmaker ©   (2007-11-06 14:48) [58]


> А в это время 347 рабов

пишут в ФАРе по проекту, которые потом Игорь небрежным движением руки собирает одним батником :)


 
Джо ©   (2007-11-06 15:14) [59]

> [58] clickmaker ©   (06.11.07 14:48)
>
> > А в это время 347 рабов
>
> пишут в ФАРе по проекту, которые потом Игорь небрежным движением
> руки собирает одним батником :)

А батник пишут болгары. Или румыны. Или венгры. :)


 
Desdechado ©   (2007-11-06 15:18) [60]

> Навел курсор и посмотрел
У меня курсор часто другим делом занят. Да и не трогаю я почти мышь при кодировании, клавой все быстрее.


 
oldman ©   (2007-11-06 15:22) [61]


> Desdechado ©   (06.11.07 15:18) [60]
> У меня курсор часто другим делом занят.


Если не секрет, каким делом занят твой курсор, пока ты с клавы кодишь???
:)))


 
clickmaker ©   (2007-11-06 15:25) [62]


> каким делом занят твой курсор

чем бы дитя ни тешилось, лишь бы не курсором )


 
Kerk ©   (2007-11-06 16:03) [63]

Игорь Шевченко ©   (06.11.07 14:25) [46]

> Я часто. Не в блокноте, а в FAR-е.

Я тоже. Но отказываясь от IDE, нужно понимать, что лишаешься многих ее функций (еще и отладчик например). Это не повод уродовать текст программы префиксами


 
Игорь Шевченко ©   (2007-11-06 16:19) [64]

Kerk ©   (06.11.07 16:03) [63]


> Я тоже. Но отказываясь от IDE, нужно понимать, что лишаешься
> многих ее функций (еще и отладчик например). Это не повод
> уродовать текст программы префиксами


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


 
Anatoly Podgoretsky ©   (2007-11-06 19:39) [65]

> Акакий  (06.11.2007 04:55:00)  [0]

Бейсик PDP учил?


 
Anatoly Podgoretsky ©   (2007-11-06 19:40) [66]

> Джо  (06.11.2007 05:15:03)  [3]

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


 
Anatoly Podgoretsky ©   (2007-11-06 19:41) [67]

> Riply  (06.11.2007 05:19:05)  [5]

Я вот тоже думаю, почему я плохо сплю третий день, оказывается снег виноват.


 
Anatoly Podgoretsky ©   (2007-11-06 19:42) [68]

> Джо  (06.11.2007 05:36:07)  [7]

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

Неверно, должно быть так

i25 := i1 + i24;

Именно без комментария, а то размечтался.



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

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

Наверх





Память: 0.63 MB
Время: 0.048 c
2-1194961617
alll_23
2007-11-13 16:46
2007.12.09
TCanvas


2-1195023978
andreoman
2007-11-14 10:06
2007.12.09
по каким портам происходит ping


3-1186388283
DelphiLexx
2007-08-06 12:18
2007.12.09
Импортирование данных из XML


15-1194413323
Steep
2007-11-07 08:28
2007.12.09
SQL запрос


2-1195052593
Pacific
2007-11-14 18:03
2007.12.09
Проблема





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский