-
Notifications
You must be signed in to change notification settings - Fork 109
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
Правило "Передача параметров между клиентом и сервером" - ГОТОВО #2854
Conversation
Kudos, SonarCloud Quality Gate passed! |
@theshadowco @nixel2007 правило готово. примите его, если нет возражений. |
@artbear |
@@ -0,0 +1,2 @@ | |||
diagnosticMessage=Установите модификатор Знач для параметра %s метода %s |
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.
@artbear у Знач
кавычки пропущены.
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.
Исправил
DiagnosticTag.PERFORMANCE, | ||
DiagnosticTag.STANDARD | ||
} | ||
// TODO учесть подходящие типы модулей - только клиентские, только серверные или все? |
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.
@artbear, todo
, либо решаем, либо создаем задачу и здесь оставляем ее номер..
public class TransferringParametersBetweenClientAndServerDiagnostic extends AbstractDiagnostic { | ||
private static final Set<CompilerDirectiveKind> SERVER_COMPILER_DIRECTIVE_KINDS = EnumSet.of( | ||
CompilerDirectiveKind.AT_SERVER, | ||
// CompilerDirectiveKind.AT_CLIENT_AT_SERVER_NO_CONTEXT, |
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.
@artbear, закомментированный код.
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.
исправил
getMethodParamsStream() | ||
// сначала получаю вызовы из клиентских методов, а уже потом проверяю использование параметров внутри метода, | ||
// чтобы исключить лишний анализ серверных методов, которые вызываются из серверных методов | ||
.map(pair -> Triple.of(pair.getLeft(), |
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.
@artbear, не читабельно (
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.
предлагаю функциональщину на каждом этапе, если это несколько statement вынести в методы с говорящими именами. Будет более читабельно и сразу можно будет понять, что происходит.
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.
да, переделал\упростил
pair.getRight(), | ||
getRefCalls(pair.getLeft()))) | ||
.filter(triple -> !triple.getRight().isEmpty()) | ||
.map(triple -> Triple.of(triple.getLeft(), |
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.
@artbear, не читабельно (
getRefCalls(pair.getLeft()))) | ||
.filter(triple -> !triple.getRight().isEmpty()) | ||
.map(triple -> Triple.of(triple.getLeft(), | ||
notAssignedParams(triple.getLeft(), triple.getMiddle()), |
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.
@artbear, кажется имеется в виде не измененные "not changed", а не присвоенные?
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.
я учитываю\пропускаю именно "не присвоенные" параметры
} | ||
|
||
private String getMessage(String paramName, String methodName) { | ||
return String.format("Установите модификатор Знач для параметра %s метода %s", |
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.
@artbear, кстати, а мы это из ресурсов получить не можем?
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.
@artbear, кстати, а мы это из ресурсов получить не можем?
я специально явно укаываю строку-копию, чтобы не пропустить пустые ресурсы.
Предлагаю так и оставить.
src/test/resources/diagnostics/TransferringParametersBetweenClientAndServerDiagnostic.bsl
Show resolved
Hide resolved
src/test/resources/diagnostics/TransferringParametersBetweenClientAndServerDiagnostic.bsl
Show resolved
Hide resolved
src/test/resources/diagnostics/TransferringParametersBetweenClientAndServerDiagnostic.bsl
Show resolved
Hide resolved
@artbear, просьба, поправь, пожалуйста, оформление стримов, не читабельны через ПР( |
добавил кавычки к строке-ресурса
замечания Сонара и ревью кода
@theshadowco @otymko |
@otymko почти все замечания исправлены. в паре мест, где я не совсем согласен, я оставил свой комментарий. |
перенес в отдельную задачу
Kudos, SonarCloud Quality Gate passed! |
@theshadowco @otymko @nixel2007 Правило готово, все замечания исправлены. Правило работает в Инфостарте уже много месяцев!! Досмотрите уже ПР и принимайте его, пожалуйста! |
Описание
Связанные задачи
Closes #2853
Чеклист
Общие
gradlew precommit
)Для диагностик
Дополнительно