1C-Company / v8-code-style

Расширение для 1C:EDT, которое помогает разрабатывать конфигурации/приложения по стандартам 1С для платформы "1С:Предприятие 8".
Eclipse Public License 2.0
175 stars 53 forks source link

G5V8DT-24086 Ложные срабатывания проверки The asynchronous method is followed by lines of code #1408

Closed MaksimDzyuba closed 8 months ago

MaksimDzyuba commented 9 months ago

Проверка "code-after-async-call" выключена по умолчанию. Сделал это по следующим причинам: 1) в стандартах есть одобренные примеры кода, которые приводит к возникновению данной ошибки - см. https://its.1c.ru/db/v8std#content:703:hdoc. И такого кода реально много, в одной БСП более 30 вхождений. 2) кажется, что эти ошибки полезны только тем, кто переходит от синхронной работы к асинхронной, но на сколько мне известно, такие работы уже выполнены в большинстве конфигураций, просьба поправить, если не прав.

Поэтому предлагаю данную ошибку не включать по умолчанию.

marmyshev commented 9 months ago

@MaksimDzyuba Я тут не соглашусь что проверка полезна только тем кто переходит на асинхрон:

  1. когда код пишешь можно просто забыть и оставить код после вызова асинхронного метода.
  2. Так же платформа не дает четко понять какая ветка кода будет исполняться первая: синхронная (после вызова метода) или асинхронная - ответ для разработчиков может быть неожиданный, т.к. Клиент однопоточный. 😁

Т.е. практика оставлять код после асинх-метода - порочная и невозможно отделить всякий мусор который не захотели перенести на 2 строчки выше (типа СтандартнаяОбработка=Ложь;), от реально забытого кода.

Тут полезнее было бы сделать 2 квикфикса:

  1. Удалить код после асинх-метода
  2. Перенести код выше асинх-метода
MaksimDzyuba commented 9 months ago

Нужно ещё в историю изменений запись добавить об отключении по умолчанию

Сделал

MaksimDzyuba commented 9 months ago

@MaksimDzyuba Я тут не соглашусь что проверка полезна только тем кто переходит на асинхрон:

  1. когда код пишешь можно просто забыть и оставить код после вызова асинхронного метода.
  2. Так же платформа не дает четко понять какая ветка кода будет исполняться первая: синхронная (после вызова метода) или асинхронная - ответ для разработчиков может быть неожиданный, т.к. Клиент однопоточный. 😁

Т.е. практика оставлять код после асинх-метода - порочная и невозможно отделить всякий мусор который не захотели перенести на 2 строчки выше (типа СтандартнаяОбработка=Ложь;), от реально забытого кода. да, согласен, но как это проверять, если ниже просто код, который логикой не связан с тем, что делается в отложенном вызове, всегда его переносить вверх, чтобы просто не показывалась ошибка, как-то тоже странно, то есть даже если человек себе отдает отчет, что он делает, он должен писать код, как ему велит проверка, это не много странно все равно

Тут полезнее было бы сделать 2 квикфикса:

  1. Удалить код после асинх-метода
  2. Перенести код выше асинх-метода С этим согласен, отдельно можно сделать.