Сила имен переменных

13.11.09

Разработка - Математика и алгоритмы

Как же правильно использовать ?

Общие принципы выбора имен переменных


Имя переменной нельзя выбирать, как кличку собаке: опираясь на его вычурность или звучание. В отличие от собаки и ее клички, которые являются разными сущностями, переменная и ее имя формируют по идее одну сущность. Поэтому и адекватность переменной во многом определяется ее именем. Выбирайте имена переменных со всей тщательностью.
В следующем примере переменные названы плохо:
Пример неудачного именования переменных (из реальных бюджетных конфигураций за которое государство отвалило не мало денег):

_с=0;ин=1;
    Для ин=1 По цк Цикл
       Если _пр[ин]=_б.Субконто(3) Тогда
           _с=1;Прервать;
       КонецЕсли;

    КонецЦикла;

   Если _с=0 Тогда
      _пр[цк]=_б.Субконто(3);
       цк=цк+1;
       _сс=1;
   КонецЕсли;

 

Это часть цикла из процедуры "Заполнить()", документа по начислению налогов. Что происходит в этом фрагменте кода? Что означают все эти имена? Я десятки раз мотал наверх листинг, чтобы подсмотреть и запомнить обозначения этих таинственных переменных, но прочитав десять строчек кода и все время наталкиваясь на объявления все нового и нового изврата доводит до закипания мозка. Не уж-то человек написавший все это "гений"!? Вот, что по такому поводу говорит книга С.Макконнелла "Совершенный код".

Самый важный принцип именования переменных

Важнейший принцип именования переменных состоит в том, что имя должно полно и точно описывать сущность, представляемую переменной. Один эффективный способ выбора хорошего имени предполагает формулирование сути переменной в словах. Оптимальным именем переменной часто оказывается само это высказывание. Благодаря отсутствию загадочных сокращений оно удобочитаемо; к тому же оно однозначно. Так как оно является полным описанием сущности, его нельзя спутать с чем-либо другим. Наконец, такое имя легко запомнить, потому что оно похоже на исходную концепцию. Переменную, представляющую число членов олимпийской команды России, можно было бы назвать "КоличествоИгроковОлимпийскойКомандыРосии". Переменную, представляющую число мест на стадионе, — "КоличествоМестНаСтадионе". Переменную, определяющую текущую процентную ставку, лучше было бы назвать "Ставка" или "ТекущаяСтавка", а не "_с" или "х". Думаю, идея понятна. Стоить обратить внимание на две характеристики этих имен. Во-первых, их легко расшифровать. Фактически их не нужно расшифровывать вообще: их можно просто прочитать. Ну, а во-вторых, некоторые имена велики — слишком велики, чтобы быть практичными. Длину имен переменных я рассмотрю ниже. Несколько примеров удачных и неудачных имен переменных я привел в табл. 1.1

Суть переменной Удачные имена, адекватное описание Неудачные имена, неадекватное описание
Сумма, на которую на данный момент выписаны чеки ТекущаяСуммаЧека, АктуальнаяСуммаЧека ТСумма, тСумм, АктСумма
Текущая дата ТекущаяДата, СегоднешняяДата ТД, Текущая, x, x1, x2, Дата

Имена ТекущаяДата и СегоднешняяДата — хорошие имена, потому что полно и точно описывают идею «текущей даты». Фактически они составлены из слов с очевидным значением. Программисты иногда упускают из виду обычные слова, которые порой приводят к самому простому решению. Имена ТД - неудачны потому, что
слишком коротки и «неописательны». Имя Текущая тоже неудачно: оно не говорит, что именно является «текущим». Имя Дата кажется хорошим, но в итоге оно оказывается плохим, потому что мы имеем в виду не любую дату, а текущую; само по себе имя Дата об этом не говорит. Имена х, x1 и х2 заведомо неудачны: х традиционно представляет неизвестное количество чего-либо, и, если вы не хотите, чтобы ваши переменные были неизвестными величинами, подумайте о выборе других имен.

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

Ориентация на проблему


Хорошее мнемоническое имя чаще всего описывает проблему, а не ее решение. Хорошее имя в большей степени выражает что, а не как. Если же имя описывает некоторый аспект вычислений, а не проблемы, имеет место обратное. Предпочитайте таким именам переменных имена, характеризующие саму проблему.
Запись данных о сотруднике можно было бы назвать inputRec или employeeData. Имя inputRec — компьютерный термин, выражающий идеи ввода данных и записи. Имя employeeData относится к проблемной области, а не к миру компьютеров. В случае битового поля, определяющего статус принтера, имя bitFlag более компьютеризировано, чем printerReady, а в случае приложения бухгалтерского учета calcVal более компьютеризировано, чем sum.

Оптимальная длина имени переменной


Оптимальная длина имени, наверное, лежит где-то между длинами имен х и maximumNumbeOfPointsInModernOlympics. Слишком короткие страдают от недостатка смысла. Проблема с именами вроде x1 и х2 в том, что, даже узнав, что такое х,
вы ничего не сможете сказать об отношении между x1 и х2. Слишком длинные
имена надоедает печатать, к тому же они могут сделать неясной визуальную струк-
туру программы.
Горла, Бенандер и Бенандер обнаружили, что отладка программы требовала меньше всего усилий, если имена переменных состояли в среднем
из 10-16 символов (Gorla, Benander, and Benander, 1990). Отладка программ с именами, состоящими в среднем из 8-20 символов, была почти столь же
легкой. Это не значит, что следует присваивать всем переменным имена из 9-15
или 10-16 символов, — это значит, что, увидев в своем коде много более корот-
ких имен, вы должны проверить их ясность.
Вопрос адекватности длины имен переменных поясняет табл. 1.2.

Табл. 1.2. Слишком длинные, слишком короткие и оптимальные имена переменных

Слишком длинные имена: количествоЛюдейВОлимпийскойКоманде
количествоСидячихМестНаСтадионе
Слишком короткие имена: к, кол, клок, кво
с, кс, ксмс
То, что надо: колЧленовКоманды, всегоЧленовКоманды
колСиденийСтадиона, - всегоСидений

Имена переменных и область видимости


Всегда ли короткие имена переменных неудачны? Нет, не всегда. Если вы присваиваете переменной короткое имя, сама длина имени говорит о том, что переменная является второстепенной и имеет ограниченную область действия.
Программист, читающий код, сможет догадаться, что использование такой переменной ограничивается несколькими строками кода. Присваивая переменной имя вы говорите: «Эта переменная — самый обычный счетчик цикла/индекс массива, не играющий никакой роли вне этих нескольких строк». У. Дж. Хансен (W. J. Hansen) обнаружил, что более длинные имена лучше присваивать редко используемым или глобальным переменным, а более короткие —
локальным переменным или переменным, вызываемым в циклах (Shneiderman,
1980). Однако с короткими именами связано много проблем, и некоторые осмотрительные программисты, придерживающиеся политики защитного программирования, вообще избегают их.

Именование индексов циклов


Принципы именования индексов циклов возникли потому, что циклы относятся к самым популярным конструкциям. Как правило, в качестве индексов циклов используют переменные i, j и k

Пример простого имени индекса цикла (1С)
Для i = 0 По КоличествоСтрокМассива Цикл
СтрокаДанных = ДанныеМассива[ i ];

Если же переменную предполагается использовать вне цикла, ей следует присвоить более выразительное имя. Например, переменную, хранящую число записей,
прочитанных из файла, можно было бы назвать КоличествоЗаписей:
Пример удачного описательного имени индекса цикла (1С)
КоличествоЗаписей = 0;
Пока ЧтениеФайла.Следующий() Цикл
ТекущаяЗапись = ЧтениеФайла[ КоличествоЗаписей ];
КоличествоЗаписей = КоличествоЗаписей  + 1;
// строки, в которых используется переменная КоличествоЗаписей

Если цикл длиннее нескольких строк, смысл переменной i легко забыть, поэтому
в подобной ситуации лучше присвоить индексу цикла более выразительное имя.
Так как код очень часто приходится изменять, модернизировать и копировать в
другие программы, многие опытные программисты вообще не используют имена вроде i.
Одна из частых причин увеличения циклов — их вложение в другие циклы. Если
у вас есть несколько вложенных циклов, присвойте индексам более длинные имена,
чтобы сделать код более понятным. Тщательный выбор имен индексов циклов позволяет избежать путаницы индексов — использования i вместо j и наоборот. Кроме того, это облегчает понимание операций над массивами.
Не присваивайте имена i, j и k ничему, кроме индексов простых циклов: наруше-
ние этой традиции только запутает других программистов. Чтобы избежать по-
добных проблем, просто подумайте о более описательных именах, чем i, j и k.

Общие советы по сокращению имен


Ниже приведено несколько рекомендаций по сокращению имен. Некоторые из них
противоречат другим, так что не пытайтесь использовать все советы сразу. Итак:

  • используйте стандартные аббревиатуры (общепринятые, которые можно найти

в словаре);

  •  удаляйте все гласные, не являющиеся первыми буквами имен (computer — cmptr, screen — scrn, integer — intgr);

 

  • удаляйте артикли и союзы, такие как and, or, the и т. д.;
  • сохраняйте одну или несколько первых букв каждого слова;
  • «обрезайте» слова согласованно: после первой, второй или третьей буквы (выбирайте вариант, уместный в конкретном случае);
  •  сохраняйте первую и последнюю буквы каждого слова;
  • сохраняйте до трех выразительных слов;
  • сохраняйте наиболее выразительный звук каждого слога;
  • проверяйте, чтобы смысл имени переменной в ходе сокращения не искажался;
  • используйте эти способы, пока не сократите имя каждой переменной до 8-20 символов или до верхнего предела, ограничивающего длину имен в конкретном языке.

 

 

 

См. также

Метод Дугласа-Пойкера для эффективного хранения метрик

Математика и алгоритмы Платформа 1C v8.2 Конфигурации 1cv8 Россия Абонемент ($m)

На написание данной работы меня вдохновила работа @glassman «Переход на ClickHouse для анализа метрик». Автор анализирует большой объем данных, много миллионов строк, и убедительно доказывает, что ClickHouse справляется лучше PostgreSQL. Я же покажу как можно сократить объем данных в 49.9 раз при этом: 1. Сохранить значения локальных экстремумов 2. Отклонения от реальных значений имеют наперед заданную допустимую погрешность.

1 стартмани

30.01.2024    1756    stopa85    12    

33

Алгоритм симплекс-метода для решения задачи раскроя

Математика и алгоритмы Бесплатно (free)

Разработка алгоритма, построенного на модели симплекс-метода, для нахождения оптимального раскроя.

19.10.2023    4426    user1959478    50    

34

Регулярные выражения на 1С

Математика и алгоритмы Инструментарий разработчика Платформа 1С v8.3 Мобильная платформа Россия Абонемент ($m)

Что ж... лучше поздно, чем никогда. Подсистема 1С для работы с регулярными выражениями: разбор выражения, проверка на соответствие шаблону, поиск вхождений в тексте.

1 стартмани

09.06.2023    7466    4    SpaceOfMyHead    17    

56

Модель распределения суммы по базе

Математика и алгоритмы Платформа 1С v8.3 Россия Абонемент ($m)

Обычно под распределением понимают определение сумм пропорционально коэффициентам. Предлагаю включить сюда также распределение по порядку (FIFO, LIFO) и повысить уровень размерности до 2-х. 1-ое означает, что распределение может быть не только пропорциональным, но и по порядку, а 2-ое - это вариант реализации матричного распределения: по строкам и столбцам. Возможно вас заинтересует также необычное решение этой задачи через создание DSL на базе реализации текучего интерфейса

1 стартмани

21.03.2022    7856    7    kalyaka    11    

44

Изменения формата файлов конфигурации (CF) в 8.3.16

Математика и алгоритмы Платформа 1С v8.3 Бесплатно (free)

Дополнение по формату файлов конфигурации (*.cf) в версии 8.3.16.

16.12.2021    4448    fishca    13    

36

Интересная задача на Yandex cup 2021

Математика и алгоритмы Бесплатно (free)

Мое решение задачи на Yandex cup 2021 (frontend). Лабиринт. JavaScript.

12.10.2021    8843    John_d    73    

46

Механизм анализа данных. Кластеризация.

Математика и алгоритмы Анализ учета Платформа 1С v8.3 Анализ и прогнозирование Бесплатно (free)

Подробный разбор, с примером использования, встроенного механизма кластеризации 1С.

31.08.2021    7809    dusha0020    8    

70
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. tomvlad 3860 13.11.09 07:21 Сейчас в теме
Может уже хватит изобретать велосипеды?

Смотрим на ИТС:

Система стандартов и методик разработки конфигураций на платформе 1С:Предприятие 8

Правила образования имен переменных

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

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

Перем ДиалогРаботыСКаталогом; // Диалог работы с каталогом
Перем КоличествоПачекВКоробке; // Количество пачек в коробке


Имена переменных запрещается начинать с подчеркивания.
Имена переменных не должны состоять из одного символа. Использование коротких имен переменных допускается только для счетчиков циклов.

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

Перем ЕстьОшибки; // Признак наличия ошибок в процедуре.
Перем ЭтоТоварТара; // Признак, что товар относится к возвратной таре.
annak2980; +1 Ответить
3. Stepa86 1521 13.11.09 08:30 Сейчас в теме
(1) не все читают стандарты почему то
4. tomvlad 3860 13.11.09 08:33 Сейчас в теме
(3) Все правильно. Из-за таких и имеем криво переписанные конфигурации, в которых ни черта не понятно и со сменой сопровожденца либо умирающие, либо безжалостно переписываемые.
6. Stepa86 1521 13.11.09 10:51 Сейчас в теме
(4) вот поэтому и считаю, что любая инфа, подталкивающая программиста писать более качественный код является весьма полезной

(0) откуда основа статьи? уж не из "Совершенного кода" ли? =) я вот тоже баловался http://infostart.ru/public/20992/
8. logarifm 1118 13.11.09 12:26 Сейчас в теме
Я привел реальный пример кода из конфигурации реальной за которую денег заплатили.

(6) Да именно из нее только сжато и отобрано более главные аспекты. Я же там написал, что не полеглотсвую чужих рукописей:

Не уж-то человек написавший все это "гений"!? Вот, что по такому поводу говорит книга С.Макконнелла "Совершенный код".
16. apolon 13.11.09 14:39 Сейчас в теме
Мешают резкие переходы на 1С и с 1С. Не выделены цитаты.
Красивее было бы взять идею из книги и ПОЛНОСТЬЮ транслировать её на 1С (особенно русский язык).
Если мне не изменяет память, то в том же ИТС дана рекомендация писать на русском.
Другими словами, например, участок:

Слишком длинные имена: numberOfPeopleOnThelJsOlympicTeam
numberOfSeatslnTheStadium
Слишком короткие имена: п, пр, ntm
п, ns, nsisd
т, тр, max, points
То, что надо: numTeamMembers, teamMemberCount
numSeatsInStadiumrseatCount
teamPointsMaxrpointsRecord

мог бы выглядеть так:

Слишком длинные имена: количествоЛюдейВОлимпийскойКоманде,
количествоСидячихМестНаСтадионе
Слишком короткие имена: к, кол, клок, сид, кс, ксмс,
То, что надо: колЧленовКоманды, счётчикЧленовКоманды
колСиденийСтадиона

Опять же в контексте 1С имя переменной ТекущаяДата совсем уж неудачное.

В целом при прочтении статьи возникло ощущение, как при разборе кода:

_с=0;ин=1;
Для ин=1 По цк Цикл
Если _пр[ин]=_б.Субконто(3) Тогда
_с=1;Прервать;
КонецЕсли;
КонецЦикла;
Если _с=0 Тогда
_пр[цк]=_б.Субконто(3);
цк=цк+1;
_сс=1;
КонецЕсли;
19. logarifm 1118 13.11.09 15:11 Сейчас в теме
(16) Ну переменные не стоит привязывать к конкретному уклонению языка программирования, кто-то кодит на Java, C, C#, C++, а кто-то на 1С. Собственно англоязычные переменные можно использовать в 1С лишь были бы они удобочитаемы. А насчет "ТекущаяДата" - здесь не идет пример того, что у 1С есть такая функция, здесь показано, что переменные надо называть так, который смысл они несут содержя в себе какое-то значение!
2. Арчибальд 2706 13.11.09 07:32 Сейчас в теме
Слишком длинные имена: numberOfSeatslnTheStadium
То, что надо: numSeatsInStadiumrseatCount
Даа... УЖ.
10. logarifm 1118 13.11.09 12:34 Сейчас в теме
(2) Ты не мне сделал минус, а самому Стивену Макконнеллу, а это очень значимое лицо в ИТ. Советую все-же почитать его книгу "Совершенный код" и аргументировать свой минус.
megatrend; +1 Ответить
11. Арчибальд 2706 13.11.09 12:49 Сейчас в теме
(10) Еще раз: у тебя
numberOfSeatslnTheStadium - слишком длинное имя, а
numSeatsInStadiumrseatCount - то, что надо, хотя на два символа длиннее.
А Стивен Макконнел здесь ни при чем. Это твой личный минус.
5. Jers 13.11.09 09:02 Сейчас в теме
СегодняшняяДата ;)
apolon; marsohod; +2 Ответить
7. marsohod 123 13.11.09 11:29 Сейчас в теме
(5) Хе-хе, Вы тоже заметили...
Следует добавить еще одно правило:
"Имена переменных не должны содержать орфографических ошибок" :|
9. logarifm 1118 13.11.09 12:32 Сейчас в теме
(0) во-первых не у всех есть доступ к ИТС, во-вторых не все ее и читают, банально все думают какой я крут что я не знаю как переменную назвать... К сожалению это реалии, на предыдущей работе был человек, который как попало называл переменные и сколько я не делал акцент на то как правильно называть, но как подчиненный может учить начальника - хех теперь я сокращен с этой работы... Я думал статья должна заинтересовать по крайней мере новичков да и старых "волков" тоже...
12. logarifm 1118 13.11.09 12:51 Сейчас в теме
как это не причем - это взято из его книги :) Получается, что как бы так такой человек, которого книга на таком уровне продажи вот так "лохонулся", кто же умней? Вы или Макконнелл?
13. Арчибальд 2706 13.11.09 13:45 Сейчас в теме
(12) У Макконнела во втором случае
numSeatsInStadium
(стр 255)
14. KapasMordorov 428 13.11.09 14:13 Сейчас в теме
"2) Ты не мне сделал минус, а самому Стивену Макконнеллу, а это очень значимое лицо в ИТ. Советую все-же почитать его книгу "Совершенный код" и аргументировать свой минус."

Мне вот интересно, по какой причине такому участинку ИС плюсы ставят за обыкновенный плагиат?
Если я "Капитал" Маркса ежедневно зацитирую, мне тоже за силу мысли и духа плюсы положены?
15. logarifm 1118 13.11.09 14:35 Сейчас в теме
(14) а здесь не причем плагиат, вот что заставило написать меня такую статью, разбор конфигурации с таким вот кодом:

зн=б.СКК();
__зн=зн;
Если зн>0 Тогда
Если (ПустоеЗначение(Сотрудник.ДатаУвол)=0)И
(Сотрудник.ДатаУвол < НачМесяца(ДатаПериода)) Тогда
Иначе
зн=Цел(зн);
КонецЕсли;
Если (ЗаполнитьВсех=0) Тогда
Если ((б.Субконто(1).ЧерезКассу=1)И(Сред(Строка(Счет),1,2)="30")) Тогда
НоваяСтрока();
Сотрудник = б.Субконто(1);
СуммаВыдачи = __зн;
Сумма = зн;
ИначеЕсли ((б.Субконто(1).ЧерезКассу=0)И(Сред(Строка(Счет),1,2)="31")) Тогда
Если б.Субконто(1).выбран()=1 Тогда
б_с.ИспользоватьВладельца(б.Субконто(1));
Если б_с.НайтиПоРеквизиту("Банк",Субконто1.Банк,0)=1 Тогда
НоваяСтрока();
Сотрудник = б.Субконто(1);
СуммаВыдачи = __зн;
Сумма = зн;
ИначеЕсли пр_реп=0 Тогда
НоваяСтрока();
Сотрудник = б.Субконто(1);
СуммаВыдачи = __зн;
Сумма = зн;
КонецЕсли;
Иначе
Сообщить("Не вказано з\п рахунок банку");
Возврат;
КонецЕсли;
КонецЕсли;
Иначе
НоваяСтрока();
Сотрудник = б.Субконто(1);
СуммаВыдачи = __зн;
Сумма = зн;
КонецЕсли;
17. KapasMordorov 428 13.11.09 14:45 Сейчас в теме
(15)
Продублируем.
"Ты не мне сделал минус, а самому Стивену Макконнеллу".

И что? Стивен воплощение бога на земле? Вы ему ссылку на форум отошлете, где ему минус поставили?
Или минус Вам поставили? За необтесанный плагиат вполне заслуженно.
Какое основание возмущаться?
P.S.
А код такой многие пишут, особенно программисты, не знакомые с предметной областью - им без разницы, поймет кто или нет. Круто же и быстро.
18. logarifm 1118 13.11.09 15:05 Сейчас в теме
(17) А в чем крутость то такого кода, я бы наоборот сказал - "тупость его".
chemezov; kuzyara; KukA.5; +3 Ответить
20. KapasMordorov 428 13.11.09 15:16 Сейчас в теме
(18)
Он работает. Быстро пишется.
Долго модифицируется потом, но это уже другая проблема.
22. logarifm 1118 13.11.09 15:18 Сейчас в теме
(20) Я бы не сказал, что такой код быстро пишется... И работоспособность такого кода вообще равна провалу!
27. KukA.5 476 21.11.09 18:06 Сейчас в теме
(20) такой код пишется не быстро, а криво... Проблемы разработки (в данном случае написания кода), отладки функционала и дальнейшей модификации (развития функционала или его изменения) тесно связаны между собой. Человек, который это не понимает, и, возможно, поэтому пишет такой код, делает свою работу плохо (возможно это амбициозный и очень крутой, но ...новичок).
28. KapasMordorov 428 21.11.09 23:14 Сейчас в теме
(27)
Раньше в машинных кодах программировали (даже не на ассемблере).
И работало.
В жизни всякое бывает.
Это не значит, что я сторонник так кодировать на 1С.
29. KukA.5 476 21.11.09 23:58 Сейчас в теме
(28) я программировал на первом курсе ВолГУ на ассемблере... и кроме меня (и то с картой и описанием подпрограмм) никто не знал, что там написано :)

....а в 1С лучше программировать так, что потом любой другой твой коллега (по профессии), даже самый начинающий был тебе благодарен за код.

Кстати, мне было полезно прочитать статью ... я увлекаюсь иногда :) и делаю иногда слишком длинные (но понятные) имена:
ТаблицаПроводокИзРегистраНекорректныхПроводок
ОтобранныеУзлыДляОбмена_Полный
НовыйСтатусПослеЗаписиДокумента
21. logarifm 1118 13.11.09 15:16 Сейчас в теме
Ну в общих чертах статья вызвала у людей внимание, а это уже хорошо... Дело не в плюсах и не в минусах, просто мне кажется это важный аспект информации на который нам программистам все же стоит сделать акцент... :)
23. artbear 1448 15.11.09 16:48 Сейчас в теме
(0) Где брал книгу МакКоннела?
Дай, плиз, линк на электронный вариант.
У меня есть книжный вариант, но его постоянно с собой не потаскаешь :)
24. logarifm 1118 15.11.09 22:01 Сейчас в теме
25. WellMaster 104 18.11.09 09:59 Сейчас в теме
Плюс за идею. Поддерживаю идею написания красивого кода. В свое время каминовские конфы поморочили мне мозг.
26. Арчибальд 2706 18.11.09 11:20 Сейчас в теме
В связи с внесением автором исправлений отменяю свой минус 8-)
30. KilloN 56 30.09.16 14:43 Сейчас в теме
А что автор думает по поводу префиксов типов у переменных: Например переменная СтруктураКонтрагентов. Каждый раз писать слово Структура утомляет.
На ИТС не нашел такой инфы, хотя может плохо искал.
Помню когда писал на С++ хорошим тоном было делать префиксы типов данных
unsigned short usLongestWord; - us - префикс типа
31. herfis 498 30.09.16 15:11 Сейчас в теме
(30) KilloN, Набери в вики "венгерская нотация". В 1С в ней тоже нет необходимости.
Я не испытываю, во всяком случае. А глаз режет, если встречаешь таких отщепенцев. Если у переменной грамотное название, то и так понятно из контекста, какой у нее может быть тип. А где возникают вопросы - жмешь F12.
Оставьте свое сообщение