Вход | Регистрация

  1  2  3  4   
1С:Предприятие ::

Метки: 

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

Я
   svsvsv
 
26.09.17 - 13:17
4. Без правил, как хочу, так и пишу36% (4)
3. Без префиксов, по стандартам 1С (КамелКасе)27% (3)
1. Префиксы по области видимости (п, л, м, гл, ...)18% (2)
2. Префиксы по типу данных (сз, тз, м/мас, ...)18% (2)
Всего мнений: 11

Коллеги, кто-то из вас придерживается стандартов разработки (в части оформления кода) с сайта ИТС?

И второй вопрос, если нужно добавить переменную в типовом модуле, ставите ли какие-то префиксы/постфиксы у таких переменных?

И третий вопрос, в наименованиях параметров собственных процедур и функций, используете ли префикс "п" (например, Функция ЧислоПростое(пЧисло) )?
 
  Рекламное место пустует
   aka AMIGO
 
101 - 26.09.17 - 14:59
Какие правила? Что-то я не помню, чтобы они были к наименованиям..

Как удобно и понятно - так и именую.
В последней обработке
ОснКомплект
ОснДокумент
ДругойКомплект
ДругойДокумент
Процедура ПеренестиВТаблицуКомплектации()
ТЗК (таблица значений) 
Оно, конечно, можно назвать РезультирующийДокумент, но легко ошибиться при печати, и будет накапливаться досада.. К концу написания кода будет противно смотреть в модуль. Домой захочется. :)

Мой код, что хочу - то и делаю :)
Какие могут быть правила..
   Cyberhawk
 
102 - 26.09.17 - 15:00
(101) Код после тебя достанется кому-то, потому и правила
   bzs015
 
103 - 26.09.17 - 15:01
Вообще как-то здесь на форуме была тема стандарт языка 1С. Желательно его не нарушать, иначе после тебя твой код никто не сможет прочитать. Да и работать новый код будет только в твоей программе и только в одном месте.
   Брудвар
 
104 - 26.09.17 - 15:03
(2) CamelCase  - правильно так: camelCase. Иначе получится какой-то одноэсовский КамелКасе

Мое правило: Писать по стардартам по которым написан редактируемый код.
Достаточно запомнить только одно правило, и все. Не надо изобретать велосипед.
   Cyberhawk
 
105 - 26.09.17 - 15:05
(104) Так есть как с верхним первым регистром, так и с нижним
   Филиал-msk
 
106 - 26.09.17 - 15:06
(87) Рефакторинг код платный, уж извини. Мы же жадные, ты не забыл?
   Филиал-msk
 
107 - 26.09.17 - 15:08
(105) ты путаешь camelCase и PascalCase
   Брудвар
 
108 - 26.09.17 - 15:09
(105) Если это имя класса или какой-то конструктор или фабрика, а не простая переменная, то другое дело.
   Cyberhawk
 
109 - 26.09.17 - 15:09
(107) Не путаю, это и есть два варианта CamelCase
   Мэс33
 
110 - 26.09.17 - 15:10
(99) спасибо.
Код кстати стал читабельнее и понятнее.
 
 
   Брудвар
 
111 - 26.09.17 - 15:10
(107) Точняк. Вчера только на Паскале печатал. Прикольно было.
   aka AMIGO
 
112 - 26.09.17 - 15:11
Писать переменные на английском , в порядке лизания в одно место известно кого, не буду ни в жисть! :)
Для меня это - не проблема, но не буду принципиально.
Дешевые понты.
   Филиал-msk
 
113 - 26.09.17 - 15:12
(112) Ъ (;
   bzs015
 
114 - 26.09.17 - 15:13
https://thequestion.ru/questions/111989/pochemu-bolshinstvo-yazykov-programmirovaniya-na-angliiskom-yazyke взгляд на языки программирования с позиции английского языка, как языка семантики и языка международного общения.
   Брудвар
 
115 - 26.09.17 - 15:13
(112) Если от лизания известно кого тебя отделяют только лишь переменные на английском, то конечно лучше не рискуй!
   Мэс33
 
116 - 26.09.17 - 15:15
(112) ой мля )
   Филиал-msk
 
117 - 26.09.17 - 15:15
(114) Англичанам, кста, хуже. У них язык победнее, все буквально читать приходится.

