|
Венгерская нотация в 1С | ☑ | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
0
Humandra
12.02.12
✎
09:46
|
Добрый день!
А вот скажите плиз, кто как относится к венгерской нотации именования переменных в 1С? Имею в виду - систему префиксов по типам данных и области видимости переменных. Ну, область видимости переменных народ часто выделяет, так что голосовалка не про это, а только про префиксы по типам данных. Например: чСтавкаТарифа - число сАдрес - строка оАдрес - объект конфигурации "Адрес" тзМояТаблица - таблица значений итп. Конечно, нельзя слишком много префиксов вводить, запутаешься, поэтому и о - объект, а не сп - Справочник, рс - РегистрСведений. Мне лично было бы удобнее с такими префиксами, но вроде не принято, нет? |
||||||||||
1
URAL
12.02.12
✎
09:50
|
Очередной изобретатель велосипеда
Другое |
||||||||||
2
Maxus43
12.02.12
✎
09:51
|
не пользуюсь, я и так вижу тип данных телепатически
Другое |
||||||||||
3
Humandra
12.02.12
✎
09:53
|
(1) Аргументируйте!
(2) Научите :) |
||||||||||
4
Humandra
12.02.12
✎
09:55
|
Да, забыла сказать - речь о самописной конфигурации, никак не соотносящейся с типовыми, то есть любая система префиксов не будет выбиваться из общего стиля
|
||||||||||
5
Rie
12.02.12
✎
09:55
|
(0) Вот как раз удобнее было бы различать объекты и ссылки по префиксам.
А в целом - панацеи нет, венгерская нотация в некоторых случаях удобна, в других - только в глазах рябит. |
||||||||||
6
Зеленый Кот
12.02.12
✎
09:56
|
только так и никак иначе
Удобно, я за! |
||||||||||
7
Maxus43
12.02.12
✎
09:58
|
(3) да просто помнить можно, работая с конкретной задачей я просто помню какие типы где есть, и не думаеш почти какие типы где есть. отладчик в конце концов есть
|
||||||||||
8
DEVIce
12.02.12
✎
09:58
|
Я так и пишу, "объектСправочникКонтрагенты", "ссылкаСправочникКонтрагенты" и т.п.
|
||||||||||
9
Maxus43
12.02.12
✎
09:58
|
с утра тавталогия тавтология какая-то
|
||||||||||
10
Humandra
12.02.12
✎
09:59
|
(7) А если не с конкретной задачей, а с модулем, который до тебя разрабатывал твой коллега, а тебе надо поправить код - позвонили пользователи и пожаловались на ошибку?
|
||||||||||
11
Зеленый Кот
12.02.12
✎
09:59
|
>> Я так и пишу, "объектСправочникКонтрагенты", "ссылкаСправочникКонтрагенты" и т.п.
надо взять на вооружение... |
||||||||||
12
KRV
12.02.12
✎
10:02
|
где... не помню... кажется в Камине на семерке так навенгерили с нотациями, шопестец.. притом, как мне имхается, каждый клоун, дописывавший конфу, довенгеривал нехило..
|
||||||||||
13
Rie
12.02.12
✎
10:09
|
(10) А описал ли коллега применяемую им нотацию? И если описал - то эффективную ли нотацию он придумал? А если эффективную - то можно ли гарантировать то, что он её корректно использует?
Например, IMHO, неэффективно обозначать справочники, документы и пр. префиксом "о" - этот префикс неинформативен, отсутствие префикса даст ровно столько же информации, что и его наличие. Другой пример - все числовые переменные обозначаются префиксом "ч". Ищу ошибку. Вижу переменную дКогдаТо. Полагаю его тип числовым - и удивяяюсь, откуда ж взялась эта ошибка, до тех пор, пока случайно не натыкаюсь на оператор дКогдаТо = 12345; И т.д. Другое |
||||||||||
14
Rie
12.02.12
✎
10:10
|
+(13) "числовые переменные обозначаются префиксом "ч" <- "числовые переменные обозначаются префиксом "ч", а переменные типа Дата - префиксом "д"
|
||||||||||
15
Фокусник
12.02.12
✎
10:12
|
(0) Тоже пользуюсь подобными префиксами,
только пошире: не просто сАдрес и оАдрес (ссылка и объект), а спрсАдрес и спроАдрес (справочник ссылка и справочник объект). Просто "с" мало, т.к. есть еще докс/доко, пвхс/пвхо и т.д :) Удобно, я за! |
||||||||||
16
KRV
12.02.12
✎
10:15
|
одпптч_А : Объект Для Передачи Параметром Тип Число А(само наименование переменной) :)))
|
||||||||||
17
MRAK
12.02.12
✎
10:16
|
Раньше использовал (не в 1С), там была строгая типизация переменных. Но венгерская нотация устарела уже лет пять назад
Другое |
||||||||||
18
MRAK
12.02.12
✎
10:17
|
(8) ну такое иногда использую)
Удобно, я за! |
||||||||||
19
Мимохожий Однако
12.02.12
✎
10:17
|
Если вижу эту нотацию, редко использую. Отладчик никто не отменял, а запутать может. Короче, венгерская нотация не раздражает, но использовать нет желания.
Другое |
||||||||||
20
Rie
12.02.12
✎
10:19
|
(17) Если есть строгая типизация и более-менее развитая среда программирования, то венгерская нотация не столь уж и нужна: среда сама подскажет тип переменной, как это делают хоть MS VS, хоть Eclipse, да и прочие среды того же уровня.
Даже в случае с 1С-овским Конфигуратором - он ведь знает, зараза, типы во многих случаях (иначе бы Intellisense не работало). Но - не говорит :-) |
||||||||||
21
Humandra
12.02.12
✎
10:23
|
(20) Угу, согласна на 100%. Если бы среда подсказывала тип - венгерская нотация была бы злом в чистом виде.
Но так - я вот сомневаюсь. Проект только начинается, в нем будут участвовать как минимум 3-4 человека, и пока есть возможность приучить нас всех к одной нотации и сделать это правилом. Но с другой стороны - в тех же типовых ведь нет венгерской нотации... |
||||||||||
22
Зеленый Кот
12.02.12
✎
10:29
|
1c - зло в чистом виде... особенно типовые
|
||||||||||
23
Mort
12.02.12
✎
10:30
|
Херня. Пережиток прошлого.
Пакость какая! |
||||||||||
24
Rie
12.02.12
✎
10:36
|
(21) Проработка эффективной системы "венгерской нотации" - дело сложное. Особенно для столь развитой системы типов, как в 8-ке. Может, имеет смысл вместо этого проработать систему комментариев для обозначения (предполагаемого) типа переменных? Такие комментарии предусмотрены в рекомендациях "1С", а в "Телепате" для 7.7 подобные комментарии (со специальным синтаксисом) использовались Intellisense для подсказок в тех случаях, когда система не могла вывести тип переменной самостоятельно.
|
||||||||||
25
SoulPower
12.02.12
✎
10:41
|
>> Я так и пишу, "объектСправочникКонтрагенты", "ссылкаСправочникКонтрагенты" и т.п.
ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокументИмениНуралиеваБорисаГеоргиевича |
||||||||||
26
DJ Anthon
12.02.12
✎
10:46
|
пишу как в типовых
Пакость какая! |
||||||||||
27
Grusswelle
12.02.12
✎
10:53
|
ТС на С++ программировал?
|
||||||||||
28
proger2011
12.02.12
✎
10:57
|
(0) Теоретический да, это удобно должно быть. Но блин когда открываешь зарплату камина на семёрке, почемуто охота побыстрее её закрыть.
|
||||||||||
29
Rie
12.02.12
✎
10:59
|
(27) А может, на Фортране :-)
|
||||||||||
30
IamAlexy
12.02.12
✎
11:00
|
смысла в ней нет... вообще....
ну просто вообще никакого... может давным давно, когда писали в блокноте и небыло никаких систем IDE оно и было востребованно. но не сейчас.. Пакость какая! |
||||||||||
31
Mort
12.02.12
✎
11:01
|
Скорее на си под винду в дремучие времена. Там была гора переменных (handle), а типы компилятор не проверял. Оттуда и поперла мода на сабж. Сейчас нафиг не надо.
|
||||||||||
32
IamAlexy
12.02.12
✎
11:03
|
Недостатки
Некоторые программисты считают, что использование префиксов делает имена переменных менее понятными и, таким образом, ухудшает читаемость кода.[4] Если известно имя переменной без префиксов, подчас трудно восстановить её префиксы. Система автодокументации, если она не понимает системы префиксов, отсортирует алфавитный список по префиксу, что может отрицательно сказаться на качестве документации. Впрочем, имена функций обычно префиксами не снабжают. Запись нескольких префиксов из-за частого использования заглавных букв и знаков подчёркивания может стать «пляской на кнопке ? Shift ». Средства навигации, которые включены в современные редакторы кода, и так позволяют видеть тип любой переменной и быстро переходить к точке, где она определена — то есть, использование префиксов может быть избыточным. При изменении типа потребуется изменять имя переменной (большинство программистских редакторов не могут делать это автоматически).[4] Существуют и другие средства задания типа переменной в её имени: например, слова is, has и т. д. для булевского типа (IsLoggedIn), count для счётчика (RefCount), множественное число для массива (UserIds)… В языках, в которых заглавные буквы не эквивалентны строчным, регистр букв также может кодировать что-либо. ЗЫ: Известный противник венгерской нотации — Линус Торвальдс: «Вписывание типа переменной в её имя (так называемая венгерская нотация) ущербно — компилятор и так знает типы и может проверить их, и это запутывает программиста»[5]. |
||||||||||
33
Rie
12.02.12
✎
11:09
|
Венгерская нотация может оказаться полезной для обозначения различных (и различных типов) аспектов одной и той же сущности. Например
выбЗапрос = Запрос.Выполнить().Выбрать(); стрДата = Формат(Дата,"ДФ=dd.MM.yyyy"); обНоменклатура = Номенклатура.ПолучитьОбъект(); Выдумывать для таких (по сути, вспомогательных) переменных "суперсодержательные" имена - запутывает код, использование префикса для типа (роли) переменной - показывает и связь между значениями, и роль переменной. |
||||||||||
34
Reaper_1c
12.02.12
✎
11:10
|
Лучше бы ТС время на архитектурное и прикладное проектирование тратила, чтобы при реализации длина метода не превышала высоту монитора. Тогда никаких нотаций не надо...
Пакость какая! |
||||||||||
35
IamAlexy
12.02.12
✎
11:16
|
(34) бгыыы.. ты еще попроси чтобы запросы в экран вмещались.. чонить типа запрос для заполнения РСВ в БП :)
|
||||||||||
36
Rie
12.02.12
✎
11:16
|
(32) Это если компилятор знает и может проверить тип. Для 1С аргумент Торвальдса не работает :-)
|
||||||||||
37
proger2011
12.02.12
✎
11:23
|
(35) В типовые то давно заглядывал? Давно уже тексты запросов выносят в отдельные процедуры чтобы основной текст легче было анализировать.
|
||||||||||
38
IamAlexy
12.02.12
✎
11:24
|
(37) причем тут отдельные процедуры. ты в сам запрос загляни :)
|
||||||||||
39
mirosh
12.02.12
✎
11:24
|
в 1с принята другая нотация, так сложилось исторически. ее более-менее придерживаются все программисты 1С. Пусть остается как есть.
Пакость какая! |
||||||||||
40
IamAlexy
12.02.12
✎
11:24
|
(36) почему для 1С не работает?
|
||||||||||
41
Rie
12.02.12
✎
11:42
|
(40) Нет строгой типизации. Собственно, _этот_ аргумент не работает и для языков со строгой типизацией - поскольку среди задач "венгерской нотации" нет контроля типов, тут вам не Фортран.
Ну а что "венгерская нотация" (особенно при доведении её до абсурда) способна сбить с толку - тут я согласен (см. (13)). |
||||||||||
42
Rie
12.02.12
✎
11:43
|
(37) Ой, намного ли легче - если приходится то прыгать в текст запроса, то пытаться в вызывающей процедуре вспомнить, что ж там было написано-то.
|
||||||||||
43
Холст
12.02.12
✎
11:57
|
для самописки - только за !
в типовых свои реквизиты так делаю в 50-60% случаев (хотя в типовой вообще стараюсь не добавлять свои реквизиты в типовые объекты) Удобно, я за! |
||||||||||
44
Попытка1С
12.02.12
✎
12:00
|
|||||||||||
45
jsmith
12.02.12
✎
12:01
|
из-за чего сыр-бор то
именуй как хочешь если задача простая или очевидная, префиксы не использую в сложных ситуациях без префиксов не обойтись, причём не только для типов данных, но и для семантической нагрузки переменных это вообще большая тема |
||||||||||
46
Steel_Wheel
12.02.12
✎
12:10
|
(0) ПРограммно СКД поюзай...... интересный вывод придет в голову ))
|
||||||||||
47
zak555
12.02.12
✎
12:12
|
главное - не переборщить !
|
||||||||||
48
IamAlexy
12.02.12
✎
12:18
|
(46) бгыыыыыыыыыыыыыыы
+100500!!!1 |
||||||||||
49
IamAlexy
12.02.12
✎
12:19
|
ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокументИмениНуралиеваБорисаГеоргиевича
|
||||||||||
50
Steel_Wheel
12.02.12
✎
12:24
|
(49) И это только ПРЕФИКС
|
||||||||||
51
gnus
12.02.12
✎
12:29
|
венгры - суть фино-угорсое племя, генетические сродственники нашим мокшам,шокшам,эрзям,хантам,мансям,чухонцам и пр....
Отец ВенгерскойЗаписи и МСВорд Шимони в возрасте за 60 лет летает в космос и меняет жён Удобно, я за! |
||||||||||
52
gnus
12.02.12
✎
12:59
|
сейчас помоему и вывески типа "ОбщественныйТуалет",
"РитуальныеУслуги" и пр... сплошное нарушения авторских прав Ч. Шимони(Симони) |
||||||||||
53
Torquader
12.02.12
✎
13:29
|
В венгерской нотации может быть удобно описывать только область распространения переменной, функции или процедуры, а также принадлежность к модулю.
Например, начиная с буквы л имя любой локальной переменной можно быть на 100% уверенным, что таких глобальных переменных нет, если у всех глобальных другой префикс, а также нет возможности перепутать процедуру и функцию. Что же касается типов, то так как они не строгие, то особого плюса в их обозначении нет. P.S. а многие типы даже в Си не такие уж и строгие, например, никто не мешает указатели приводить к длинным целым и т.п. Удобно, я за! |
||||||||||
54
Дикообразко
12.02.12
✎
13:30
|
[:||||||||||:]
устарело, юзали во времена 8.0 мВалютаУправленческогоУчета оттуда |
||||||||||
55
kosts
12.02.12
✎
13:38
|
>чСтавкаТарифа - число
>сАдрес - строка >оАдрес - объект конфигурации "Адрес" >тзМояТаблица - таблица значений Не для меня. 1. Проблема неправильного типа настолько редкая (по крайней мере у меня). 2. Пропадает удобство копирования/вставки реквизитов Простой пример: имеем ссылку на физлицо, присваиваем временным переменным с префиксом. сНаименование = Физлицо.Наименование; сКод = Физлицо.Код; пПол = Физлицо.Пол; как то обработали Затем записываем в тз и уже без префиксов т.Наименование = сНаименование; т.Код = сКод; т.Пол = пПол; Скопировал - добавил префикс, скопировал - убрал префикс и при этом вспоминать каждый раз тип переменной... ну его нафиг... Пакость какая! |
||||||||||
56
kosts
12.02.12
✎
13:39
|
С префиксом области распространения "м" согласен, полезно.
|
||||||||||
57
Neco
12.02.12
✎
13:40
|
(0) Я смешиваю нотации, иногда удобно и в венгерской писать. Восновном мелкие обработки и отчеты.
|
||||||||||
58
Hans
12.02.12
✎
13:41
|
Для простых типов данных - не нужно. Для ТЗ, СЗ, массивов, структур и др. полезно.
Другое |
||||||||||
59
Torquader
12.02.12
✎
13:45
|
(56) Она в английском очень удобна:
v - переменная, f - функция, p - процедура, s - подпрограмма (Sub). Область распространения: g - глобальная, m - модуль, l - локальная. В русском начинаются сложности с тем, что "переменная", "процедура" и "подпрограмма" пишутся с одной буквы. |
||||||||||
60
IamAlexy
12.02.12
✎
13:52
|
при работающем IDE оно бессмыслено...
я помню название переменной, набираю в коде "Поль" и у меня открывается подбор по "Поль....." а так что будет, мне надо вспомнить тип и набрать "споль" ? в общем принцип такой же как и использование организационно правовой формы в пользовательском режиме в справочнике "Контрагенты"... ее конечно можно использовать и писать " ООО "Василек"" но на практике это нихрена неудобно ибо ввод по строке мгновенно усложняется... |
||||||||||
61
acsent
12.02.12
✎
13:53
|
Ну переменные ссылки и объекты в последних релизах задаются как
ДокументСсылка, ДокументОбъект ... |
||||||||||
62
Torquader
12.02.12
✎
13:58
|
(61) 1С интерпретатор с предварительной компиляцией, и длинные названия переменных сказываются только в момент компиляции модуля перед исполнением - во-время работы система имён не знает, так что от длины мало чего зависит.
В чисто интерпретируемых языках от длины имени переменной зависит скорость выполнения кода, поэтому, в JavaScript, например, стараются переменные сделать покороче. Конечно, в 1С тоже можно использовать короткие переменные и их применение писать в комментарии при первом использовании, но это неудобно, так как надо всегда заглядывать с описание переменных, а так как модуль не может состоять из нескольких файлов, то каждый раз листать неудобно. |
||||||||||
63
pavig
12.02.12
✎
15:33
|
(0) в некоторых случаях использую, бывает очень удобно
Удобно, я за! |
||||||||||
64
patapum
12.02.12
✎
15:47
|
а как быть если переменная может принимать значения разных типов, в зависимости от ситуации?
тзилитчТаблицаОбъекта силиоКлиент оилимНоменклатура Пакость какая! |
||||||||||
65
patapum
12.02.12
✎
15:49
|
+(64) или хегозЭлементКоллекции :)))
|
||||||||||
66
Aleksey
12.02.12
✎
17:04
|
А почему суфиксы нельзя использовать?
Почему вместо стрДата не написать Дата_стр ? И сортировкой и с читаемостью будет хорошо? Почему телегу надо ставить впереди коня? |
||||||||||
67
Neco
12.02.12
✎
17:08
|
(64) Это плохой стиль программирования.
|
||||||||||
68
milan
12.02.12
✎
17:31
|
Использую
стрИмяКонтрагента сзКонтрагенты ф_тзТаблицаУслуг Понятно и удобно Удобно, я за! |
||||||||||
69
GROOVY
12.02.12
✎
17:32
|
Есть стандарты разработки типовых конфигураций. Придерживайтесь их. Не глупые люди их писали, и не один год притирались...
|
||||||||||
70
Кокос
12.02.12
✎
17:37
|
ну я только три буквы юзаю с - ссылка(сНоменклатура) о-Объект(оНоменклатура) в - выборка (вНоменклатура)
хватает. так как язык строго не типизирован в остальном смысл пропадает. :) Удобно, я за! |
||||||||||
71
milan
12.02.12
✎
17:41
|
(69) там не написано, что нельзя использовать венгерскую нотацию?
|
||||||||||
72
Кокос
12.02.12
✎
17:42
|
и как тут сказали как-то привык к 1совскому "м" переменной модуля
|
||||||||||
73
Jolly Roger
12.02.12
✎
17:47
|
(0) одинэсникам бы научиться переменные описывать да не лепить весь код в одну процедуру... потом можно и префиксы обсудить...
Другое |
||||||||||
74
DJ Anthon
12.02.12
✎
18:39
|
хотя, все лучше, чем ааа=4; п(тз111);
|
||||||||||
75
Skylark
12.02.12
✎
19:09
|
Очень подходящее слово
Пакость какая! |
||||||||||
76
Skylark
12.02.12
✎
19:11
|
Если уж надо отличать объект от ссылки в некоторых ситуациях, то я предпочитаю писать АдресОбъект. А уж на кой фиг строку или число выделять, вообще не понимаю.
|
||||||||||
77
Кокос
12.02.12
✎
20:13
|
(76) согласен. тип должен быть понятен из названия. вот вид объект или ссылка приходится выделять чтобы не гадать как назвать объект а как ссылку.
|
||||||||||
78
МурЬка
12.02.12
✎
20:21
|
Именно в 1С - не вижу смысла, слишком много префиксов.
А если вспомнить о "вложенных" объектах всяких там компоновщиков данных и прочих вещей, так даже и "Пакость какая!" может получиться. Другое |
||||||||||
79
Лефмихалыч
12.02.12
✎
21:05
|
Я за префиксы канделябром бы по сусалам бил, но это запрещено трудовым кодексом.
Переменные надо называть так, чтобы понятно было, чего там у них внутрях и для чего они. Тогда и префиксы не нужны, и код самодокументируемый Пакость какая! |
||||||||||
80
Лефмихалыч
12.02.12
✎
21:06
|
и за сокращения - тоже бы бил, если б не ТК
|
||||||||||
81
Torquader
12.02.12
✎
21:54
|
(79) Просто скорость набора кода сильно возрастает, если использовать короткие имена переменных, но они неудобочитаемы.
Поэтому, получается, что заказчики оплачивают дополнительное время набития длинных имён переменных, так как вставить их не всегда получается. |
||||||||||
82
8vC1
12.02.12
✎
22:21
|
Средства навигации, которые включены в современные редакторы кода, и так позволяют видеть тип любой переменной и быстро переходить к точке, где она определена — то есть, использование префиксов может быть избыточным.
Пакость какая! |
||||||||||
83
Voronve
12.02.12
✎
22:40
|
.
Пакость какая! |
||||||||||
84
Reaper_1c
12.02.12
✎
22:56
|
(81) Ctrl+Space? Не, не слышал...
|
||||||||||
85
romix
12.02.12
✎
22:59
|
Полезно, чтобы отличать переменные от реквизитов.
Удобно, я за! |
||||||||||
86
Крепкий
12.02.12
✎
23:31
|
2. Пакость какая!
Кодером с 82, языки разные, 1с с 95-96, в т.ч. "играющим тренером".. Вам удобно - делайте, нет проблем, типизация и унификация на уровне идентификаторов реквизитов не приводят к ожидаемым удобствам, а к дуроте - поднимаю как-то программистку в отделе, вижу затрудняется, занимается битый час идентификацией одного(!!) реквизита вместо кодирования.. Пожалел.. Сам назвал ей реквизит - ... После решительных протестов в адрес руководителя ИТ подразделения дурота была отменена, кроме того ежли реквизит будет идентифицирован с ошибкой, возникают проблемы связанные с локализацией ощибок специалистами подразделения сопровождения |
||||||||||
87
IamAlexy
13.02.12
✎
00:06
|
(81) все экономите время заказчика?
бгыыыыыыыыыы на такой дибилизм как экономить деньги заказчика (а соответственно уменьшать собственную выгоду) за счет коротких имен переменных наверное тока 1сники и способны... |
||||||||||
88
acsent
13.02.12
✎
00:07
|
(81) до сих пор не осилил слепой метод что ли?
|
||||||||||
89
Чайник Рассела
13.02.12
✎
00:45
|
Проблема в том, что ты женщина, а как известно женщин-программистов не бывает.
Другое |
||||||||||
90
jsmith
13.02.12
✎
00:48
|
(89) ты так брутален сегодня, чайник
|
||||||||||
91
orefkov
13.02.12
✎
01:12
|
Имхо префиксы в 1С можно применять, только не для описания типа, а для места порождения переменной, примерно
л - локальная м - модуля п - параметр о - общий модуль без префикса - значит реквизит ъ ь ы - счетчики. Ну, типа чтобы быть уверенным, что твоя локальная ТаблицаПроводок не грохнет глобальную. Другое |
||||||||||
92
Fynjy
13.02.12
✎
01:17
|
Делаю как orefkov, только добавлю
ф - форма р - реквизит объекта (в 8 обработки или отчета) Другое |
||||||||||
93
Поpyчик-4
13.02.12
✎
01:34
|
В типовых от 1С только один-два префикса: на "м" и какой-то ещё. В каминовских поделиях какой-то ппц, руки бы оторвать.
Префиксы хороши для подсистем или объектов, внедряемых в штатные механизмы типовых. Пакость какая! |
||||||||||
94
Поpyчик-4
13.02.12
✎
01:36
|
(89) Бывает, знаю нескольких, которые сто очков вперёд дадут многим некоторым здесь с зп отстатыщь и от 22-х.
|
||||||||||
95
БибиГон
13.02.12
✎
08:11
|
(94) просто это мечта одинесника, который не нашел себе такую. На моей памяти никто еще не похвалился на мисте что имеет такую жену (!). :)))
|
||||||||||
96
Xapac
13.02.12
✎
10:21
|
(51)это КамелКасе вы что то путаете
Пакость какая! |
||||||||||
97
Reset
13.02.12
✎
10:35
|
Изредка использую, как правило в коротких локальных конструкциях.
В 99% случаев правильное именование гораздо эффективнее. Другое |
||||||||||
98
Reset
13.02.12
✎
10:35
|
.
Пакость какая! |
||||||||||
99
Reaper_1c
13.02.12
✎
12:31
|
(95) Дык прально, если такая жена - то и имеет она.
|
||||||||||
100
DosWinXP
13.02.12
✎
12:37
|
Когда мне требуется явно запомнить для себя (и других дорабатывающих), что "здесь будет содержаться значение строкой", то я так и называю переменную ДатаРожденияСтрокой или СтрокаДатаРождения: при этом сДатаРождения мне кажется гораздо менее информативной. Но учитывая, что в подавляющем большинстве случаев этого не требуется, а переменные проще помнить и применять в коде по их названиям БЕЗ нотации, проголосую что чаще всего это лишнее.
Пакость какая! |
||||||||||
101
Sensodin
13.02.12
✎
12:40
|
усложняет чтение кода
Пакость какая! |
||||||||||
102
СвинТуз
13.02.12
✎
12:42
|
Личное дело каждого )
я например уже привык перед табличным полем делать префикс "тп" перед таблицой значений "тз" и т.д. пред строкой или числом лениво это делать Другое |
||||||||||
103
ИС-2
naïve
13.02.12
✎
12:44
|
(2) Венгры не понимают гениальной сути 1c
|
||||||||||
104
SUA
13.02.12
✎
12:44
|
Комментарий целевого назначения при определении эффективнее, ну и F12
Пакость какая! |
||||||||||
105
Ахиллес
13.02.12
✎
12:55
|
Иногда (редко) добавляю суффикс в конец переменной, когда есть список переменных с одинаковым именем, но разными типами. Но в большинстве случаев и это не надо, а уж в чистом виде венгерская нотация в 1С это дурь. Часто в переменной разные типы хранятся, какой тогда префикс давать?
Пакость какая! |
||||||||||
106
024410
13.02.12
✎
12:57
|
Только не доводить до абсурда.
Удобно, я за! |
||||||||||
107
Ахиллес
13.02.12
✎
12:59
|
(106) Не доводить до абсурда это как? Не все переменные с префиксами заводить? А зачем они вообще тогда нужны? Там где тип переменной играет проще проверку на тип воткнуть, чем фигнёй с префиксами заморачиватся.
|
||||||||||
108
ukolabrother
13.02.12
✎
13:07
|
(0) Читаю тип данных в отладчике
Пакость какая! |
||||||||||
109
xarann
13.02.12
✎
13:10
|
Некрасиво и нечитаемо становится :) Только если область действия обозначать.
Пакость какая! |
||||||||||
110
NcSteel
13.02.12
✎
13:11
|
Аргументирую
Пакость какая! |
||||||||||
111
Scooter
13.02.12
✎
13:16
|
в экспортные переменные объекта часто добавляю "м" как в типовых
иногда создаю "локальные" переменные добавляя "л/лок" к примеру локСтавкаНДС, локВалюта Другое |
||||||||||
112
skunk
13.02.12
✎
13:18
|
|||||||||||
113
Прохожий
13.02.12
✎
13:45
|
Мало того что алфавит казахский придумали с 42 буквами со всякими палочками и крючками, так ещё имена собственные будут писать с одной или нескольких маленьких лишних букв...
Пакость какая! |
||||||||||
114
YV
13.02.12
✎
13:46
|
К именам параметров процедур и функций обычно добавляю префикс "п", чтобы отличить от локальных переменных с таким же именем. К областям табличных документов добавляю префикс "об". В других случаях не использую.
Другое |
||||||||||
115
fisher
13.02.12
✎
13:48
|
В 7.7 широко использовал всякие "тз", "сп", "спр" и иже с ними.
В 8-ке стало неэффективно из-за значительно расширенной объектной модели. Поэтому юзаю исключительно "длинные мнемонические". Так код значительно легче читается. Типа "ТаблицаТоваров", "СтрокаТаблицыТоваров", "ЭлементСпискаУслуг", "ЗаказСсылка" и т.п. Префиксы иногда использую только для уточнения области видимости. Другое |
||||||||||
116
n koretsky
13.02.12
✎
14:13
|
полностью согласен с (115).
Другое |
||||||||||
117
Jaffar
13.02.12
✎
19:04
|
(62) "В чисто интерпретируемых языках от длины имени переменной зависит скорость выполнения кода, поэтому, в JavaScript, например, стараются переменные сделать покороче."
и каков выигрыш, если я вместо 10 символов дам имя переменной в 2 символа? да, программа станет короче (на целых 8 байт), по сравнению с килобайтами кода на Java или мегабайтами ехе-шников - существенная экономия! :-) |
||||||||||
118
ado
13.02.12
✎
19:25
|
Всё не читал, но какая, нах, может быть венгерская нотация в языке с динамической типизацией?
Пакость какая! |
||||||||||
119
Steel_Wheel
13.02.12
✎
19:32
|
(118) тсс! не пали контору
|
||||||||||
120
МастерВопросов
13.02.12
✎
19:35
|
+(118) или ссылка на реквизит составного типа
Удобно, я за! |
||||||||||
121
Humandra
13.02.12
✎
19:56
|
(118) Насчет динамической типизации - ИМХО, одно из двух:
1) Использование динамической типизации не по назначению - завели переменную "МояПеременная", и юзают ее в хвост и в гриву, то она число, то справочник. Зло в чистом виде, я такое не признаю. 2) Использование как параметр метода, в зависимости от типа - разные действия. Признаю, иногда удобно. Но в этом случае просто можно ввести префикс "любой тип". Или опускать префикс вообще, что будет эквивалентно. Например: сзпКонтрагенты - параметр метода - список значений с контрагентами тзпКонтрагенты - параметр метода - таблица значений опКонтрагентСсылка - параметр метода - СправочникСсылка.Контрагенты опКонтрагентОбъект - параметр метода - СправочникОбъект.Контрагент пКонтрагент - параметр метода произвольного типа, содержащий какие-то данные о контрагенте. Проголосую за свой вариант: :) Удобно, я за! |
||||||||||
122
Goggy
13.02.12
✎
19:58
|
(55) согласен
Пакость какая! |
||||||||||
123
Humandra
13.02.12
✎
20:04
|
Вот вам методы:
Функция ПолучитьРасчетныйПериодТарифа(Тариф) // много кода; Возврат Период; КонецФункции Процедура МояПроцедура() Период = ПолучитьРасчетныйПериодТарифа(Тариф); КонецПроцедуры Какого типа переменная Период, без отладчика? А вот если так: Функция ПолучитьРасчетныйПериодТарифа(опТарифСсылка) // много кода; Возврат оПериодСсылка; КонецФункции Уже можно догадаться, что оПериодСсылка - ссылка на справочник или другой объект конфигурации, а не дата |
||||||||||
124
Humandra
13.02.12
✎
20:10
|
Вообще, я просто пыталась одно время по работе разобрать код вида:
Запрос = "ТекстЗапроса"; Запрос2 = СоздатьОбъект("Запрос"); Запрос2.Выполнить(Запрос); Параметры = ДругиеПараметры; ТретьиПараметры = ВызовМетода(Параметры); ВызовМетода(Контрагенты, ТретьиПараметры); увы, префиксы были не везде, писали код многие люди с разным стилем, и часто было непонятно, что это - ТЗ, СЗ или вообще DynValue. :( и что с ними делают вообще. Может, если не злоупотреблять таким кодом, и ничего будет даже без префиксов :) |
||||||||||
125
Vladal
13.02.12
✎
20:10
|
А кто объяснит в типовых такие префиксы - "м" и "л":
мСтруктураДанныхКонтрагента; лЕщеЧто-ТОТамТакое ? |
||||||||||
126
Humandra
13.02.12
✎
20:12
|
(125) 99% вероятности -
м - область видимости модуля л - локальная область видимости |
||||||||||
127
Vladal
13.02.12
✎
20:12
|
Humandra, спасибо, я всё гадал - "л" должна быть локальной... "м" - х.з.
|
||||||||||
128
Vladal
13.02.12
✎
20:13
|
Вот про венгерскую нотацию:
Самое идиотское изобретение человечества после фонарика на солнечных батарейках, это, конечно же, венгерская нотация. Однако, к сожалению, этот факт до сих пор не является очевидным для многих разработчиков. Поговорим о венгерской нотации и создаваемых ею проблем более детально. Лишняя информация Информация о точном типе переменной в ее имени — это лишняя информация. Любая лишняя информация сбивает пользователя с толку, и он начинает думать не о том, о чем должен. Конечно же, некоторая информация о типе пользователю все же может понадобиться, однако речь идет далеко не о том, является ли тип указателем на void, или же это строка в стиле Plain C. Во-первых, пользователю может понадобиться информация о размере переменной или объекта. С этой задачей прекрасно справится оператор sizeof. Во-вторых, пользователю нужно знать, является ли языковая сущность единичным объектом, или же это множество объектов, то есть контейнер. И не просто контейнер, а контейнер в человеческом понимании. То есть, std::string — единичный объект. Вся остальная информация является лишней. Если же для понимания программы пользователю все-таки требуется какая-то дополнительная информация, касающаяся типа той или иной сущности, то это просто означает, что система, с которой работает пользователь, плохо спроектированна, а предоставляемые сущности имеют плохие имена, не соответствующие формуле «Именование = назначение = использование». далее здесь: http://www.insidecpp.ru/art/23/ |
||||||||||
129
Vladal
13.02.12
✎
20:14
|
Лично я использую венгерскую нотацию выборочно - Таб - переменная для табличного документа (7.7), префикс тз или ТЗ - для таблиц значений. Всё остальное - ОбычнымПривычнымНамСпособом.
|
||||||||||
130
mikeA
13.02.12
✎
20:17
|
(123) в комментариях к функциям обычно пишут тип возвращаемого значения.
снегопат умеет показывать комментарии к функциям может быть вам купить корпоративную лицензию снегопата? :) Пакость какая! |
||||||||||
131
Господин ПЖ
13.02.12
✎
20:24
|
(128) пуская афтор этой шняги ушибется об стену...
|
||||||||||
132
fisher
13.02.12
✎
20:26
|
(123) "Уже можно догадаться, что оПериодСсылка - ссылка на справочник или другой объект конфигурации, а не дата"
Об этом легко догадаться и без "о". А непосвященных это "о" будет только сбивать с толку и вводить в смущение. |
||||||||||
133
Humandra
13.02.12
✎
20:27
|
(128) Статьи про С++ - не то.
Ибо в других средах можно навести мышкой на переменную, и узнать ее тип, а в 1С не получится :( В принципе, можно попробовать обойтись и чисто префиксами по области видимости Контрагент - реквизит формы лКонтрагентСсылка - переменная СправочникСсылка... лКоличествоКонтрагентов - число лДатаС - дата главное, чтобы именовали все правильно. Проблема в том, что многие любят давать имена типа: "Структура". Это значит - "строка, содержащая индексное выражение для поиска в ИндексированнойТаблице" (1С 7.7), а вовсе не Structure. И черта с два ты поймешь, что это такое без отладчика. Был бы стандарт - волей неволей было бы попроще :( |
||||||||||
134
Rovan
гуру
13.02.12
✎
20:57
|
(+8) +1
|
||||||||||
135
Stepa86
13.02.12
✎
21:01
|
А теперь внимание сюрприз!!!
Венгерская нотация в изначальном ее проявлении это ни разу не то, что о ней все сейчас знают. Префиксами в тру Венгерской нотации шифруются ВИДЫ переменных, а НЕ типы. ВИДЫ!!! Автор опечатался просто, а популизаторы больно то в суть не вдумывались... Задумка была в том, чтоб ошибочный код выглядел ошибочно, например есть у нас некоторая строка, которую мы получили от пользователя, она может содержать скульинъекцию, поэтому она опасна и назовем ее опСтрокаОтПользователя. А чтобы с ней работать, нужно ее обезопасить и получить бзСтрокаОтПользователя. И первая и вторая переменная одного типа - строки, но будут большие проблемы, если их перепутать. Код преобразования может выглядеть так бзСтрока = бзИзОп(опСтрока) (англ. префиксы как то симпотичнее выглядят), и в этом коде очевидно, что должно быть справа, а что слева. Нотацию ввели, чтоб не путать не переменные одного типа (тип то IDE и так подскажет), а разные виды переменных одного типа. Подробнее у Джоэла "Как заставить неправильный код выглядеть неправильно" http://local.joelonsoftware.com/mediawiki/index.php/Как_заставить_неправильный_код_выглядеть_неправильно В работе активно юзаю ц, п, л - чтоб не затереть случайно другую переменную; об - чтоб явно выделить, что это объект, нефик его передавать клиенту и вообще лучше аккуратнее с ним надо( клиент - ссылка на Контрагента, обКлиент - объект ); стр - для хранения строкового представления (датаОтгрузки - дата, стрДатаОтгрузки - форматированная дата) тз, сз, тп, тч, структ, соотв - тупо сокращения, массив пишу полностью; тек, нов, стар, пред - так же сокращения. Постоянное использование одних и тех же префиксов сильно помогает при подборе переменных после шифт+пробела, т.к. сразу отбрасываются лишние варианты. |
||||||||||
136
Stepa86
13.02.12
✎
21:03
|
в общем скорее применяю, чем нет, просто необходимости мало
Другое |
||||||||||
137
Humandra
13.02.12
✎
21:16
|
(135) Во! Согласна на 100%, ну разве что сокращения другие предпочла бы, но это непринципиально.
Действительно, я тоже против префикса под КАЖДЫЙ тип. Только за префиксы области видимости + примитивных типов, благо их 4 всего (как раз чтобы не путать дату и строку-дату) + объекты + коллекции значений (сз, тз, дз как минимум) |
||||||||||
138
Funeral_Worm
13.02.12
✎
21:30
|
Убивает читаемость кода
Плюс эффект от <Ctrl> + <Space> будет заметно ниже Пакость какая! |
||||||||||
139
IamAlexy
13.02.12
✎
21:35
|
|||||||||||
140
IamAlexy
13.02.12
✎
21:40
|
(123) самый главный вопрос: зачем мне знать тип переменной?
надо - в отладчике гляну... с каких пор в 1С жесткая типизация переменных началсь? а раз ее нет - то какой смысл вводить методики и правила несвойственные этому языку программирования? пример: где то в коде есть строка: стр = "1233123"; а через 100 строк этого же модуля, можеть быть что то типа для каждого стр из СтрокиНаУдаление цикл ну и толку мне делать 2 разны переменные если они "проходные" ? воспользоватся и забыл... сидеть выдумывать префиксы? это же тупо некрасиво и плохо читаемо... |
||||||||||
141
IamAlexy
13.02.12
✎
21:42
|
оно конечно понятно... программирование на английсокм, венгерская нотация... это все попытки придать "бейсику переведенному промтом" вид "настоящего языка программирования" дабы не выглядеть лохом перед старшими товарищами программирующими в кошерных ПХП и прочих ЯВАх....
но читаемость кода от этого не выигрывает... |
||||||||||
142
orefkov
13.02.12
✎
22:03
|
(138)
Ну, для штатного ctrl+space можнет это и так, а для нормального - наоборот позволяет угадывать с первой-второй буквы :) |
||||||||||
143
skunk
13.02.12
✎
22:38
|
(135)хм ... ты её читал что-бы делать такие заявления?
|
||||||||||
144
Stepa86
13.02.12
✎
22:43
|
(143) кого её? и что я такого написал, что реакция "чтобы делать такие заявления?"
|
||||||||||
145
Хранимая Процедура
13.02.12
✎
23:04
|
(31) ты хоть сам понял, какой бред ты сейчас сказал?
В си самая жесткая система типов и компилятор их знает всегда Назад в школу. |
||||||||||
146
Хранимая Процедура
13.02.12
✎
23:06
|
(141) в чем проблема у 1с? Нормальный проприетарный яп
Бывают и в 1000 раз хуже |
||||||||||
147
skunk
13.02.12
✎
23:08
|
(144)ты говорил о венгерской нотации
|
||||||||||
148
Хранимая Процедура
13.02.12
✎
23:13
|
(0) маладес ты таки прочитал методичку по 1с
Возьми с полки пирожок Другое |
||||||||||
149
skunk
13.02.12
✎
23:15
|
Язык "Буревестник" - это секретная разработка советских программистов.
Применялся для пыток американских программистов. Ныне известен как встроенный язык 1С. |
||||||||||
150
Stepa86
14.02.12
✎
07:54
|
(147) Я привел вольный пересказ Джоэла, с которым полностью согласен, и ссылку на него (сама ссылка лежит, но гугловский кешик даст почитать, я то вообще книгу читал). Он примерно в то время работал над екселем и не понаслышке знает о стандартах мс. Вроде б достаточно аргументировано и без перехода на личности, не?
Оригинал не читал, как и 99,9% из тут тусующихся (Вы читали, как я понял по статье в КЗ). Но и общего понимания, что Венгерская нотация - кодирование типа переменной префиксом, не поддерживаю, т.к. это излишне и майкрософт не могла так лажануться, приняв ее за стандарт у себя в разработке. |
||||||||||
151
skunk
14.02.12
✎
08:11
|
(150)для того что-бы соглашаться и делать на этом громкие заявления ... надо для начала хотя бы ознакомиться ... статья лежит в свободном доступе на сайте мсдн все той-же компании майкрософт ... лежит там с 1999 года (вроде как) ... почти в неизменом ввиде ... рекомендю прочитать статью ... а потом заявлять чего хотел автор статьи и кто там все попутал
|
||||||||||
152
TigerPXN
14.02.12
✎
08:15
|
Не вижу смысла. Все равно жесткой типизации нет.
Другое |
||||||||||
153
ValeriTim
14.02.12
✎
10:51
|
Меня вообще раздражают такие переменные ...
Пакость какая! |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |