Текущий архив: 2005.10.09;
Скачать: CL | DM;
Вниз
Поговорим об именах или что в имени тебе моем... Найти похожие ветки
← →
Игорь Шевченко © (2005-09-15 12:29) [0]Читая ветку http://delphimaster.net/view/14-1126765256/ решил найти старый анекдот про программиста, которому сказали, что имена в программе должны быть длинными и самоидентифицирующимися. С тех пор он каждую переменную называл
ДлинноеСамоидентифицирующееИмя1,
ДлинноеСамоидентифицирующееИмя2
и т.д.
Анекдот не нашел, но нашел любопытную статью
http://www.dklab.ru/chicken/nablas/15.html
В которой есть такая фраза:
"Уж не знаю, что сподвигло авторов вводить функции вида GetWindowModuleFileName, когда точно то же самое можно сказать несколько короче: getWinModFName. Так как слово Window, опять же, является очень распространенным, никто и не заподозрит в Win ничего иного. Более того, вполне можно было бы сократить его и до одной-единственной буквы W без потери читабельности. "
Насчет сокращений очень неплохо высказался Е.В.Лишак в "Записках парасистемного программиста":
" Кто не знает утилиты IEBPTPCH ОС ЕС? Вряд ли
кому-нибудь из пользователей или системщиков, обслуживающих
ОС ЕС удалось без нее обойтись. Хуже всего приходится тем
из них, кто встречается с ней реже, чем раз в две недели.
Потому что, несмотря на всю скудность действий, которые
она может выполнить, язык, при помощи которого приходится
управлять этой программой, по своей красоте, сложности и
многогранности, количеству подтекстов слегка смахивает на
язык великого Шекспира.
....
Но и это не все. Исходя из каких соображений имена
этих операндов выбраны такими, а не MAXFIELD и MAXNMS,
например? Ну почему в первом операнде английское слово
FIELD сокращается с выпусканием гласных и берется в
множественном числе, а в другом слово NAME не сокращается и
берется в единственном числе? Только вчера я пользовался
этой утилитой в последний раз после месячного перерыва. С
третьей попытки мне удалось, наконец, получить от нее то,
что я хотел (а ведь я знал уже, с чем имею дело), а теперь
я уже не помню, правильно ли я пишу операнды MAXGROUPS и
MAXLINE. Может, надо MAXGRP и MAXLINES?"
.....
Когда мы садимся в лифт, то мы нажимаем кнопку нужного
нам этажа. Можно даже представить себе лифт, где два
одинаковых ряда кнопок с одними и теми же номерами этажей,
и лифт тронется, лишь если нажаты обе кнопки с одним и тем
же номером. Но очень трудно представить себе лифт, в
котором стоит дисплей, и мы должны набрать на его
клавиатуре фразу на французском языке, количество гласных
букв в которой, деленное на тринадцать, даст в остатке
номер нашего этажа. Вряд ли нас обрадует такой лифт, даже
если в нем на полке будет стоять французско-русский
словарь. Так почему же мы так часто делаем подобные
программные системы?"
В связи с этим вопрос - а как вы считаете, какие имена должны быть в программах - длинные и самоидентифициющиеся или сокращенные ?
← →
Ega23 © (2005-09-15 12:34) [1]В связи с этим вопрос - а как вы считаете, какие имена должны быть в программах - длинные и самоидентифициющиеся или сокращенные ?
Читабельные они должны быть. При этом обязательно нужно соглашение о наименованиях. Я как-то blackman"у приводил выдержку из нашего внутреннего документа, описывающего семантику проекта.
← →
boriskb © (2005-09-15 12:35) [2]Игорь Шевченко © (15.09.05 12:29)
длинные и самоидентифициющиеся или сокращенные ?
Без разницы.
Всё равно должно быть:
1. Единообразие
2. Коментарий при объявлении
← →
boriskb © (2005-09-15 12:36) [3]Игорь Шевченко © (15.09.05 12:29)
Насчет сокращений очень неплохо высказался Е.В.Лишак
А он не только по поводу сокращений хорошо высказался.
Для меня он гуру в свое время :)
← →
TUser © (2005-09-15 12:37) [4]Короткие и самоидентифицирующиеся хотелось бы :)
← →
Игорь Шевченко © (2005-09-15 12:39) [5]boriskb © (15.09.05 12:36) [3]
А ты его знаешь ? :)
← →
Bless © (2005-09-15 12:39) [6]В связи с этим вопрос - а как вы считаете, какие имена должны быть в программах - длинные и самоидентифициющиеся или сокращенные ?
Имхо, по возможности сокращенные и самоидентифицирующиеся. Но уж если стоит выбор или-или... Имена функций и глобальных переменных, опять же имхо, должны быть самоидентифицирующимися, пусть даже в ущерб краткости. А вот имена локальных переменных - по обстоятельствам. Имхо.
← →
Sandman29 (2005-09-15 12:41) [7]Имена должны быть понятны без контекста, так как вникание в контекст требует времени и сил. Поэтому никаких GetWFldNm, а только полностью - GetWindowFieldName, даже если получается очень длинно.
← →
Ega23 © (2005-09-15 12:42) [8]Короче, как говаривал наш ротный - "должно быть безобразно, но - единообразно."
← →
boriskb © (2005-09-15 12:42) [9]Игорь Шевченко © (15.09.05 12:39) [5]
А ты его знаешь ? :)
Переписывался даже :)
← →
Adder © (2005-09-15 12:46) [10]
> В связи с этим вопрос - а как вы считаете, какие имена должны
> быть в программах - длинные и самоидентифициющиеся или сокращенные
> ?
Если работа в группе - имена и оформление должны соответствовать соглашению между участниками группы.
Если только для себя - так, как удобнее самому.
Обычно делаю сокращенными только имена локальных переменных (например, счетчики - i, j, k) и имена процедур и функций, не выходящие за пределы модуля (в секции implementation).
Все остальные - "длинные и самоидентифицирующиеся". Если чувствую, что этого не достаточно - добавляется комментарий.
← →
begin...end © (2005-09-15 12:48) [11]Кому как, а мне GetWindowModuleFileName более понятно, чем getWinModFName.
← →
Думкин © (2005-09-15 12:52) [12]> Adder © (15.09.05 12:46) [10]
Ну вот. И я также.
← →
Гаврила © (2005-09-15 12:54) [13]
> getWinModFName
Для меня это непонятно. Именно - F и mod
Что такое Mod ? Mode?
с F вообще неясно
Я считаю, что можно вводить аббривеатуры в ряде случаев
например
TObjectSpaceItem - TOSItem
TObjectSpaceItemList - TOSItemList
при этом они должны быть полностью единообразны везде, и документированы
← →
ZeroDivide © (2005-09-15 13:00) [14]Длинные и непонятные :)
... А если серьезно: то максимально оптимизированые по 2-м параметрам:
1. Длинна.
2. Точность с которой название отражает суть.
Приоритет за пунктом 2.
← →
Igorek © (2005-09-15 13:03) [15]Имена должны быть читабельные в контексте. Если для этого надо имя делать длинным - то это недостаток дизайна системы.
← →
Игорь Шевченко © (2005-09-15 13:04) [16]Гаврила © (15.09.05 12:54) [13]
> Я считаю, что можно вводить аббривеатуры в ряде случаев
>
> например
В свое время (10 лет назад) были попытки внедрить в нашем сообществе венгерскую нотацию. Префиксы там разные и т.д.
вижу в тексте программы объявление:
var
lpTotal: Integer;
lpFOP: string[2];
Согласно той самой венгерской нотации префикс lp означает long pointer - дальный указатель, спрашиваю у автора, куда указывают его переменные,
автор на голубом глазу отвечает: lp - это локальная переменная.
← →
Юрий Зотов © (2005-09-15 13:08) [17]> имена в программе должны быть длинными и самоидентифицирующимися
Если в этой фразе слово "длинными" заменить на слово "англоязычными", то она станет правильной.
← →
Гаврила © (2005-09-15 13:10) [18]
> lp - это локальная переменная.
LOL
PS
На прошлой работе столкнулся с венгерской нотацией
крови она мне много попортила.... Не люблю ее
← →
Игорь Шевченко © (2005-09-15 13:11) [19]Гаврила © (15.09.05 13:10) [18]
> На прошлой работе столкнулся с венгерской нотацией
> крови она мне много попортила.... Не люблю ее
Я тоже не люблю, но 10 лет назад я был моложе, следовательно, опыта было меньше :) Вроде как оправдание
← →
Юрий Зотов © (2005-09-15 13:17) [20]Венгерская нотация, как и все остальное, будучи употребленной в разумном количестве, в нужном месте и в нужное время - весьма полезна. Примеров в VCL полно (скажем, едва ли не все перечислимые типы).
Если же некий программист полагает, что префикс lp означает локальную переменную, то это у него со знаниями беда, а вовсе не повод отказываться от венгерской нотации совсем.
← →
Mystic © (2005-09-15 13:32) [21]Обычно использую длинные имена + несколько принятых в проекте сокращений/аббревиатур.
При кодиовании математики сокрашения использую чаще, потому как формула зачастую уже несет в себе больше содержательной информации, чем имя. И длинные имена затрудняют чтение формулы. Ну и в таких случаях иногда просто невозможно подобрать адекватное имя, короче 128 символов :)
Ну и иногда выкидываю несколько вспомогательных слов из идентификатора, если достаточно контекста.
← →
DiamondShark © (2005-09-15 13:53) [22]Наконец-то появились средства разработки, полноценно поддерживающие интернационализацию.
Наконец-то можно смело и без проблем использовать идентификаторы
КодКлиента
НазваниеТовара
ОстатокНаСкладе
КодЮридическогоЛица
Если кто-то скажет, что идентификаторы должны быть английскими, пусть сделает себе сепуку.
← →
Игорь Шевченко © (2005-09-15 13:59) [23]Юрий Зотов © (15.09.05 13:17) [20]
> Венгерская нотация, как и все остальное, будучи употребленной
> в разумном количестве, в нужном месте и в нужное время -
> весьма полезна. Примеров в VCL полно (скажем, едва ли не
> все перечислимые типы).
Точнее, только перечислимые
← →
boriskb © (2005-09-15 14:01) [24]DiamondShark © (15.09.05 13:53) [22]
идентификаторы должны быть английскими
Ну может и не должны, но для меня крайне желательны.
Привычка. Например не без труда разбираю 1С проги именно из-за языка.
← →
Igorek © (2005-09-15 14:02) [25]
> Если кто-то скажет, что идентификаторы должны быть английскими,
> пусть сделает себе сепуку.
(.. мысленно - "а если заказчик из-за бугра хочет код?.." )
:)
← →
MeF Dei Corvi © (2005-09-15 14:02) [26]
> префикс lp означает локальную переменную
Интересно, lp = local peremennaya?
При наличии удобной IDE использую длинные и понятные названия (а в VS2005 ещё и описание к ним), без неё программы не пишу :)
← →
Игорь Шевченко © (2005-09-15 14:03) [27]Юрий Зотов © (15.09.05 13:17) [20]
"В Вашем приложении могут быть сотни и тысячи переменных. Чтобы избежать путаницы и долгих размышлений при отладке программы типа: "A[i,j] что за массив и чего он здесь вообще делает?" была предложена и успешно используется стройная система именования переменных и других объектов программы.
По родине предложившего эту систему программиста она названа Венгерская нотация. Система именования очень проста. Прилагаемо к VFP, имя переменной начинается с 2-х буквенного префикса, 1-я буква которого область действия переменной, 2-я буква ее тип. То есть:
lc - (local character) локальная символьная
ld - (local date) локальная типа дата
gn - (global numeric) глобальная числовая
ga - (global array) глобальный массив и так далее"
Я подобного в VCL не наблюдаю.
← →
Германн © (2005-09-15 14:05) [28]А я вот до сих пор пользуюсь ассемблером для 8х51 процессора выпуска 1991 года. Потому, что он единственный, который поддерживает локальные метки, других не нашел. А придумывать уникальные имена для меток терпежу не хватает. :(
← →
boriskb © (2005-09-15 14:09) [29]Юрий Зотов ©
Игорь Шевченко ©
Никогда не находил венгерскую нотацию ни удобной, ни нужной.
Возможно потому что не работал в больших командах.
← →
DiamondShark © (2005-09-15 14:12) [30]
> Например не без труда разбираю 1С проги именно из-за языка
А в чём проблема-то? Неужели, будь они написаны подобным же суржиком, но на основе английской лексики и латинским алфавитом, было бы легче? Не верю!
Те же борландовские идентификаторы легко читаются не потому что написаны по-английски, а потому что написаны полными словами.
Неужели русские полные слова сложнее для восприятия?
Мне приходилось иметь дело с исходниками французских и польских программистов. Никаких комплексов по поводу языка они не испытывают, пользуются родным. Правда, им с алфавитом повезло.
Никаких причин, кроме тяжёлого наследия времён семибитной кодировки середины прошлого века, для неиспользования родного языка я не вижу.
← →
КаПиБаРа © (2005-09-15 14:14) [31]DiamondShark © (15.09.05 13:53) [22]
Вот дадут вам доработать программу, а исходники на итальянском или китайском.
Посмотрим кто сипуку будет делать
← →
DiamondShark © (2005-09-15 14:14) [32]
> а если заказчик из-за бугра хочет код?..
Пусть учит албанский.
← →
boriskb © (2005-09-15 14:17) [33]DiamondShark © (15.09.05 14:12) [30]
Никаких причин, кроме тяжёлого наследия времён семибитной кодировки середины прошлого века, для неиспользования родного языка я не вижу.
Тебе повторить? :))
boriskb © (15.09.05 14:01) [24]
Привычка.
По дурацки смотрится. Сам язык на основе английского, а идентификаторы на кирилице :)
Второе. Может, если б я был 1с-программистом, то привык бы. Даже наверняка бы привык. Но я не он :) Везде латиница, а здесь прямо в глаза бросается.
Впрочем - каждый сам себе хозяин :)
← →
Jeer © (2005-09-15 14:18) [34]Идеями венгерской нотации пользуюсь достаточно часто для экземпляров сложных классов:
Префиксы:
iir* - фильтр IIR
fir* - фильтр FIR
isq* - интеграл по прямоугольникам
ipar* - интеграл по Симпсону
lcg* - генератор случ. чисел типа LCG
regl*, regp*, regh* - виды регрессии
sgSin*, sgSq*, sgTr*, sgSaw - виды генераторов сигналов
qu* - запросы к базам
ar* - встроенные массивы
lst*, dic*, col* - списки, словари, коллекции
snd* - звуковые
и тп.
Поскольку это введено в практику давно, то не возникает затруднений в чтении.
P.S.
Т.к. - монописец, то все равно как это и кому.
← →
DiamondShark © (2005-09-15 14:24) [35]
> Вот дадут вам доработать программу, а исходники на итальянском
> или китайском.
Не будут.
Исходники будут на Паскале. Ну или, не приведи Аллах, на языке с крестами (тут уже ничего не поможет, язык по природе своей write-only).
Я имел дело с иноязычными исходниками. Говорю же: никаких комплексов по поводу родного языка неанглоязычные программисты не испытывают.
И вообще, с демагогией -- фсад. Речь о том, как писать самому и в сообществе родноязычных программистов. При чём тут "пришлют исходники"?
Как неиспользование мной родного языка защитит меня от "присылания исходников"?
Надглоточный ганглий хоть иногда надо включать...
← →
DiamondShark © (2005-09-15 14:30) [36]
> Привычка.
На привычку есть отвычка.
> По дурацки смотрится
Кому родной язык смотрится по-дурацки, можно рекомендовать смену страны проживания.
← →
Igorek © (2005-09-15 14:34) [37]
> И вообще, с демагогией -- фсад. Речь о том, как писать самому
> и в сообществе родноязычных программистов. При чём тут "пришлют
> исходники"?
> Как неиспользование мной родного языка защитит меня от "присылания
> исходников"?
> Надглоточный ганглий хоть иногда надо включать...
Попробую включить..
Если я привыкну в "сообществе" писать на своем языке, то будет тяжело перейти на англ. Собственно английский считается всеобщим языком для выражения смысла кода. Я уж молчу про доки. Потому не вижу весомых аргументов писать на своем.
← →
КаПиБаРа © (2005-09-15 14:34) [38]DiamondShark © (15.09.05 14:24) [35]
Как неиспользование мной родного языка защитит меня от "присылания исходников"?
Не тобой, а никем. То что все пишут на одном языке гарантирует, что не придется работать с исходниками в которых переменные имеют татаро-монгольские имена.
DiamondShark © (15.09.05 14:24) [35]
Речь о том, как писать самому и в сообществе родноязычных программистов
Я не телепат. Не могу угадать о чем вы еще умалчиваете.
← →
boriskb © (2005-09-15 14:36) [39]DiamondShark © (15.09.05 14:30) [36]
:)))
Кто там против демагогии выступал? :)
Не напомнишь? :)))))
← →
Игорь Шевченко © (2005-09-15 14:37) [40]DiamondShark © (15.09.05 14:24) [35]
> (тут уже ничего не поможет, язык по природе своей write-
> only).
А также Java, C# и Object Pascal, ныне Delphi language :)
← →
DiamondShark © (2005-09-15 14:49) [41]
> То что все пишут на одном языке гарантирует, что не придется
> работать с исходниками в которых переменные имеют татаро-
> монгольские имена.
А они и так имеют.
Какая мне разница на каком они языке, если он мне чужой?
← →
DiamondShark © (2005-09-15 14:56) [42]
> А также Java, C# и Object Pascal, ныне Delphi language :)
Не надо смешивать божий дар с яичницей.
С какой целью вы замазали в этоту сомнительную компанию Паскаль (пусть даже он и Обджект)?
А что касается Джавы и Ц№, то они намного ближе именно к паскалю, несмотря на уродливые родимые пятна, доставшиеся им в наследство исключительно по причине потворства извращённому мышлению сонмища маньяков.
К сожалению, дурные привычки лекго прививаются, но с великим трудом преодолеваются.
← →
КаПиБаРа © (2005-09-15 15:01) [43]Удалено модератором
← →
Игорь Шевченко © (2005-09-15 15:03) [44]DiamondShark © (15.09.05 14:56) [42]
> С какой целью вы замазали в этоту сомнительную компанию
> Паскаль (пусть даже он и Обджект)?
по причине сходства языков, точнее, их возможностей.
← →
DiamondShark © (2005-09-15 15:04) [45]Удалено модератором
← →
КаПиБаРа © (2005-09-15 15:04) [46]Удалено модератором
← →
DiamondShark © (2005-09-15 15:11) [47]
> по причине сходства языков, точнее, их возможностей.
Сходство возможностей -- это лишь бледная тень украденных и извращённых идей Великого Вождя и Учителя.
Читайть
http://www.inr.ac.ru/~info21/
До полного просветления.
← →
Игорь Шевченко © (2005-09-15 15:13) [48]DiamondShark © (15.09.05 15:11) [47]
А вот и нифига. Все идеи из Алгола.
← →
Иксик © (2005-09-15 15:13) [49]Удалено модератором
← →
DiamondShark © (2005-09-15 15:14) [50]Удалено модератором
← →
IceBeerg © (2005-09-15 15:14) [51]DiamondShark © (15.09.05 13:53) [22]
var
ТестПеременной:String;
[Error] Unit1.pas(53): Illegal character in input file: "Т" ($D2)
[Error] Unit1.pas(53): Illegal character in input file: "н" ($ED)
[Fatal Error] Project1.dpr(5): Could not compile used unit "Unit1.pas"
← →
boriskb © (2005-09-15 15:20) [52]Игорь Шевченко © (15.09.05 15:13) [48]
Все идеи из Алгола.
Вот бы на какую тему "потрепаться" :))
← →
DiamondShark © (2005-09-15 15:20) [53]
> Игорь Шевченко © (15.09.05 15:13) [48]
>
> А вот и нифига. Все идеи из Алгола.
Да. Но лишь потому что Учитель смог разглядеть в стихийно возникшем среди множества других языке великий потенциал и поставить его на научную основу.
> Иксик © (15.09.05 15:13) [49]
>
> Немного оффтопик, но все же, вот ты все время на c/cpp наезжаешь,
> а почему?
А почему вы спрашиваете?
Я не наезжаю. Я конструктивно критикую.
← →
КаПиБаРа © (2005-09-15 15:21) [54]Удалено модератором
← →
DiamondShark © (2005-09-15 15:23) [55]
> IceBeerg © (15.09.05 15:14) [51]
Это неправильные пчёлы.
← →
Игорь Шевченко © (2005-09-15 15:24) [56]IceBeerg © (15.09.05 15:14) [51]
"Появилась возможность использовать в именах типов и переменных символы Unicode.
Запись вида
type
Работник = record
Фамилия: string;
Имя: string;
Отчество: string;
ДатаРождения: TdateTime;
Должность: string;
end;
выглядит понятнее, чем
Rabotnik = record
Familija: string;
Imya: string;
Ochestvo: string;
DataRogdenija: TdateTime;
Dolgjnost: string;
end;
"
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=1091
← →
Андрей Жук © (2005-09-15 15:29) [57]
>
> Я не наезжаю. Я конструктивно критикую.
Ты просто не умеешь его готовить.
Допустим у нас есть очередь разнородных объектов. Чтобы в с++ сказать, сколько объектов какого типа, о котором мы можем узнать вызвав метод GetType(), мне нужно всего лишь написать(правда еще нужно переопределить вывод для такого типа)
map <string,int> DequeInfo;
map <string,int>::iterator Iter;
for (Find=d.begin();Find!=d.end();++Find)
DequeInfo[(*Find)->GetType()]++;
cout<<DequeInfo;
а сколько строк мне придется написать в Pascal?
← →
Игорь Шевченко © (2005-09-15 15:37) [58]
> а сколько строк мне придется написать в Pascal?
for Find in d do
← →
Ega23 © (2005-09-15 15:38) [59]Гм...
Как раз вчера перед сном читал статью Вирта про языки.
Очень познавательно...
← →
Ega23 © (2005-09-15 15:39) [60]Ega23 © (15.09.05 15:38) [59]
А в свете вчерашнего топика об интервью со Страуструпом (если это он) - так вообще шикарно статья пролетела...
← →
DiamondShark © (2005-09-15 15:40) [61]
> а сколько строк мне придется написать в Pascal?
Зависит от того, какую библиотеку ты мне дашь.
Сколько строк уже написано в STL?
← →
Игорь Шевченко © (2005-09-15 15:40) [62]DiamondShark © (15.09.05 15:20) [53]
Вы знаете, Дима, при всем моем признании Учителя, как авторитета в программистской науке, его бесконечное пинание С(++) уже несколько достало и напоминает религиозный фанатизм.
← →
Андрей Жук © (2005-09-15 15:46) [63]
> Сколько строк уже написано в STL?
STL - часть СТАНДАРТА языка С++. Т.е. будет в поставке любого компилятора старше 1998 года.
← →
DiamondShark © (2005-09-15 16:02) [64]
> Игорь Шевченко © (15.09.05 15:40) [62]
Так по делу же пинание.
← →
Иксик © (2005-09-15 16:06) [65]
> DiamondShark © (15.09.05 15:20) [53]
> > Иксик © (15.09.05 15:13) [49]
> >
> > Немного оффтопик, но все же, вот ты все время на c/cpp
> наезжаешь,
> > а почему?
>
> А почему вы спрашиваете?
>
> Я не наезжаю. Я конструктивно критикую.
Просто интересно твое мнение. Правда. :)
← →
Igorek © (2005-09-15 16:06) [66]
> STL - часть СТАНДАРТА языка С++. Т.е. будет в поставке любого
> компилятора старше 1998 года.
Да ну? Ты не перепутал STL и std?
← →
Андрей Жук © (2005-09-15 16:11) [67]Не перепутал
← →
paul_k © (2005-09-15 16:44) [68]Игорь Шевченко © (15.09.05 14:03) [27]
а в Power Builder на каждом шагу. и когда вижу преффикс вида as_ почти в ступор впадаю
← →
Игорь Шевченко © (2005-09-15 16:54) [69]DiamondShark © (15.09.05 16:02) [64]
> Так по делу же пинание.
Может быть, ему стоит на APL переключиться ? Там гораздо больше материала для пинания. Или на Фортран с Коболом...
У меня складывается впечатление, что ему просто хочется свой Оберон продвинуть таким вот образом. Отсюда, знаете ли, осадок неприятный получается. Может, ложки и не он украл, но осадок остался...
← →
Eraser © (2005-09-15 17:28) [70]
> DiamondShark © (15.09.05 13:53) [22]
>
> Наконец-то появились средства разработки, полноценно поддерживающие
> интернационализацию.
>
> Наконец-то можно смело и без проблем использовать идентификаторы
>
> КодКлиента
> НазваниеТовара
> ОстатокНаСкладе
> КодЮридическогоЛица
>
> Если кто-то скажет, что идентификаторы должны быть английскими,
> пусть сделает себе сепуку.
Вот только, к сожалению, стандартные классы в .NET на русский никто не перевёл. А программа, состоящая наполовину из русских, наполовину из английских слов смотриться убого, читается ещё хуже... да и раскладку постояно менять влом.
Что касается латиницы (OstatokNaSclade) - это вообще извращение, имхо.
Сипуку делать не стал, уж извините )
> Игорь Шевченко © (15.09.05 14:03) [27]
>
> lc - (local character) локальная символьная
> ld - (local date) локальная типа дата
> gn - (global numeric) глобальная числовая
> ga - (global array) глобальный массив и так далее"
Такое использование венгерской конвенции, понятное дело, не приемлемо.
Удобнее всего её использовать для простых типов в глобальных переменых (именно для идентификации типа переменой!).
Одно время применял её почти повсеместно, сейчас стараюсь по-возможности не заграмождать код, полностью отказываться не стОит.
Всё имхо.
← →
DiamondShark © (2005-09-15 17:34) [71]
> а в Power Builder на каждом шагу. и когда вижу преффикс
> вида as_ почти в ступор впадаю
О! ПоверБилдер -- это пестня...
А что?
as_ -- argument string
il_ -- instance long
li_ -- local integer
Надо же. Помню.
Даже писали:
int ii_i
for ii_i = 0 to 10
> Может быть, ему стоит на APL переключиться ?
А на APL пишется много софта? APL массово преподают в учебных заведениях? APL толкают как самый кульный и рульный язык, который для крутых перцев, а кто на нём не пишет, тот ламер позорный?
Да ладно натягивать-то...
> У меня складывается впечатление, что ему просто хочется
> свой Оберон продвинуть таким вот образом.
Да, хочется. И что? Это низкое и подлое желание?
Кстати, за Оберон он денег не имеет, лицензий не продаёт, за копирайтом не охотится. Сидит себе на профессорском жалованьи и мечтает осчатливить мир. И искренне удивляется, что мир не спешит осчастливливаться.
Мир занят "сохранением инвестиций". Выливающееся на деле в огромные непроизводительные затраты.
← →
Игорь Шевченко © (2005-09-15 17:36) [72]DiamondShark © (15.09.05 17:34) [71]
> APL толкают как самый кульный и рульный язык, который для
> крутых перцев, а кто на нём не пишет, тот ламер позорный?
>
А С++ значит толкают ? :) Тогда Вирт занимается аналогичным толканием своего оберона :)
← →
TUser © (2005-09-15 17:58) [73]> Так по делу же пинание.
Авторитет его, я конечно тоже признаю безусловно и навсегда. Вот только, пинание это на непонятных мне агрументах строится. Какая разница писать dec или --?
← →
Igorek © (2005-09-15 19:48) [74]
> Какая разница писать dec или --?
Се-ман-ти-ка текста.
← →
Sergey_Masloff (2005-09-15 20:42) [75]boriskb © (15.09.05 14:09) [29]
>Никогда не находил венгерскую нотацию ни удобной, ни нужной.
>Возможно потому что не работал в больших командах.
Потому что не писал больших программ на ассемблере, скорее ;-) (я тоже не писал это не гнутье пальцев) Насколько понимаю все эти lp и lpsz нужны были потому что очень большая часть Windows была написана на ассемблере и понять прямо из объявления что это за хрень было весьма трудно.
По существу естественно i j k для локальных переменных
Для всего остального более-менее длинные но чуть сокращая. Впрочем, без проблем подстраиваюсь под правила общие для команды - надо будет lpsz писать напишу без проблем, надо маленькое сочинение в имени каждой переменной - напишу. Вот такая подлая гибкая натура.
← →
Igorek © (2005-09-15 22:08) [76]
> Потому что не писал больших программ на ассемблере, скорее
> ;-)
На ассемблере большой контекст.
← →
Игорь Шевченко © (2005-09-15 22:14) [77]Sergey_Masloff (15.09.05 20:42) [75]
> Потому что не писал больших программ на ассемблере, скорее
Я писал (типа пальцы гну :)), не увидел необходимости указывать тип переменной в имени (который в программе на ассемблере вообще-то не сильно существен).
Более того, видел очень хорошо читаемые программы на ассемблере, немаленькие программы (AdaScript, например), там необходимость типа переменной из имени не проистекала :)
← →
Nick Denry © (2005-09-15 23:18) [78]DiamondShark © (15.09.05 14:56) [42]
Жесток... (с) А.П.
А вообще развернули тему круто.... прям проникаешься...
← →
Юрий Зотов © (2005-09-16 01:16) [79]> DiamondShark © (15.09.05 13:53) [22]
Я не возражаю, можете использовать имена типаКоличествоВодыВЧайнике
. И пусть Вам будет счастье.
Но вот беда - не будет ведь... И кому тогда придется делать сепуку... непонятно...
Но это уже дело Ваше. А я не против - вперед.
==========================
Если непонятно, что же я тут такого сверхумного загнул, предлагаю всерьез поразмыслить над словосочетанием "вульгаризация программирования".
И к чему она ведет...
← →
Igorek © (2005-09-16 10:05) [80]> Юрий Зотов © (16.09.05 01:16) [79]
> Я не возражаю, можете использовать имена типа КоличествоВодыВЧайнике.
> И пусть Вам будет счастье.
Нет, думаю Дима прав в том, что нельзя категорические запрещать так писать. Ведь родной язык - это язык на котором мы думаем.
Поначалу непривычно, но.. долой догмы! :)
Т.е. если писать только для себя или в коллективе людей для которых этот язык родной то конечно можно. Даже нужно. Особенно если проект солидный и сложный.
А если говорить о таком болоте как "ИТ-индустрия", то рулит англ. И в коде и в доках.
Вообще это далеко не такая простая тема как кажется. Тут могли бы сказать свое слово и психологи и семиотики и много других..
> предлагаю всерьез поразмыслить над словосочетанием "вульгаризация
> программирования".
Слишком размытый термин. Понимать можно что угодно.
← →
Defunct © (2005-09-16 10:34) [81]Игорь Шевченко © (15.09.05 14:03) [27]
По родине предложившего эту систему программиста она названа Венгерская нотация. Система именования очень проста. Прилагаемо к VFP, имя переменной начинается с 2-х буквенного префикса, 1-я буква которого область действия переменной, 2-я буква ее тип. То есть:
lc - (local character) локальная символьная
ld - (local date) локальная типа дата
gn - (global numeric) глобальная числовая
ga - (global array) глобальный массив и так далее"
Я подобного в VCL не наблюдаю.
А разве надо наблюдать lc/ld/gn/ga и прочее барахло предложенное 200 лет назад? Разве не достаточно наблюдать просто самогО принципа венгерской нотации для того чтобы понять что он удобен, особенно в IDE с Code Completion? В VCL масса примеров - bs/fs/vs/ws... продолжать?
и пусть в древности lp обозначало long pointer, в настоящее время lp можно применить для других целей (хоть для обозначения локальных переменных), т.к сама фраза long pointer - для Win32 является бессмысленной.
PS: считаю, что система префиксов очень подходит для перечислимых типов и констант. А в IDE с Code Completion система префиксов подобная венгерской нотации многократно сокращает время написания программ.
← →
msguns © (2005-09-16 10:42) [82]> DiamondShark © (15.09.05 13:53) [22]
> Если кто-то скажет, что идентификаторы должны быть английскими,
> пусть сделает себе сепуку.
Гениально, как, впрочем, все, что ты несешь !
Я вот преставил, например, как бы говорили медики без латыни ?
- Я Вам выписываю просрачник и капли соплегона.
← →
Игорь Шевченко © (2005-09-16 10:44) [83]Defunct © (16.09.05 10:34) [81]
> считаю, что система префиксов очень подходит для перечислимых
> типов и констант
Тут такой момент - венгерская нотация есть венгерская нотация, где в префиксе указывается именно тип, причем, именно такой, как предложил Чарльз Симони. Не надо любую префиксную нотацию называть венгерской и я с тобой соглашусь.
← →
Igorek © (2005-09-16 10:46) [84]
> Гениально, как, впрочем, все, что ты несешь !
Между прочим, действительно разумная мысль. Только ее еще понять надо...
← →
Defunct © (2005-09-16 10:57) [85]Игорь Шевченко © (16.09.05 10:44) [83]
ну.. ты же первый высказался довольно обширно в [16]...вот здесь:
> В свое время (10 лет назад) были попытки внедрить в нашем сообществе венгерскую нотацию. Префиксы там разные и т.д.
второе предложение как бы подчеркивает, что смысл венгерской нотации по большей части состоит именно в префиксах. Поэтому я подумал, что Чарльз Симони - первооткрыватель префиксных нотаций вообще.
> Не надо любую префиксную нотацию называть венгерской и я с тобой соглашусь.
Ок, не называю. ;>
← →
Lamer@fools.ua © (2005-09-16 13:24) [86]>> DiamondShark
Насчёт локализованных идентификаторов. IMHO, это приемлимо, если выполняются следующие условия:
1. Язык программирования тоже локализован (например, встроенный язык 1С:Предприятия).
2. Заказчик не против (в случае аутсорсинга).
← →
badevlad © (2005-09-16 14:55) [87]По поводу "родноязычных переменных", сталкивался я с таким. Можно, конечно, если среда позволяет. Но реально использовать в каких-то серьезных проектах сложно и нецелесообразно.
1. Если язык не локализован, возникают проблемы с постоянным переключением раскладки.
2. Пробовал разобраться в чужих исходниках, там только комментарии были на немецком. Вырванные годы. А такая необходимость довольно часто возникает: то компоненты, то примеры.
3. Проблемы с окончаниями и склонениями в русском языке. Из-за них текст программы будет выглядеть оччень подозрительно :)
4. В среднем длинна слова в русском языке гораздо больше, чем в английском. Сравните:начало
МаскаСобытий := ПослатьСообщение(БогатыйРедактор1.Идентификатор, РС_ПОЛУЧИТЬМАСКУСОБЫТИЙ, 0, 0)
конец;
или
begin
EventMask:= SendMessage(RichEdit1.Handle, EM_GETEVENTMASK, 0, 0)
end;
5. Не стоит забывать о традициях. Они еще долго будут давать о себе знать.
← →
Adder © (2005-09-16 15:20) [88]Что касается "родноязычных переменных" - стараюсь этого избегать. Причина простая. При разборе исходника программа воспринимается как некий связный текст. Теперь представьте, что пришлось читать текст, написанный на двух языках одновременно. Через слово.
Лично у меня постоянное переключение с языка на язык вызовет намного больше затруднений, чем чтение программы "на английском языке".
Страницы: 1 2 3 вся ветка
Текущий архив: 2005.10.09;
Скачать: CL | DM;
Память: 0.74 MB
Время: 0.027 c