|
|
|
Хорошие и плохие имена переменных и функций vicof, Chai Nic, Krendel, Мультук, kostik79, Волшебник, Asmody, bimbambum, obs191, vis, ТДК, Fish, CepeLLlka, Ботаник Гарден Меран, Ненавижу 1С, comp2006, 1с_ник, LLeonidov, paramedic, RVN, skafandr, VladZ, Гипервизор, lxndr, ДенисСмирнов, avkynev, elka302, ptiz, Климов Сергей, integer, Maxsim24, dmt, АгентБезопаснойНацио, vyaz, Кукуев
| ☑ | ||
|---|---|---|---|---|
|
0
Волшебник
27.11.25
✎
20:08
|
Давайте обсудим.
Потом прикручу пост и голосовалку. Что с венгерской нотацией? Сразу в бан? Что с длинными именами? Должно ли быть слово Получить у функции? |
|||
|
1
Voronve
27.11.25
✎
20:10
|
ПолучитьНаименованиеНоменклатуры
сразу в топку, автора - на кол НоменклатураНаименованиеПолучить лампово, православно-кошерно |
|||
|
2
Волшебник
27.11.25
✎
20:10
|
Я щетаю, что плохие имена переменных выдают плохое понимание предметной области и контекста. Кстати, это признак бота.
|
|||
|
3
Voronve
27.11.25
✎
20:12
|
(2) Угу. Вся БСП - писана ботами
|
|||
|
4
d4rkmesa
27.11.25
✎
20:13
|
(0) >>?Что с венгерской нотацией? Сразу в бан?
Устарела, видел в основном в сторонних обработках(от "Контура", например) и отраслевках. >>Должно ли быть слово Получить у функции? 1С не одобряет, но таких функций в типовых еще много. |
|||
|
5
Волшебник
27.11.25
✎
20:13
|
(3) не исключено
|
|||
|
6
Волшебник
27.11.25
✎
20:16
|
(4) если у меня переменная типа СправочникОбъект, я обзываю её оКонтрагент
При этом переменная Контрагент является ссылкой |
|||
|
7
mmg
27.11.25
✎
20:15
|
(0) А смысл? Через пару-тройку лет кто вообще будет код читать, кроме ботов?
|
|||
|
8
Voronve
27.11.25
✎
20:17
|
ааа ... так вот кто аффтар имен переменных в клюшках о какого нить Папука: гллгбткуСчетчик = 0;
|
|||
|
9
Garykom
гуру
27.11.25
✎
20:28
|
(1) >НоменклатураНаименованиеПолучить
Когда окромя Номенклатура еще много разных то примерно так и делаю С именами переменных аналогично Не "КодНоменклатуры" а "НоменклатураКод", "НоменклатураНаименование" и т.д. |
|||
|
10
Garykom
гуру
27.11.25
✎
20:31
|
(0) Слово "Получить" как и прочие типа "Найти", "Создать", или совмещенное "НайтиСоздать" могут присутствовать по необходимости
Для удобства и отличия процедур/функций, аля разных действия с одним видом объекта Если просто сделать имя функции Номенклатура() - хрен поймешь что это и зачем И как потом дописывать другие функции Так что сразу НоменклатураПолучить() или ПолучитьНоменклатура() |
|||
|
11
Garykom
гуру
27.11.25
✎
20:35
|
(9)+ Кстати в последнее время иногда развлекаюсь через структуры
Вместо "НоменклатураКод", "НоменклатураНаименование" делаю структуру "Номенклатура" и у нее значения с ключами "Код" и "Наименование" Для логичных обращений Номенклатура.Код и Номенклатура.Наименование И внутри структуры могуть быть другие структуры или массивы а не только простые типы |
|||
|
12
Garykom
гуру
27.11.25
✎
20:38
|
Венгерская нотация удобна для чтения
Но неудобна для написания-разработки Длинные имена это хорошо! Пока они на экран влезают )) |
|||
|
13
DiMel_77
27.11.25
✎
20:49
|
(0) И вы туда же... Роберт Мартин, Стив Макконнелл и Волшебник :).
А по сути: 1) Венгерская нотация - используется только если это описано во внутренних стандартах проекта. Многие топовые программисты с которыми я работал используют её, но есть общие правила - поэтому иногда приходилось просить переписывать. 2) Длинные имена - хороший стиль требует использование длинных имен, для однозначного определения значений переменных, сокращения допускаются в рамках общепринятых сокращений. Код должен быть понятным программисту, который будет работать после вас. 3) По поводу "Получить", "Установить" и т.д. - лучше не использовать, но иногда для повышения читабельности кода допустимо. Тут ещё момент с реквизитами формы всплывает, поэтому иногда не зазорно в процедуре или функции "экранировать" потенциально опасные имена переменных. |
|||
|
14
Asmody
27.11.25
✎
20:53
|
Во-первых, мне не нравится стандарт 1С о наименовании переменных https://its.1c.ru/db/v8std/content/454/hdoc
В частности, вот это: "При этом, каждое слово в имени пишется с прописной буквы" и вот это "Имена переменных запрещается начинать с подчеркивания". Я имена локальных переменных метода начинаю с маленькой буквы. Тогда хоть как-то понятна область её действия. Параметры методов я часто начинаю с "п", если имя параметра может конфликтовать, например, с именем свойства или реквизита. Переменные модуля, коли таковые есть, я предпочитаю начинать с "м" по той же самой причине: показать область действия (и "червячок", что от них надо избавляться). Имена локальных методов модуля я так же стараюсь начинать с маленькой буквы. С "_" у меня начинаются имена общих модулей, которые реализуют "библиотечные" методы, не относящиеся к бизнес-логике и поведению метаданных и интерфейса, типа "синтаксического сахара". Например, "_Массивы" - содержит общие методы для работы с массивами. У меня есть даже модуль "__", содержащий наиболее часто используемые "хелперы". Например, __.ЕслиНеопределено() или __.ЭтоСегодня() и т.д. Подход Волшебника с "о" в ту же тему: видно, что это объект. Раз наш желтый вендор не удосужился снабдить нас инструментами для явного указания типа переменных, то какого хрена он запрещает нам писать так код, как нам удобно? |
|||
|
15
Garykom
гуру
27.11.25
✎
20:59
|
(14) А какой смысл использовать однобуквенные сокращения?
Да еще в нижнем регистре, который 1С не отличает? Имхо сделать префикс и писать с ним пИмяПараметр = ПараметрМетодаИмяПараметра мИмяПеременной = ПеременнаяМодуляИмяПеременной "_Массивы" - почему не обозвать нормально и вызывать ОбщегоНазначенияМассивы.ИмяМетода() |
|||
|
16
Garykom
гуру
27.11.25
✎
21:02
|
(15)+ Я к тому что букв мало, на все случаи коротких префиксов не хватит
А слов много - лучше писать словами понятно сразу без изучения специфической нотации И не ограничиваться "п", "м" или "_" - разделять нормально! И будет сразу всем понятно! |
|||
|
17
Garykom
гуру
27.11.25
✎
21:07
|
(15) (16)+ А еще лучше использовать структуры
Зачем заводить кучу "п" или "м" Когда можно создать одну структуру и внутри нее хранить По имени структуры все понятно, внутри как хочется обзывать |
|||
|
18
Волшебник
27.11.25
✎
21:06
|
Пишите-пишите, я конспектирую...
|
|||
|
19
Волшебник
27.11.25
✎
21:07
|
(7) вы считаете себя не ботом?
|
|||
|
20
Asmody
27.11.25
✎
21:11
|
(15) где я написал про "однобуквенные сокращения"? такого я не писал
сравни: Процедура КакойТоМедодОбработки(ПараметрНоменклатура, ПараметрКонтрагент, ПараметрОрганизация); Номенклатура = ПараметрНоменклатура; Контрагент = ПараметрКонтрагент; Организация = ПараметрОрганизация; КонецПроцедуры или Процедура какойТоМетодОбработки(пНоменклатура, пКонтрагент, пОрганизация); Номенклатура = пНоменклатура; Контрагент = пКонтрагент; Организация = пОрганизация; КонецПроцедуры или МассивЧегоНибудь = ОбщегоНазначенияМассивы.НовыйМассив(ЧтоНибудь, ЕщеЧтоНибудь, ИЕщеЧтоНибудь); массивЧегоНибудь = _Массивы.НовыйМассив( ЧтоНибудь, ЕщеЧтоНибудь, ИЕщеЧтоНибудь); Я не против длинных имен, я даже наоборот очень за. Но я хочу, чтобы имена уменьшали когнитивную нагрузку, а не увеличивали её. И чтобы было меньше "смыслового мусора". "ПараметрМетода", "ОбщегоНазначения" - это смысловой мусор. И 1Совские "КлиентСерверПовтИспПереопределяемый" - это тоже смысловой мусор, от бедности и безысходности |
|||
|
21
Garykom
гуру
27.11.25
✎
21:11
|
(20) Сравни
Процедура КакойТоМедодОбработки(ПараметрСтруктура); Номенклатура = ПараметрСтруктура.Номенклатура; Контрагент = ПараметрСтруктура.Контрагент; Организация = ПараметрСтруктура.Организация; КонецПроцедуры |
|||
|
22
Garykom
гуру
27.11.25
✎
21:12
|
(20) >"ПараметрМетода", "ОбщегоНазначения" - это смысловой мусор.
Это не смысловой мусор! Это человекопонятный без заучивания лишнего Да многословность как недостаток, но малословность с изобилием аббревиатур и непонятных имен ничуть не лучше |
|||
|
23
Asmody
27.11.25
✎
21:13
|
В типовых 100500 модулей начинается одинаково.
Поэтому, ctrl+пробел не спасает. Проще поставить "_" и дойти до нужного, чем выбирать из дохера вариантов |
|||
|
24
Asmody
27.11.25
✎
21:14
|
(21) Теперь тебе еще надо как-то проверить, что в этой структуре именно те свойства, которых ты ожидаешь.
Без типов такой стиль очень небезопасен |
|||
|
25
Garykom
гуру
27.11.25
✎
21:16
|
(21)+ когда надо допиливать - не приходится изменять объявления методов
только внутрь составного параметра докинуть и все на большом проекте внедрения типовых (с глобальными доработками, причем с кучей итераций) это сильно облегчает |
|||
|
26
Asmody
27.11.25
✎
21:16
|
(21) хуже всего, конечно,
Процедура КакойТоМедодОбработки(ПараметрСтруктура); ЗаполнитьЗначенияСвойств(ЭтотОбъект, ПараметрСтруктура); КонецПроцедуры и такое в типовых встречается |
|||
|
27
DiMel_77
27.11.25
✎
21:17
|
(24) Стандартами разработки предусмотрено не более 7-ми параметров в процедурах или функциях (насколько я помню), а передача структуры облегчает дальнейшую доработку в случае необходимости. Я своим стажерам тоже рекомендую структуры использовать.
|
|||
|
28
Garykom
гуру
27.11.25
✎
21:17
|
(23) Используй Сервис - Шаблоны текста
Там есть замена |
|||
|
29
Garykom
гуру
27.11.25
✎
21:17
|
(24) Не надо
Точнее тогда надо и кучу параметров метода проверять )) |
|||
|
30
Asmody
27.11.25
✎
21:18
|
(25) когда в платформе будет нормальная проверка типов. а не вот это вот //@strict-types
|
|||
|
31
Garykom
гуру
27.11.25
✎
21:19
|
(26) Это идеальный код!
Даже доработки не нужны когда новое внутри ЭтотОбъект и ПараметрСтруктура добавляется, причем имена совпадают Вот если нужно иное перекрытие или не полное заполнение приходится с доп.параметрами ЗаполнитьЗначенияСвойств() возиться |
|||
|
32
Garykom
гуру
27.11.25
✎
21:20
|
(30) Это уже будет не 1С а нечто иное
Согласен что строгая типизация лучше Но нетути |
|||
|
33
Asmody
27.11.25
✎
21:20
|
1С плодит программистов-уродов.
Это хреново, конечно |
|||
|
34
PR
27.11.25
✎
21:20
|
(0) Код должен быть читабельным и самодокументируемым, все остальное от лукавого
По поводу Получить есть мнение, что НаименованиеНоменклатуры ничем не отличается от ПолучитьНаименованиеНоменклатуры, а значитПолучить можно и опустить, чтобы сделать название короче |
|||
|
35
H A D G E H O G s
27.11.25
✎
21:20
|
Называйте, как хотите. Но реализуйте всё функциями, возвращающими структуру с результатом
Функция ПолучитьКонтрольноеЧислоGS1(Знач ID) Экспорт СтруктураВозврата=Новый Структура; СтруктураВозврата.Вставить("Результат",Истина); СтруктураВозврата.Вставить("ОписаниеОшибки",""); СтруктураВозврата.Вставить("КонтрольноеЧисло",Неопределено); Если АСФОбщегоНазначенияКлиентСервер.ЕстьНеЦифрыВСтроке(ID) Тогда СтруктураВозврата.ОписаниеОшибки="Переданный идентификатор семейства GS1 должен содержать только цифры."; СтруктураВозврата.Результат=Ложь; Возврат СтруктураВозврата; КонецЕсли; |
|||
|
36
Garykom
гуру
27.11.25
✎
21:21
|
(35) Тоже дошло что Процедуры не нужны?
Достаточно Функций |
|||
|
37
H A D G E H O G s
27.11.25
✎
21:23
|
А по хорошему, если чуете, что будет весело, можно пробрасывать дополнительную (пока пустую) структурку в параметрах. Потом может пригодиться.
|
|||
|
38
Garykom
гуру
27.11.25
✎
21:24
|
(34) Но когда рядом
НаименованиеНоменклатуры() ЗаполнитьНаименованиеНоменклатуры() СформироватьНаименованиеНоменклатуры() то без префикса выглядит странно |
|||
|
39
Asmody
27.11.25
✎
21:24
|
(31) "Это идеальный код!" - у "нормального" программиста от такого вытекают глаза и волосы дыбом встают
|
|||
|
40
Garykom
гуру
27.11.25
✎
21:25
|
(37) Если параметров >2 - стараюсь сразу делать структуру
|
|||
|
41
PR
27.11.25
✎
21:26
|
(1) Тут борются два начала: рациональное и прекрасное
Рациональное говорит пиши все без падежов типа НоменклатураНаименованиеУстановить Прекрасное требует УстановитьНаименованиеНоменклатуры Я за прекрасное, потому что чаще всего функции и процедуры довольно уникальны, а не так, что сто функций с примерно одинаковой логикой А если уж их сто, тогда вопрос с чего бы их сто, а не одна с параметром, который может принимать сто значений А когда процедура или функция одна и называется НоменклатураНаименованиеУстановить, то хочется взять автора за шкирку и долго и внимательно выразительно смотреть ему в глаза |
|||
|
42
Garykom
гуру
27.11.25
✎
21:26
|
(39) А есть утвержденные тесты для проверки "нормальности" программиста?
|
|||
|
43
Garykom
гуру
27.11.25
✎
21:27
|
(41) >с чего бы их сто, а не одна с параметром
И с кучей Если ИначеЕсли внутри? И вызовом других?? А как насчет их имен? |
|||
|
44
Garykom
гуру
27.11.25
✎
21:29
|
(41) >хочется взять автора за шкирку и долго и внимательно выразительно смотреть ему в глаза
Иногда надо сразу думать на будущее Так влом написать "лишние" буковки? Зато потом картинка более стройная и понятная И можно поиском по "Установить" найти/перебрать все нужные методы |
|||
|
45
Kongo2019
28.11.25
✎
10:43
|
НастоящиеПрограммистыПробеламиИСимволамиПодчеркиванияНеПользуются()
|
|||
|
46
Garykom
гуру
27.11.25
✎
21:30
|
(45) "Настоящие программисты используют кавычки"."Для вызова методов"()
! |
|||
|
47
Asmody
27.11.25
✎
21:30
|
(35) у меня для такого "псевдомейби" есть
типа: Если ошибка Тогда Возврат _Результат.ВернутьОшибку(текстОшибки); Иначе Возврат _Результат.ВернутьДанные(данные); КонецЕсли; и используется: ответ = ЧтоТоНадоСделать(); Если НЕ _Результат.ЭтоОшибка(ответ) Тогда данные = _Результат.ДанныеИз(ответ); Иначе ВызватьИсключение _Результат.ОшибкаИз(ответ); КонецЕсли; |
|||
|
48
Garykom
гуру
27.11.25
✎
21:31
|
(46)+ Это вы еще кода на китайском с именами (переменных, методов и т.д.) из иероглифов не видали...
|
|||
|
49
PR
27.11.25
✎
21:31
|
(21) Нечитабельно и хрен проверишь ошибки в конфигураторе, на кол
|
|||
|
50
Garykom
гуру
27.11.25
✎
21:33
|
(47) ПиПиПи...
Тех кто использует исключения для возврата результата метода - ждет отдельный котел |
|||
|
51
Garykom
гуру
27.11.25
✎
21:33
|
(49) В конфигураторе и так хрен что проверишь
Только в режиме предприятия при выполнении кода |
|||
|
52
PR
27.11.25
✎
21:35
|
(31) Говно это, а не идеал
Все копирования свойств должны быть явно указаны, а не по принципам: — Если появился новый реквизит, то скорее всего его тоже нужно заполнять, давай заполним — Если удалили или переименовали реквизит, то и ничего страшного, не будем ругаться, просто заполним остальные свойства, а на этот хрен забьем |
|||
|
53
Asmody
27.11.25
✎
21:36
|
(50) где ты там возврат увидел, болезный?
|
|||
|
54
PR
27.11.25
✎
21:38
|
(43) Куча Если ИначеЕсли для установки наименования объекта?
А вы точно программист? |
|||
|
55
Garykom
гуру
27.11.25
✎
21:44
|
(53)
данные = _Результат.ДанныеИз(ответ); Иначе ВызватьИсключение _Результат.ОшибкаИз(ответ); Логично предположить что это внутри функции и данные возвращаются? Или не возвращаются ибо упс происходит исключение Приходится заворачивать такое в Попытку Если это не внутри функции и/или прерывание кода нормально то ок |
|||
|
56
Garykom
гуру
27.11.25
✎
21:43
|
(54) Нет для разной обработки одной сущности
В этом случае логично делать разные методы с понятными именами А не портянку внутри одного метода |
|||
|
57
PR
27.11.25
✎
21:41
|
(44) Не надо при создании обработки заполнения реквизита в существующих контрагентах сразу строить ее на БСП и предусматривать, что она может начать использоваться в англоязычных странах
Будет необходимость — добавишь Не будет — будет чище код, без всяких мутных вещей, добавленных на случай а вдруг |
|||
|
58
PR
27.11.25
✎
21:42
|
(45) А вот тут, кстати, да, я бы, если бы был начинающим одинесником и понял бы этот момент, пользовался бы подчеркиваниями, конечно
|
|||
|
59
PR
27.11.25
✎
21:47
|
(56) Если разность в том, что нужно либо наименование присвоить либо на удаление пометить, то это как бы разные вещи и разные процедуры, конечно же
А если нужно присвоить либо наименование либо код либо автора, то и че и че, просто параметр |
|||
|
60
Asmody
27.11.25
✎
21:55
|
Реально в платформе нужны нормальные неймспейсы. Папочки для общих модулей.
Модули, расширяющие типы ссылок. |
|||
|
61
Asmody
27.11.25
✎
22:21
|
(41) примерно так:
Процедура УстановитьСтатус(Знач Документ, Знач Статус) Экспорт // логика стейт-машины КонецПроцедуры Процедура УстановитьСтатусОжидание(Знач Документ) Экспорт УстановитьСтатус(Документ, Перечисления.СтатусыОпераций.Ожидание); КонецПроцедуры Процедура УстановитьСтатусВыполняется(Знач Документ) Экспорт УстановитьСтатус(Документ, Перечисления.СтатусыОпераций.Выполняется); КонецПроцедуры Процедура УстановитьСтатусВыполнено(Знач Документ) Экспорт УстановитьСтатус(Документ, Перечисления.СтатусыОпераций.Выполнено); КонецПроцедуры конечно, если этих вариантов не более 5-6. |
|||
|
62
Злопчинский
27.11.25
✎
22:37
|
я все время страдаю
писать типа Если а=1 или Если А = 1 |
|||
|
63
Злопчинский
27.11.25
✎
22:38
|
Если пишу сейчас полную ветку
Если КакаяТоХрень()=1 Тогда // типа ничего, норма Иначе // всякая шняга пишу тут КонецЕсли; |
|||
|
64
Garykom
гуру
27.11.25
✎
23:30
|
(61) Такая логика полезна когда код внутри чуть посложней
Не просто сразу УстановитьСтатус а по неким условиям Но вот Знач совершенно лишнее ибо тип не простой |
|||
|
65
Asmody
27.11.25
✎
23:56
|
(64) откуда ты знаешь, что тип не простой? Или Ссылка для тебя сложный тип?
|
|||
|
66
mmg
28.11.25
✎
00:13
|
(1) А еще так учат отдавать приказы. Уж несколько тысяч лет как
|
|||
|
67
Zamestas
28.11.25
✎
00:22
|
(41) Полностью согласен.
|
|||
|
68
Злопчинский
28.11.25
✎
01:47
|
(61) (64) а потом вздохи про глубокий стек вызова процедур в типовых... ;-)
|
|||
|
69
aka MIK
28.11.25
✎
01:57
|
(63) и получишь сразу алерт от Сонаркуба
|
|||
|
70
aka MIK
28.11.25
✎
02:03
|
(14)
У меня есть даже модуль "__", содержащий наиболее часто используемые "хелперы". Например, __.ЕслиНеопределено() или __.ЭтоСегодня() и т.д.
А нету __.___()? |
|||
|
71
Злопчинский
28.11.25
✎
02:46
|
(69) сонаркуб - тупой.
мне удобно сразу видет как ветка отрабатывает а не листать туда-сюда чтобы увидет тогда-иначе ест или нет. |
|||
|
72
Сергиус
28.11.25
✎
03:48
|
(0)После названий всяких конструкций для СКД..остальное не так уж и громоздко)
|
|||
|
73
Ёпрст
гуру
28.11.25
✎
08:05
|
(0)вообще по....х кто там чего пишет и как обзывает.
Со временем, на это не обращаешь внимание Единственное, суржик вымораживает - ты или пиши всё на английском или всё на русском, а не половина так, половина так. |
|||
|
74
maxab72
28.11.25
✎
08:49
|
(73) ZapolnitOtchenVazhnuyuPeremennuyu() ВериИнпотентБигФанкшен()
|
|||
|
75
Гипервизор
28.11.25
✎
09:44
|
(73) Например, всякие инструкции препроцессора мне проще написать латиницей без переключений туда-сюда: #Region, #Insert, #Delete. Ну или иметь раскладку Чистова или аналоги.
|
|||
|
76
maxab72
28.11.25
✎
09:49
|
(75) а зачем переключать клавиатуру? # - Альт + 35, & - Альт + 38 и т.д.
|
|||
|
77
Гипервизор
28.11.25
✎
09:59
|
(76) Я как раз и не переключаю. И запоминать это шаманство не хочется, да и быстрее ли так набирать?
|
|||
|
78
ДенисСмирнов
28.11.25
✎
10:02
|
(75) если вы про символы типа # и &, то лично мне удобнее набирать их как Alt+цифровой код, вместо переключения раскладки
|
|||
|
79
АгентБезопасной Нацио
28.11.25
✎
10:16
|
(33) не "уроды", а "парапрограммисты".©
|
|||
|
80
АгентБезопасной Нацио
28.11.25
✎
10:19
|
(75) трубоконф без переключения, по альт ставит...
|
|||
|
81
Ботаник Гарден Меран
28.11.25
✎
10:25
|
(35)
"Называйте, как хотите. Но реализуйте всё функциями, возвращающими структуру с результатом" И тут же сразу функция, возвращающая просто Булево. "Если АСФОбщегоНазначенияКлиентСервер.ЕстьНеЦифрыВСтроке(ID) Тогда" (0) Венгерская нотация - да. Длинные имена - в топку. Но короткие имена с венгерской нотацией - нужна шпаргалка или привычка. |
|||
|
82
dmt
28.11.25
✎
10:34
|
(20) а вы один работаете?
Я когда работал один - писал как удобнее пКонтрагент, втЗаказы. Но когда работа коллективная и в коде каша из разных нотаций, это бесит. Поэтому только стандарты, только хардкор |
|||
|
83
PLUT
гуру
28.11.25
✎
10:50
|
ИИчку вероятно похер на названия переменных
UID норм: ну или огрызки от гуя c75b1c74 d552dda8 |
|||
|
84
ZloyBrawler
28.11.25
✎
11:01
|
Да не пошатнись психика смертного
Топаз_Константы.ПолучитьКонстанту_ДополнительноеЗначение_Номенклатура_РабочаяСторонаКолонкиСОдностороннейИндикацией_А() ; |
|||
|
85
Волшебник
28.11.25
✎
13:16
|
(84) За такое надо бить железной линейкой по пальцам, причём ребром.
|
|||
|
86
Кирпич
28.11.25
✎
13:31
|
Вы чо тут раздухарились. Как 1с велит, так и пишите.
|
|||
|
87
Волшебник
28.11.25
✎
13:32
|
(86) Мы тоже не левой ногой сморкаемся
|
|||
|
88
H A D G E H O G s
28.11.25
✎
13:42
|
(86) Вот когда Совместимо будем проходить - тогда напишем, как сверху велели.
|
|||
|
89
ZloyBrawler
28.11.25
✎
13:47
|
(85) давайте без насилия!!!
Ваше предложение как назвать функцию выше указанную, чтобы смысл ее имени не был потерян? |
|||
|
90
Timon1405
28.11.25
✎
13:51
|
(89) как поступаете когда в таком условно-постоянном виде нужно хранить массив значений (например, список складов)?
|
|||
|
91
Гипервизор
28.11.25
✎
13:51
|
(89) А зачем в имени функции получения константы писать имя константы?
|
|||
|
92
Timon1405
28.11.25
✎
13:55
|
(62) поставьте себе https://github.com/otymko/phoenixbsl
и проверяйте себя в конфигураторе еще ДО сонара. например, можно парой кликов применить к модулю "Каноническое написание ключевых слов (CanonicalSpellingKeywords)" |
|||
|
93
VladZ
28.11.25
✎
14:08
|
(88) +500
|
|||
|
94
VladZ
28.11.25
✎
14:10
|
(1) я не понимаю, почему в Java можно написать getUserById , а в 1с нельзя написать ПолучитьНаименованиеНоменклатуры?
Почему? |
|||
|
95
Timon1405
28.11.25
✎
14:15
|
(94) может потому что в 1с нет интерфейсов и ПолучитьНаименованиеНоменклатуры 99% что будет в ОМ рядом с еще такой же сотней ПолучитьЧтотоДругое?
|
|||
|
96
ZloyBrawler
28.11.25
✎
14:41
|
(90) так как храним все в регистре сведений, то чтобы хранить списки, приходится мудрить с именами констант
Пилится функция типа получить список складов того-то сего-то. Внутри она обращается к константе, хранящей количество значений. В цикле обращается по номерам + имена к константам. Формируется массив, возвращается. Напилен ряд вспомогательных функций и процедур сохранения значений, получения, удаления. Пашет стабильно. Костыли, но только так и получается хранить все, то константное дерьмо, что насыпают юзеры в код своими особенными бизнес-процессами. Читающие функции еще создаем так чтобы они тип значения проверяли. Типа константа должна быть именно число или иной тип!
|
|||
|
97
ZloyBrawler
28.11.25
✎
14:34
|
(91) искать так-то по коду программы проще по имени функции, а не имени константы
Исправлять проще |
|||
|
98
ZloyBrawler
28.11.25
✎
14:44
|
(95) "люблю" Экономистов слов, что потом код не читабелен ибо смысла у всех этих огрызков названий нет
|
|||
|
99
Волшебник
28.11.25
✎
15:06
|
(94) русское "Получить" сильно длинее английского get
|
|||
|
100
formista2000
28.11.25
✎
15:07
|
(100) 100!
|
|||
|
101
Timon1405
28.11.25
✎
15:10
|
(99) у нас есть "дай"
|
|||
|
102
Волшебник
28.11.25
✎
15:15
|
(101) у нас есть даже такое: "давай бери"
|
|||
|
103
MWWRuza
гуру
28.11.25
✎
15:21
|
(99) А "Пол" - не? И так понятно, что "Пол" в имени функции это не гендерная принадлежность, а "Получить" :-)
|
|||
|
104
Гипервизор
28.11.25
✎
15:23
|
(103) Ой, фу. И будет что-то типа ПолПечФормДокРТИУ.
|
|||
|
105
Chai Nic
28.11.25
✎
15:26
|
(94) А с каких пор джава является образцом стиля? Это уродливый язык изначально.
|
|||
|
106
VladZ
28.11.25
✎
15:31
|
(105) Возьми любой другой язык.
|
|||
|
107
VladZ
28.11.25
✎
15:33
|
(104) Вот так точно не надо.
|
|||
|
108
Волшебник
28.11.25
✎
15:37
|
(103) Лучше называть функции существительными по результату, который они возвращают. Получится примерно так:
Функция УпаковочныйЛист() Экспорт ТД = Новый ТабличныйДокумент; ... Возврат ТД КонецФункции вызов: ТД = оКоробка.УпаковочныйЛист(); ТД.Показать(); |
|||
|
109
dmt
28.11.25
✎
15:39
|
(108) Тут непонятно, что за упаковочный лист возвращаем, может ссылку на документ или макет.
ПечатьУпаковочныйЛист() лучше |
|||
|
110
АгентБезопасной Нацио
28.11.25
✎
15:48
|
(104) ПечформаРТИУ() - почему бы и не да? (и так понятно, что РТИУ - документ, и что печформу можно по умолчанию только получить). Но все равно как-то ....
|
|||
|
111
Волшебник
28.11.25
✎
15:59
|
(109) можно и так
или по-венгерски: Функция тдУпаковочныйЛист() Экспорт |
|||
|
112
Chai Nic
28.11.25
✎
16:00
|
(109) ПечатнаяФормаУпаковочногоЛиста() и никак иначе
|
|||
|
113
vicof
28.11.25
✎
16:04
|
(112) +1
|
|||
|
114
Garykom
гуру
28.11.25
✎
16:10
|
(112) Плохо
Может быть несколько разных печформ упаклиста Как их различать? Удобнее когда разница в конце Поэтому объект суем вперед, и добавляем глагол для понятности: СформироватьУпаковочныйЛистПечатнаяФормаФормат2025() |
|||
|
115
vicof
28.11.25
✎
16:12
|
(114) +2
|
|||
|
116
dmt
28.11.25
✎
16:21
|
(114) ПечатьУпаковочныйЛист_2025()
|
|||
|
117
Волшебник
28.11.25
✎
16:27
|
(114) тогда так: СформироватьУпаковочныйЛист("Формат2025")
|
|||
|
118
maxab72
28.11.25
✎
21:23
|
Как-то листал со скуки финский словарь, по фински программиста называют ohjelmoija, явно происходит от слов "охламон ох..ел". Это как раз про споры о длинных именах и венгерской нотации (финский и венгерский родственны, а уж про длину финских слов можно много порассуждать, нравятся они им)
|
|||
|
119
JohnGilbert
28.11.25
✎
22:17
|
Спасибо за ветку, узнал, что код с префиксами о, мсв, стк etc писали не долбоёбы, а венгры.
Преисполнился уважения. Я ж не пойму по коду, что тут коллекция, а по методам, какая, мне префикс нужен, что бы это говно читать. |
|||
|
120
Chai Nic
29.11.25
✎
09:04
|
(114) Никаких глаголов в функциях. Глаголы - только в процедурах.
Избавляйтесь от императивной логики при функциональном подходе. Да, и кстати, функции не должны иметь побочных эффектов. Хочешь что-то менять в контексте, среде исполнения или формальных параметрах - пиши процедуру! |
|||
|
121
Волшебник
29.11.25
✎
09:29
|
(119) и как ты это поймёшь в языке без строгой типизации?
|
|||
|
122
maxab72
29.11.25
✎
10:19
|
"Никаких глаголов в функциях. Глаголы - только в процедурах." включу зануду. Ряд лингвистов утверждает, что неопределенная форма глагола глаголом, в строгом виде, не является... Так что можно.
|
|||
|
123
Bigbro
29.11.25
✎
10:27
|
(119) в нынешнем коде с 15 вызовами по 1-4 строчки действительно сложно не понять ))
|
|||
|
124
Chai Nic
29.11.25
✎
10:32
|
(122) Не, не надо инфинитив путать с отглагольным существительным. Это другое. Типа ФормированиеУпаковочногоЛиста(). Так можно. Хотя и не нужно, если при этом возвращается не некий промежуточный "процесс", а готовая форма.
|
|||
|
125
Bigbro
29.11.25
✎
10:33
|
(84) а это почти как в старом добром КАМИНе. там тоже все переменные процедуры функции такой длины что в монитор не влезали))
|
|||
|
126
Волшебник
29.11.25
✎
10:37
|
(122) Кстати, в русском языке на инфинитивы тоже требуются дополнительные буквы -ить, -ать,
в отличие от английского, где инфинитивы наоборот являются самой короткой формой глагола. |
|||
|
127
Garykom
гуру
29.11.25
✎
19:39
|
(126) Можно применять "военный язык"
Вместо "Получить..." писать нечто вроде "Дай.." И заменять длинные описания короткими "ЭтуХрень" |
|||
|
128
Волшебник
30.11.25
✎
10:11
|
(127)
ВыполнитьБыстро() ВычислитьСейчасЖе() ЗапуститьФоновое("Задание", ОВыполненииДоложитьСюда) |
|||
|
129
TormozIT
гуру
30.11.25
✎
10:49
|
(127) Спасибо. Буду пробовать повелительное наклонение глаголов
СформируйТаблицу() УдалиФайл() ОткройФорму() Действительно короче и потому удобнее. Но в случае имен свойств перестанет работать мой анализатор типа из имени в ИР, т.к. он опирается на типичные окончания неопределенных форм глаголов. Например свойство с именем "УдалитьФайл" он считает типом "Булево". А вот "УдалиФайл" уже труднее будет отличить от "КачелиФайл" и потому он спасует. |
|||
|
130
Asmody
30.11.25
✎
10:55
|
(120) как только в языке появятся лямбды и замыкания, так сразу и начнём.
Если серьёзно, ФП - это хорошо, но не надо его безумно тыкать туда, куда оно не лезет. |
|||
|
131
Asmody
30.11.25
✎
10:56
|
(129) будет диссонанс с методами платформы. Или придётся их закрыть алиасами
|
|||
|
132
Chai Nic
30.11.25
✎
11:09
|
(130) Сделали же зачем-то модули с повторно-возвращаемыми функциями. И там побочные эффекты не нужны, и даже вредны местами. То есть ты вызвал функцию, получил значение - и можешь быть уверен только в нём, но не можешь быть уверен что она реально выполнилась.
|
|||
|
133
maxab72
30.11.25
✎
11:17
|
"Спасибо. Буду пробовать повелительное наклонение глаголов" А чтоб работало и не тормозило в конце названия функции добавлять постфиксы из трех букв: "Нах" или "Б.я"...
|
|||
|
134
eddy_n
30.11.25
✎
11:36
|
(0) Резюме: всё подпадает под одно. Сколько людей - столько мнений.
|
|||
|
135
eddy_n
30.11.25
✎
11:42
|
(118) Что с чухонцев взять? Они римлян не видели.
|
|||
|
136
eddy_n
30.11.25
✎
11:43
|
Да простят меня люди - вот такое видел описание функции в одной самописке
|
|||
|
137
eddy_n
30.11.25
✎
11:49
|
Пусть будет безобразно, но однообразно. Сегодня одна культура кода, завтра - другая.
|
|||
|
138
Eiffil123
01.12.25
✎
08:55
|
(120) а как же Запрос.Выполнить().Выбрать()
и прочие цепочки действий? оно и функция и что-то там выполняет. |
|||
|
139
Гипервизор
01.12.25
✎
09:04
|
(138) Это функция кого надо функция!
Это метод, это другое. И не всегда же методы что-то возвращают. |
|||
|
140
ДенисСмирнов
01.12.25
✎
10:56
|
Самый бесячий косяк, что нет синонима для Новый, который должен быть как Новая
Писать а = Новый Структура - кривокосо по чучменьски, хоть структуры не используй А вот а = Новая Структура - красиво бы было |
|||
|
141
Гипервизор
01.12.25
✎
11:05
|
(140) Зачем всё многообразие русского языка тащить в код? После оператора Новый указывается идентификатор типа, так что всё логично.
|
|||
|
142
Ненавижу 1С
гуру
01.12.25
✎
11:16
|
(140) это обсуждали. Достаточно было вместо new - назвать ключевым словом "создать"
|
|||
|
143
maxab72
01.12.25
✎
12:05
|
(142) глагол "создать" требует после себя родительного падежа. Или предлагаете в конфигуратор добавить проверку правописания?
|
|||
|
144
vis
01.12.25
✎
12:40
|
(143) "Создаём"
|
|||
|
145
maxab72
01.12.25
✎
12:52
|
(144) а почему во множественном числе?
|
|||
|
146
Гипервизор
01.12.25
✎
12:56
|
(144) Так это же ничего не меняет. Что "создать", что "создаём" требует родительный падеж.
(145) Тандем же. ) Платформа создаёт и программист немножко помогает. |
|||
|
147
Ненавижу 1С
гуру
01.12.25
✎
13:04
|
(143) (144) (146) "это"
|
|||
|
148
Dedal
01.12.25
✎
17:37
|
(14) Меня всегда удивляло как с одной стороны в документации разработчика системы сказано "Имена переменных запрещается начинать с подчеркивания" а потом ты у дочки-франча видишь "_сокращенноеимяфранчаОбщийМодуль"
|
|||
|
149
vis
01.12.25
✎
20:28
|
(148) А чем, кстати, обусловлен запрет подчёркивания?
|
|||
|
150
maxab72
01.12.25
✎
20:41
|
(149) зарезервировали для себя.
|
|||
|
151
ДенисСмирнов
02.12.25
✎
09:56
|
(149) ну прям запрет. "пиратский кодекс - это свод рекомендаций, а не обязательных законов"
|
|||
|
152
Волшебник
02.12.25
✎
10:04
|
(149) Нет такого запрета. У меня вот есть обработка "АРМ_Продажи". И это более правильное название, чем АРМПродажи.
Или вот ещё: КонтрольОстатков_ТоварыВЯчейках
ЗагрузитьИзменения_СборВГХ ЗагрузитьИзменения_СтрокаОрдера_ПакингЛист ТД_Склад_ПриУказанииСекции |
|||
|
153
Chai Nic
02.12.25
✎
10:05
|
Вместо СоздатьОбъект или Новый следовало бы использовать не ключевое слово, а спецсимвол. Типа @, который в 1с не задействован. Как создание объекта указанного класса с вызовом конструктора.
Например: МассивФизлиц=@Массив; Коротко и ясно! |
|||
|
154
ДенисСмирнов
02.12.25
✎
10:10
|
(152) коллеги про этот пункт "3. Имена переменных запрещается начинать с подчеркивания"
|
|||
|
155
Chai Nic
02.12.25
✎
10:11
|
А вместо двух строк декларации процедуры с указаниям места вызова
&НаСервере Процедура ОбработатьДанныеНаСервере(ИсходныеДанные) могли бы сделать в одну строку, типа так Процедура ОбработатьДанныеНаСервере(ИсходныеДанные)::Сервер А директиву &НаСервере сделать применимой не к конкретной процедуре, а к области кода, захватывающей несколько процедур/функций, до конца модуля или до директивы, включающей иной режим. |
|||
|
156
Ёпрст
гуру
02.12.25
✎
10:27
|
(155) при большом листинге, было бы не совсем удобно выяснять тогда, где #насервере начинается и где заканчивается, и вычисляй потом, если описание процедур/функций в этом диапазоне.
|
|||
|
157
Chai Nic
02.12.25
✎
10:33
|
(156) Для этого есть подсветка синтаксиса и выделение блоков в конфигураторе. Можно например цветом фона разделять.
|
|||
|
158
Ёпрст
гуру
02.12.25
✎
10:59
|
(157) цвет фона, ну такое. Тут пошли по пути наименьшего сопротивления
|
|||
|
159
Chai Nic
02.12.25
✎
11:02
|
(158) Тогда бы лучше сделали это как я написал, в виде модификатора в определении процедуры, а не отдельной строкой.
|
|||
|
160
Asmody
02.12.25
✎
11:04
|
(159) отдельные модули для этого должны быть, а не вот это вот всё.
|
|||
|
161
Chai Nic
02.12.25
✎
11:08
|
(160) Ну или так, почему бы и нет? В любом случае модификатор отдельной строкой - это худшее что могло быть придумано.
|
|||
|
162
Garykom
гуру
02.12.25
✎
11:45
|
(155) >А директиву &НаСервере
Логичней сделать модификаторы как в Java или C# В одну строку со служебным словом Процедура/Функция Ну типа public|private|protected и т.д. Или как Экспорт в конце в 1С Но писать в начале Сервер Экспорт Функция ИмяФункции() // ... КонецФункции Клиент Функция ИмяФункции() // ... КонецФункции |
|||
|
163
Garykom
гуру
02.12.25
✎
11:51
|
Но да, не нравится мне, что в 1С по сути одинаковое или похожее исторически сложилось и делается по-разному
Вот чем по сути "Экспорт" отличается от "&НаСервере" и "&НаКлиенте"? И то, и то модификаторы для области видимости |
|||
|
164
Волшебник
02.12.25
✎
11:51
|
(163) слово "Функция" необязательно. В Java/C всё функции
|
|||
|
165
ДенисСмирнов
02.12.25
✎
12:12
|
(162) может еще Тогда и КонецЕсли на фигурные скобки заменить и отделить оператор присваивания от оператора сравнения как == ? И процедуры как класс убрать.
Лично я был бы не против. |
|||
|
166
Волшебник
02.12.25
✎
12:46
|
(165) 1С-Элемент, не?
|
|||
|
167
ILM
гуру
02.12.25
✎
13:44
|
фыва.Дай("ИмяПеременной");
возвращает значение из регистра сведений, а фыва - общий модуль |
|||
|
168
Dedal
02.12.25
✎
13:48
|
(152) не про запрет внутри, запрет на использование вначале "_индитификатора"
|
|||
|
169
Волшебник
02.12.25
✎
14:08
|
(168) На уровне стек-машины 1С имена переменных могут состоять из цифр и включать пробелы.
|
|||
|
170
Chai Nic
02.12.25
✎
14:13
|
(162) Ну это уже дело вкуса, в начале или в конце. Мне больше нравится в конце, где Экспорт. Сути это не меняет.
|
|||
|
171
Мультук
гуру
02.12.25
✎
15:09
|
(0)
Это нормально, если процедура "ЗаполнитьСтавкуНДСНаСервере" не только заполняет ставкуНДС, но еще попутно удаляет многооборотную тару из тч "Товары" ? Это кошерно с точки зрения стандартов разработки 1С ? |
|||
|
172
Волшебник
02.12.25
✎
15:12
|
(171) Нет, не нормально. Надо назвать процедуру ОбработатьНаСервере()
|
|||
|
173
TormozIT
гуру
03.12.25
✎
16:41
|
Гуру искусства именования методов, подскажите как вы решаете дилемму "МассивВСтроку" или "СтрокаИзМассива"? Я все время по-разному называю. Не могу определиться.
|
|||
|
174
maxab72
03.12.25
✎
16:51
|
(173) первый вариант. он короче
|
|||
|
175
novichok79
03.12.25
✎
16:58
|
В 2016м помню я как-то будучи 1Сником пришлось переписывать обработку от чела, который уволился.
Так вот - переменные были вида _таб1, __таб1, __о1, еб**анное всё просто. Такая говнина. Чем отличается _таб1 от __таб1??? А хз. Еще и клиент-серверное взаимодействие не отлажено было. Так зарефакторил, что сам свою написал в итоге за 3 недели. Еще какие-то оптимизации сделал, в общем, стало збс. По содержанию была сложная штука с расчетом технологической карты для производства. |
|||
|
176
maxab72
03.12.25
✎
16:59
|
(175) сразу видно, старая школа, экономия места в памяти и поэтому имена переменных a1, b12... usw.
|
|||
|
177
Chai Nic
03.12.25
✎
17:07
|
(173) СтрокаИзМассива() правильнее, потому что не содержит неявный глагол.
|
|||
|
178
novichok79
03.12.25
✎
17:25
|
(176) самое смешное что похоже он сам стал в каком-то месте путать их местами. типа с мегабайтами он экономил пару килобайт на имена переменных? ну что скажешь, гений ёпта.
|
|||
|
179
Lama12
03.12.25
✎
17:34
|
(176) Извиняюсь. Вопрос для расширения кругозора. А где и когда длина имен переменных влияет на использование памяти?
|
|||
|
180
Волшебник
03.12.25
✎
20:48
|
(179) ассемблер знаете? Если не знаете, то не выпендривайтесь
|
|||
|
181
maxab72
03.12.25
✎
21:11
|
(179) застали 8-битные Атари и Спектрумы с памятью 16к?
|
|||
|
189
Eiffil123
04.12.25
✎
09:48
|
(35) какой кошмар. а потом смотришь в код, и не понимаешь, что там функция возвращает
|
|||
|
190
Mort
04.12.25
✎
10:41
|
Порой править код за этими затейниками, бредящими ООП и упаковывающими возвраты в 10 структур, душнее чем разбирать спагетти за новичками и семерочниками.
Ошибки в возвратах оправданы только тогда, когда у нас функция прокси к чему-то внешнему, которое штатно может работать и так же штатно может не работать, например http - запрос или чтение файла. А если плохие параметры - нужно дёргать исключение без всяких возвратов. Пусть вызывающая сторона парится. |
|||
|
191
Timon1405
04.12.25
✎
10:42
|
(189) наоборот, это бест практис. В начале функции написан контракт: что и в каком виде она возвращает. Автор функции обязуется этот контракт соблюдать и ждёт от того кто её вызывает того же. Если ты ее вызвал в своем коде с другими ожиданиями, то это твои проблемы.
К сожалению, у многих разработчиков возникает желание написать свою функцию вместо соблюдения контракта, но надо учиться доверять коллегам. Лучший код - код который не написан! (а переиспользован) |
|||
|
192
Mort
04.12.25
✎
10:46
|
Хотя многие 1Сники к исключениям относятся так: "В программе и так моих ошибок хватает, зачем мне их ещё специально генерировать".
|
|||
|
193
Eiffil123
04.12.25
✎
10:46
|
(191) ваш написанный перед функцией контракт - это филькина грамота и профанация. Никаких контрактов в 1С нет, ибо динамическая типизация.
и будешь видеть этот контракт либо в отладчике, либо бегая по функциям через F12 |
|||
|
194
Timon1405
04.12.25
✎
11:29
|
(193) думаю в 1с это понимают. но тем не менее во всех типовых конфигурациях перед каждой функцией есть блок комментария с описанием входных и выходных параметров.
а как по-Вашему должен выглядеть код из (35)? нужно дублировать проверку что ID это число вне этой функции перед каждым местом ее вызова? |
|||
|
195
Garykom
гуру
04.12.25
✎
12:11
|
(190) Дада
А потом заюзал такой код (с исключениями) в коде веб или http-сервиса И получил зависания на клиентской стороне с дикими таймаутами |
|||
|
196
Garykom
гуру
04.12.25
✎
12:12
|
(195)+ Причем уй разберешься что происходит
Сервис обязан не падать А вернуть ошибку клиенту, чтобы можно было разбираться |
|||
|
197
ДенисСмирнов
04.12.25
✎
13:39
|
(180) помню как ассемблер изучал... до сих пор отличие exe файла от com помню. сидят как латинские исключения в голове у Остапа Бендера
|
|||
|
198
novichok79
04.12.25
✎
14:03
|
(190) Вернуть в структуре норм, лучше передать потом структуру эту везде. Челы и ООП тут не причем.
Лучше чем рассовывать гирлянду переменных в методах. |
|||
|
199
Chai Nic
04.12.25
✎
14:17
|
(198) +1. Возвращать несколько значений через структуру намного красивее, чем через кучу изменяемых параметров.
|
|||
|
200
ManyakRus
04.12.25
✎
14:18
|
(1) В большинстве популярных руководств по стилю кода (style guides) и принципам чистого кода (clean code) рекомендуется давать функциям имена-глаголы или глагольные словосочетания, так как функция — это действие.
Вот основные источники, где это прописано или широко рекомендуется: 1. Книга Роберта Мартина "Чистый код" (Clean Code) Это классика. В главе 2 ("Meaningful Names") прямо указано: "Methods should have verb or verb phrase names" (Методы должны иметь имена-глаголы или глагольные словосочетания). Примеры: postPayment(), deletePage(), save(). НоменклатураНаименованиеПолучить() - так нельзя, это не глагол |
|||
|
201
Гипервизор
04.12.25
✎
14:23
|
(200) А процедура это не действие?
|
|||
|
202
Волшебник
04.12.25
✎
14:41
|
(200) В движке форума функции названы существительными, например, Topic.author() - функция возвращает автора ветки.
|
|||
|
203
VladZ
04.12.25
✎
15:16
|
(200) Да, читал.
Многие рекомендуют эту книгу. Но есть нюанс. Книга была написана в 2010 году. Вот уже 15 лет как... Возможно, пришло время написать другую книгу. Актуальную! |
|||
|
204
ZloyBrawler
04.12.25
✎
15:18
|
(202) это похоже больше на property, то есть свойство. Ожидаешь еще наличие getAuthor и setAuthor, но это не тот случай
|
|||
|
205
Timon1405
04.12.25
✎
15:29
|
(203) Актуальная книга скоро будет такая: "Называйте переменные как хотите, ИИ
|
|||
|
206
VladZ
04.12.25
✎
15:36
|
(205) Лет через 10 программист даже не будет знать, что такое переменная и не будет думать, как эту сущность обозвать.
|
|||
|
207
Гипервизор
04.12.25
✎
15:48
|
(206) Вот это прогноз! А что будет? Мыслеформы?
|
|||
|
208
Мультук
гуру
04.12.25
✎
15:50
|
||||
|
209
Dedal
04.12.25
✎
15:54
|
(207) Промт вида "Необходимо спарсить с сайта mista.ru все сообщения пользователя с ником Гипервизор, игнорировать сообщения где это не ник пользователя, а упоминание его или аналогичный нику текст"
|
|||
|
210
Garykom
гуру
04.12.25
✎
16:21
|
(198) (199) Многим не нравится что типизации нет
И обязательность не проверяется само Может доработать структуры, добавив типизацию и нечто вроде ПроверитьЗаполнение() встроенное для них |
|||
|
211
Chai Nic
04.12.25
✎
16:25
|
(210) А что, в параметрах есть типизация?
|
|||
|
212
Dedal
04.12.25
✎
16:36
|
(210) Вот тоже не понимаю не нравится? Ну организуй сам в своем коде.
Это наследие программирования на других языках и обучения на тех языках где строгая типизация, страдал этим только в момент входа в 1С. А потом проблемы отсутствия типизации всплывают раз в год, и то когда делаешь что-то нестандартное. Ну и зачем оно тогда? |
|||
|
213
AlexKimp
04.12.25
✎
16:42
|
(197) к сожалению, помню уже смутно. MZ... размеры сегментов, адрес точки входа, прочие данные в заголовке.
Изучал ибо попалась мне антология выпусков фидошного журнала инфектед войс. Учился в лабораторных целях писать вирусы. Учился долго и упорно. Разумеется, ни один вирус пределы моего компа не покинул )) вся эта история закончилась как-то одномоментно )) в одном из выпусков был листинг исходника одного из вариантов Чернобыля. Как раз тот, который МБРку затирает. Решил прогнать в отладчике. Опять же лабораторных целях. Скомпилил, поизучал и... забыл..... Как сейчас помню... было утро субботы. Горячий кофе, желание поковырять диплом, который через 2 недели на рецензию сдавать... BOOT DISK FAILURE ))))))) Хорошо, что был распечатан черновик диплома. |
|||
|
214
1с_ник
09.12.25
✎
15:25
|
ИИ ответил так и я согласен с этим.
Для 1С-практики лучше глагол + сущ.: ПолучитьНоменклатуру(). Такой порядок читается естественно и соответствует типовым стилям (действие → объект) |
|||
|
215
Fish
гуру
09.12.25
✎
15:40
|
Те имена, которые ты сам используешь - всегда хороши.
|
|||
|
216
Волшебник
09.12.25
✎
16:40
|
ЭтоБаранов = СтрНайти(ПараметрыСеанса.ТекущийПользователь.Наименование, "Баранов ") > 0;
Если ЭтоБаранов Тогда
Предупреждение("Доступ запрещён!");
Отказ = Истина;
Возврат;
КонецЕсли; |
|||
|
217
formista2000
09.12.25
✎
17:09
|
https://govnokod.ru/1c
не благодарите )) |
|||
|
218
ptiz
09.12.25
✎
17:34
|
(14) 👍
Я всегда "м" пишу в имени переменных уровня модуля - хоть что-то. Вообще, плохо, что по имени нельзя понять - то ли это переменная (локальная или уровня модуля), то ли реквизит объекта, то ли реквизит формы, то ли параметр процедуры. |
|||
|
219
Злопчинский
10.12.25
✎
11:18
|
(214) такие стили именований могут быть наследством от англоязычных (западных) стилей, определяемых в т.ч. менталитетом и строением языка.
. когда я открою какую-нибудь типовую и надо найти, как работают типовые с номенклатурой - я в первую очередь буду искать "номенкл", а не "получить"/взять/сложить/итд. Да, сложилась практика отглагольных форм. но что-то я последнее время, когда много процедур и функций начал "группировать" по принципу "Объект" -> "Что с ним делаем"... |
|||
|
220
Chai Nic
10.12.25
✎
11:24
|
(218) Это вы считаете что это плохо. А изначально возможность абстрагироваться от способа получения данных считалось крайне полезной. В паскале вот даже можно было вызывать функцию без скобок.
|
|||
|
221
Fish
гуру
10.12.25
✎
10:20
|
(42) "А есть утвержденные тесты для проверки "нормальности" программиста?" - Если ты работаешь с типовыми и у тебя волосы причёсаны и глаза не вытекли - ты ненормальный.
|
|||
|
222
Asmody
10.12.25
✎
11:16
|
(221) 🔥
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |