-
Notifications
You must be signed in to change notification settings - Fork 51
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Проверка на запросы в цикле #32
Проверка на запросы в цикле #32
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Было бы еще неплохо проверить это на ERP 2 (как самая большая кодовая база) - чтобы понять сколько там ошибок и все ли они достоверные (т.е. нет ли каких-то особенностей в коде).
bundles/com.e1c.v8codestyle.bsl/src/com/e1c/v8codestyle/bsl/check/QueryInLoopCheck.java
Outdated
Show resolved
Hide resolved
bundles/com.e1c.v8codestyle.bsl/src/com/e1c/v8codestyle/bsl/check/QueryInLoopCheck.java
Outdated
Show resolved
Hide resolved
bundles/com.e1c.v8codestyle.bsl/src/com/e1c/v8codestyle/bsl/check/QueryInLoopCheck.java
Outdated
Show resolved
Hide resolved
bundles/com.e1c.v8codestyle.bsl/src/com/e1c/v8codestyle/bsl/check/QueryInLoopCheck.java
Outdated
Show resolved
Hide resolved
bundles/com.e1c.v8codestyle.bsl/src/com/e1c/v8codestyle/bsl/check/QueryInLoopCheck.java
Outdated
Show resolved
Hide resolved
...1c.v8codestyle.bsl.itests/src/com/e1c/v8codestyle/bsl/check/itests/QueryInLoopCheckTest.java
Outdated
Show resolved
Hide resolved
...1c.v8codestyle.bsl.itests/src/com/e1c/v8codestyle/bsl/check/itests/QueryInLoopCheckTest.java
Outdated
Show resolved
Hide resolved
...m.e1c.v8codestyle.bsl.itests/workspace/QueryInLoop/src/CommonModules/CommonModule/Module.bsl
Show resolved
Hide resolved
@marmyshev |
Ну тут можно будет ставить локальные исключения Да, давай тогда этот кейс сделай параметром "Разрешить порционные циклы" - по умолчанию "истина", тогда кому не надо такое - тот отключит. Но в этом случае надо как-то очень точно анализировать что запрос именно "порционный", чтобы не было ложных срабатываний. Эти кейсы надо бы в документации четко описать - чтобы не было вопросов у разработчика, почему тут ошибка не нашлась. |
Было бы очень неплохо - в реквесте публиковать сколько в типовых конфигурациях (ЗУП, БП, ERP итд) нашлось таких ошибок.
|
Поэтому мне и кажется что надо разрешать бесконечные циклы "Пока Истина Цикл". Так как в них явно предусмотрен выход по условию. |
С одной стороны 1С:Специалист по платформе не получить при одном запросе в цикле. А с другой выключим проверку по умолчанию, чтобы разработчики типовых не сильно от этого расстраивались. :) |
Просто "бесконечный цикл с запросом" - это ошибка. А "порционный бесконечный цикл" - это что-то другое, но как разделять - я об этом как раз писал. Если ты предлагаешь не проверять просто "бесконечные циклы с запросом" (если порционность слишком сложно или дорого определять) - то это быстро сделать - можно пойти супер-простым путем - параметр называть "Проверять запросы в бесконечных циклах" (по умолчанию "ложь"). |
Типовой ЗУП суммарно содержит 20 тыс. ошибок и предупреждений. Будет теперь не 20 тыс., а 21 тыс. Я предлагаю для разработчиков типовых ничего не отключать. Пусть используют новый гибкий механизм подавления ошибок чтобы подавлять проверки в тех объектах, над которыми они не работают. А вот тем кто только начинает новые проекты в EDT, надо включить все проверки. Чтобы они сразу разрабатывали правильно. |
Поясни, ты предлагаешь что ты сам пойдешь ко всем разработчикам всех типовых и будешь их убеждать в доработки старого кода? Т.е. ты предлагаешь ничего не делать - даже параметры настройки проверки? |
Я говорю о том, что сейчас в типовой конфигурации больше 20 тыс. ошибок. И если разработчики типовой не собираются их править, то они их уже как-то выключили. Ровно таким же образом им нужно будет выключать и новые проверки. Я считаю неправильным поставлять именно эту проверку выключенной по умолчанию, так как не вижу чем она отличается от десятка других. |
Понял мысль, но кажется есть недопонимание.
количество текущих легаси-ошибок в типовых - в этих вопросах (имхо) не должно быть аргументом за то чтобы НЕ делать параметры в этой проверке. |
Еще, тут прокомментирую, но наверное можно делать в рамках отдельной задачи. бывают какие-то типовые процедуры которые выполняют запросы, лежащие в общем модуле: например Поэтому было бы неплохо, указывать в параметрах вызовы каких-то общих процедур специфичных для проекта - список процедур через запятую, что считать вызовом запроса. |
bundles/com.e1c.v8codestyle.bsl/src/com/e1c/v8codestyle/bsl/check/QueryInLoopCheck.java
Outdated
Show resolved
Hide resolved
bundles/com.e1c.v8codestyle.bsl/src/com/e1c/v8codestyle/bsl/check/QueryInLoopCheck.java
Show resolved
Hide resolved
bundles/com.e1c.v8codestyle.bsl/src/com/e1c/v8codestyle/bsl/check/QueryInLoopCheck.java
Outdated
Show resolved
Hide resolved
bundles/com.e1c.v8codestyle.bsl/src/com/e1c/v8codestyle/bsl/check/QueryInLoopCheck.java
Outdated
Show resolved
Hide resolved
tests/com.e1c.v8codestyle.bsl.itests/workspace/QueryInLoop/src/Configuration/Configuration.mdo
Outdated
Show resolved
Hide resolved
face5e2
to
00e58f5
Compare
...1c.v8codestyle.bsl.itests/src/com/e1c/v8codestyle/bsl/check/itests/QueryInLoopCheckTest.java
Outdated
Show resolved
Hide resolved
...com.e1c.v8codestyle.bsl/src/com/e1c/v8codestyle/internal/bsl/ExecutableExtensionFactory.java
Outdated
Show resolved
Hide resolved
bundles/com.e1c.v8codestyle.bsl/src/com/e1c/v8codestyle/bsl/check/QueryInLoopCheck.java
Outdated
Show resolved
Hide resolved
bundles/com.e1c.v8codestyle.bsl/src/com/e1c/v8codestyle/bsl/check/QueryInLoopCheck.java
Outdated
Show resolved
Hide resolved
bundles/com.e1c.v8codestyle.bsl/src/com/e1c/v8codestyle/bsl/check/QueryInLoopCheck.java
Outdated
Show resolved
Hide resolved
bundles/com.e1c.v8codestyle.bsl/src/com/e1c/v8codestyle/bsl/check/QueryInLoopCheck.java
Outdated
Show resolved
Hide resolved
bundles/com.e1c.v8codestyle.bsl/src/com/e1c/v8codestyle/bsl/check/QueryInLoopCheck.java
Outdated
Show resolved
Hide resolved
bundles/com.e1c.v8codestyle.bsl/src/com/e1c/v8codestyle/bsl/check/QueryInLoopCheck.java
Outdated
Show resolved
Hide resolved
bundles/com.e1c.v8codestyle.bsl/src/com/e1c/v8codestyle/bsl/check/QueryInLoopCheck.java
Outdated
Show resolved
Hide resolved
bundles/com.e1c.v8codestyle.bsl/src/com/e1c/v8codestyle/bsl/check/QueryInLoopCheck.java
Show resolved
Hide resolved
@DoublesunRUS По скольку проверка тяжелая и потенциально опасная (ввиду тысяч/сотентысяч срабатываний) предлагаю пока временно ее поставлять отключенной. Почему:
|
Closes #17