удалить хМояРучка;
   aka AMIGO
 
118 - 26.09.17 - 15:16
:)) давайте, давайте :)
   Брудвар
 
119 - 26.09.17 - 15:16
(114) Согласен. Особенно бесит слово КонецЦикла. Какой балбес это придумал?
   Мэс33
 
120 - 26.09.17 - 15:17
(117) удалить() - звучит на русском не очень, особенность языка,
а инфинитив в английском звучит нормально delete()
   Fish
 
121 - 26.09.17 - 15:17
(112) Что будешь делать с WebЦвета? :))
   Мэс33
 
122 - 26.09.17 - 15:18
(121) :0)) ахахаха
   aka AMIGO
 
123 - 26.09.17 - 15:18
(117) но код получается короче :)
Del xMyHand - 11 символов
удалить хМояРучка - 17 символов, в 1.5 раза длиннее :)
   aka AMIGO
 
124 - 26.09.17 - 15:19
(121) Напишу WebColors :)
   _Дайвер_
 
125 - 26.09.17 - 15:19
(121) + xD
   Филиал-msk
 
126 - 26.09.17 - 15:20
   aka AMIGO
 
127 - 26.09.17 - 15:21
(126) Забавно :)
   Брудвар
 
128 - 26.09.17 - 15:22
(123) при чем здесь hand?
del myPen покороче будет.
Хотя на русском даже не понятно что за ручка.
   aka AMIGO
 
129 - 26.09.17 - 15:24
(128) Ну, да - ручка с чернилами, ручка ребенка и ручка у чайника :)
   Филиал-msk
 
130 - 26.09.17 - 15:24
(128) потому что хендл (;

Вот так всегда, берутся именовать сущности а слов не хватает. И начинается... глсзтз
   _Дайвер_
 
131 - 26.09.17 - 15:27
(130) В русском языке такой проблемы нету)
   aka AMIGO
 
132 - 26.09.17 - 15:27
"глсзтз" не придумать мне ни в жисть! Именую, чтобы было мне понятно.
Хотя..
глСЗ - я б поименовал глобальную в ГМ. Было бы понятно, что это есть и где оно
   bzs015
 
133 - 26.09.17 - 15:30
Что интересно в русских языках программирования, это то, что они все имеют синхронный однозначный английский перевод, если их открыть и на них посмотреть. https://ru.wikipedia.org/wiki/Языки_программирования_с_ключевыми_словами_не_на_английском Сравним еще сколько языков написано на русском и сколько на английском, сколько языков базовых (низкого уровня) написано на английском. Сколько Операционных систем написано русских и сколько написано английских?
 
  Рекламное место пустует
   aka AMIGO
 
134 - 26.09.17 - 15:31
+132 мне в наследство (с 2002 года, кажись) достались глобальные Рубли 
Что-ж.. правильно названа переменная, применяю.
Есть:
Перем глКатПечФорм;.. ну и Бог с ней, её и пишу, где надо. И не меняю её типа глКаталогПечатныхФорм, ибо на проверку - фигня.
   Филиал-msk
 
135 - 26.09.17 - 15:35
(133) Сперва добейся? ))))))))))
   bzs015
 
136 - 26.09.17 - 15:36
(135) Это точно
   Филиал-msk
 
137 - 26.09.17 - 15:37
(136) Что точно?
   Fish
 
138 - 26.09.17 - 15:37
(133) Успокойся уже. Все программы и все ОС работают в машинных кодах. И им пофиг, от слова совсем, с какого языка их преобразовал компилятор.
   aka AMIGO
 
139 - 26.09.17 - 15:37
+134 с того же времени есть 

Процедура ЗаисьВСправочник(Конт) Экспорт

Именно "Заись".
Поскольку применена во многих местах, плюс к тому, рулит опенконф - имя это не трогаю.
   aka AMIGO
 
141 - 26.09.17 - 15:42
+139  могу поменять везде в конфе на RecToRef, угодив тем самым авторам известных постов в ветке :)
   Филиал-msk
 
142 - 26.09.17 - 15:43
В восьмерке выгодно писать правильно и давать реквизитам вменяемые имена. Потому что ЗаполнитьЗначенияСвойств.
   aka AMIGO
 
143 - 26.09.17 - 15:44
(142) Во, это уже традиция. В 7-ке - было вольное именование.
   Филиал-msk
 
146 - 26.09.17 - 15:47
(141) Тогда уж BuniToRec (:
   Филиал-msk
 
147 - 26.09.17 - 15:47
(144) Кто и как мешает тебе размножаться? Это важно! Подробости!
   Брудвар
 
148 - 26.09.17 - 15:48
(144) Не важно сколько русских, важно сколько россиян.
   bzs015
 
149 - 26.09.17 - 15:49
Проблема неразрешаемая или, как говорят суперзадача.
 
  Рекламное место пустует
   Sserj
 
150 - 26.09.17 - 15:58
(114) Детские понты.
Человек не живущий в англоязычной среде всегда будет заведомо проигрывать в произовдительности. Потому что приходится тратить часть ресурсов мозга на переводы туда-обратно.
   Филиал-msk
 
151 - 26.09.17 - 15:59
(150) Программист?
   aka AMIGO
 
Модератор
155 - 26.09.17 - 16:02
Не отклоняйтесь от темы. Иначе ветка будет закрыта.
   aka AMIGO
 
156 - 26.09.17 - 16:05
(150) "Проигрывать в производительности" - это-то ладно.. Вот уставать он будет, и совершать ошибки - это посерьёзнее пунктик.
   Fish
 
157 - 26.09.17 - 16:10
(150) А зачем переводить туда-сюда? Для того, чтобы писать программы на том же Паскале или Си знание английского совершенно не нужно, как и дословный перевод операторов совершенно ни к чему не нужен. Достаточно знать, что и как работает.
   aka AMIGO
 
158 - 26.09.17 - 16:12
(157) Это если прогер имеет уже достаточный опыт, тогда всё получается автоматом.
Сомневаюсь чуток, что в 1С будет такой опыт :)
   _Дайвер_
 
159 - 26.09.17 - 16:21
(158) Ну в 1С приходит понимание программирования, язык то объектно ориентированный. Переменные, процедуры, функции, циклы и прочее уже знаешь, подтянуть английский это уже другое
   aka AMIGO
 
160 - 26.09.17 - 16:26
В 1С еще хорошо, что прогер не ограничен размером памяти, и прочих показателей.
В 1969-1973 г.г. я работал на первых советских ЭВМ, в частности, МИР-1 и МИР-2. Память не помню уж, какая, но прожка едва входила, чтобы выполняться. Иногда увлекался и хвост кода обрезался.. и сообщений об этом не поступало! Вот засада-то была .. И проверить было трудно.
У меня с тех пор остался пожелтевший листок с кодом, я считал контура для р/приемника - входные и гетеродинные.
Приведу фрагмент кода. Это цикл такой :)
"ДЛ" Ы=1 "Ш" 1 "ПО" 1020 "ВЫП" ЧВИТ=ЧКАН*0,5... ну и т.д. :)
ЧВИТ - число витков, ЧКАН - частота канала
Сокращал всё, что можно..
Вот с тех пор я и слепляю инфу в имени переменной :) 47 лет уж миновало, а мурашки по коже до сих пор :)
Особенно, когда считать приходилось сход ракеты со стапеля, вот тут был мандраж.. непередаваемый..
   aka AMIGO
 
161 - 26.09.17 - 16:30
+ так что ТЗЗ и ТЗтмп - мои самые популярные имена :)
   Sserj
 
162 - 26.09.17 - 16:31
(157) А что сегодня пишут на Паскале или Си с использованием только операторов???
Если хелловорд вывести то оно конечно может и хватит, да и то стандартные библиотеки вроде как нужны.
А все современные фреймворки и библиотеки сейчас такие классы и методы имеют, что местный ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент не таким уж и мутным выглядит :)
   Филиал-msk
 
163 - 26.09.17 - 16:35
Здесь, кстати, ещё и влияние предметной области есть. Ну-ка, фанатики английского, как правильно написать СальдоДебетовоеНаКонецПериода, а? (:
   aka AMIGO
 
164 - 26.09.17 - 16:37
(163) Да ну его.. SDebKonPer - и достаточно :)
   drcrasher
 
165 - 26.09.17 - 16:38
(164) тогда уж SDebEndPer
   Филиал-msk
 
166 - 26.09.17 - 16:38
(164) И NachPer, ага
   aka AMIGO
 
167 - 26.09.17 - 16:41
(165) (166) А что, нормально-ж :)

Скользнул глазами по постам, что-то не нашел ссылки на необходимость писать код 1С на английском..
Или невнимателен. Для эуропэйцев кодируют единицы.. ну, от силы сотня прогеров 1С, и это - всё..
   infosoft-v
 
168 - 26.09.17 - 16:48
(0) доработали стандарт коллег из (CROC Inc) и теперь придерживаемся его при групповой разработке https://github.com/infosoft-v/1c-styleguide

Там все в полном объеме и префиксы и именование констант и логирование ошибок.
   Филиал-msk
 
169 - 26.09.17 - 16:48
(167) Тут европейцы даже не при чем. Ещё меньшее число людей пишет конфигурации с нуля, не дорабатывая типовые и не используя БСП и прочее БПО. А используя хоть что-то за основу автоматически получаешь в нагрузку "вариант встроенного языка" и т.п.
Вот и бесится народ - "а я, да мы, да никто"... (:
   aka AMIGO
 
170 - 26.09.17 - 16:53
(168) Интересно.. процентов 10-15 из рекомендаций, пожалуй, выполняю, остальное - как Бог на душу положит :)
ЗЫ. хорошая ссылка..
   ildary
 
171 - 26.09.17 - 16:55
(170) особенно хорошо смотрится имя переменной бЭтоБрак
   Филиал-msk
 
172 - 26.09.17 - 16:55
(168) То есть вы каждый раз переименовываете параметры в автоматически создаваемых платформой обработчиках? Бедненькие...
   Филиал-msk
 
173 - 26.09.17 - 16:56
(170) Там процентов 90 - стандарты разработки самой 1С с ИТС
   Klesk
 
174 - 26.09.17 - 16:58
(0) для фикси, не вижу особого смысла в собственных префиксах, так как в основном приходиться править типовой код, возможно документировать в этом случае лучший вариант, но лень, и мне пофиг на тех кто будет после меня, а я разберусь
   mxs089
 
175 - 26.09.17 - 17:05
ЭлементКоллекцииПроизвольныйИзТаблицыЗначения

я так объявляю переменную для итератора

так для обхода строки табличной части

ЭлементКоллекцииСтрокаТабличнойЧастиИзТабличнойЧасти
   mxs089
 
176 - 26.09.17 - 17:07
локальную переменную можно объявлять так

ЛокальнаяПеременнаяКонтрагентыМассив = Новый Массив;

и обязательно очистить в конце

ЛокальнаяПеременнаяКонтрагентыМассив = Неопределено;
   Филиал-msk
 
177 - 26.09.17 - 17:10
(176) Очень жаль, что ты не используешь вспомогательное слово Ссылка! У тебя ведь массив ссылок, а не какой-то ерунды.
   Numerus Mikhail
 
178 - 26.09.17 - 17:11
(175) Удобно? Мне кажется если добавить в конце ИмениБорисаНургалиева, то быстрее работать будет.

Переменные, хоть и должны называться осмысленно, не должны иметь длинных имен.
   Cyberhawk
 
179 - 26.09.17 - 17:12
(176) Зачем в конце чистить, если оно само очистится?
   Numerus Mikhail
 
180 - 26.09.17 - 17:13
(176) А Зачем очищать? Тут уже была куча споров на эту тему, но вроде как это необязательно.
   mxs089
 
181 - 26.09.17 - 17:17
(179) (180) хочу все контролировать
   Филиал-msk
 
182 - 26.09.17 - 17:20
(168) Кстати, сейчас заметил. Ваши стандарты сами себя не соблюдают. Например в части присвоения значения структуре...

// Хорошо:
ПараметрыПодключения = ПолучитьПараметрыПодключения()

...и предыдущего требования венгерской нотации для имени переменной той самой структуры.
И не надо, пожалуйста, отчаянно вешать на уши лапшу, что имеется в виду реквизит обьекта.
   Филиал-msk
 
183 - 26.09.17 - 17:21
(178) ты не можешь написать фамилию без ошибок, неверный?
   strrike
 
184 - 26.09.17 - 17:21
(178) оффтоп - а если добавить не НурГалиева, а Нуралиева, то вообще обгонит С.
   Numerus Mikhail
 
185 - 26.09.17 - 17:23
(183) Честно сказать, я даже не знал как она пишется. По памяти писал. Ошибся, с кем не бывает :)
   Филиал-msk
 
186 - 26.09.17 - 17:25
(185) Вот в имени ты даже не сомневался. Особенно, если вспомнить, что разработкой платформы (и значит влиянием на скорость) заведует Сергей (:
   Cyberhawk
 
187 - 26.09.17 - 17:33
(182) Глаголы типа "Получить" в риведенном примере - не по стандарту :) Надо просто ПараметрыПодключения()
   Cyberhawk
 
188 - 26.09.17 - 17:34
(185) Нургалиев это какой-то с ГИБДД связанный чел
   Филиал-msk
 
189 - 26.09.17 - 17:36
(188) Эксминистр МВД, ЕМНИП. Это тот, "который разрешил"
   Cyberhawk
 
190 - 26.09.17 - 17:42
(189) Чего разрешил?
   Филиал-msk
 
191 - 26.09.17 - 17:44
(190) http://lurkmore.to/Нургалиев_разрешил
   Numerus Mikhail
 
192 - 26.09.17 - 17:44
(190) Бить полицейских
   Cyberhawk
 
193 - 26.09.17 - 17:45
(191) Спс)
   Tateossian
 
194 - 26.09.17 - 17:56
(80)

РублиКопейки = Формат(Сумма, "ЧДЦ=") + "руб. " + Формат(Сумма*100, "ЧЦ=2; ЧДЦ=; ЧРД=") + "коп. ";
   Tateossian
 
195 - 26.09.17 - 18:16
(194) Исправляюсь, так не будет работать, но будет работать вот так:

Коп = Сумма*100%100;

Руб = Сумма-(Сумма*100%100)/100;
   trdm
 
196 - 26.09.17 - 18:31
1. Префиксы по области видимости.
Перем глГобальнаяПеременная;
2. Префиксы параметров функций и временных переменных.
Функция Фоо(псРаз, псДва)
   вСуммаРаДва = псРаз + псДва;
   Возврат вСуммаРаДва;
КонецФункции;

Да, я извращенец, но код так понятнее.
   trdm
 
197 - 26.09.17 - 18:34
типа "вСуммаРаДва" в - временная
псРаз - пс - пас,передача.
   Филиал-msk
 
198 - 26.09.17 - 18:52
(197) Как ты думаешь, что делает следующий фрагмент кода?
Процедура ПолучитьСуффиксныйМассив_(Ранг, След, Охват = 1) Экспорт
    
    Старший = След.ВГраница();
    К = Ранг.Количество();
    
    Пока Старший < Ранг.ВГраница() Цикл
        
        Змея = Новый Массив(Ранг.Количество(), 1);
        
        Для у = 0 По След.ВГраница() Цикл 
            Для ж = 1 По След[у].ВГраница() Цикл 
                
                ё = (Цел(След[у][ж]) - Охват + К) % К; 
                х = Ранг[(ё + Охват) % К]; 
                Змея[Ранг[ё]].Добавить(ё + 0.1 * (Змея[Ранг[ё]][0] <> х)); 
                Змея[Ранг[ё]][0] = х 
                
            КонецЦикла 
        КонецЦикла;
        
        Старший = - 1;
        
        Для у = 0 По К - 1 Цикл 
            Для ж = 1 По Змея[у].ВГраница() Цикл 
                
                ё = Змея[у][ж]; 
                Старший = Старший + ё % 1 * 10; 
                Ранг[ё] = Старший 
                
            КонецЦикла 
        КонецЦикла;

        Охват = Охват * 2;
        
        След = Змея
        
    КонецЦикла
    
КонецПроцедуры

   vs84
 
199 - 26.09.17 - 19:08
(2) Святая истина!
1. всегда CamelCase
2. ИмяДолжноОтражатьСутьАНеТипДанныхИлиОбластьВидимости. Даже у параметров.
3. Ни каких сокращений 
4. Ни каких префиксов

Здравый, неэгоистичный, компетентный разработчик 1С будет следовать этому, а не ставить под сомнение.
   Филиал-msk
 
200 - 26.09.17 - 19:12
200 (:

  1  2  3  4   

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует