CBS-BC-AT / AL-Go

0 stars 0 forks source link

Ruleset Anpassungen #12

Open cegekaJG opened 8 months ago

cegekaJG commented 8 months ago

Bitte meldet Anfragen für Änderungen des Rulesets hier. Die Tabellen und Details findet ihr hier:

Name Tabelle Details
CodeCop CodeCop.tsv Details
LinterCop LinterCop.tsv GitHub Wiki
UICop UiCop.tsv Microsoft Learn
cegekaJG commented 8 months ago

Ich schlage folgende Regeln als mögliche Fehler vor:

ID Description Justification
AA0005 Only use BEGIN..END to enclose compound statements. Weniger BEGIN..END-Klammern vereinfacht den Code und macht ihn mehr lesbar.
AA0008 Function calls should have parenthesis even if they do not have any parameters. Implizite Verwendungen sollten vermeidet werden, und die Klammern machen es leichter, Variablen von Funktionen zu unterscheiden.
AA0013 When BEGIN follows THEN, ELSE, DO, it should be on the same line, preceded by one space character. Vereinheitlicht den Code und macht ihn mehr lesbar.
AA0018 The END, IF, REPEAT, UNTIL, FOR, WHILE, and CASE statement should always start a line. Vereinheitlicht den Code und macht ihn mehr lesbar.
AA0021 Variable declarations should be ordered by type. Macht den Code mehr übersichtlich und verhindert ungewollte Änderungen von Cleanup-Jobs. Dies kann mit "AZ AL" automatisiert werden.
AA0040 Avoid using nested WITH statements. WITH sollte prinzipiell vermieden werden, da es zu unklaren Aufrufen führen kann.
AA0050 Permission set extensions should not include permissions for objects defined in another application. Berechtigungen sollten sich nur auf Objekte in der Extension beziehen.
AA0139 Do not assign a text to a target with smaller size. Damit können falsch definierte Variablen und Felder auffallen.
AA0161 Only use AssertError in Test Codeunits. Es gibt keinen Grund, AssertError außerhalb einer Codeunit zu verwenden.
AA0194 Only write actions that have an effect. Leere Aktionen verwirren den Benutzer und macht den Zweck unklar. Stattdessen sollte eine ToDo-Notiz oder ein GitHub-Issue erstellt werden.
AA0198 Do not use identical names for local and global variables. Immer einen einzigartigen Namen wählen, um Fehler zu vermeiden und den Code deutlicher zu machen.
AA0202 To avoid confusion, do not give local variables the same name as fields, methods, or actions in the same scope. Immer einen einzigartigen Namen wählen, um Fehler zu vermeiden und den Code deutlicher zu machen.
AA0203 To avoid confusion, do not give methods the same name as fields or actions in the same scope. Immer einen einzigartigen Namen wählen, um Fehler zu vermeiden und den Code deutlicher zu machen.
AA0204 To avoid confusion, do not give global variables the same name as fields, methods, or actions in the same scope. Immer einen einzigartigen Namen wählen, um Fehler zu vermeiden und den Code deutlicher zu machen.
AA0207 The EventSubscriber method must be local. Es gibt keinen Grund, einen EventSubscriber nicht lokal zu machen.
AA0211 Avoids a runtime error from using CalcFields on a field that is not a FlowField or a field of type Blob. Es gibt keinen Grund, ein CalcField auf ein anderes Feld zu machen.
AA0224 The count of option captions specified in the OptionCaption property is wrong. Eine Diskrepanz zwischen den Werten und den Captions sollte immer vermieden werden.
AA0231 StrSubstNo or string concatenation must not be used as a parameter in the Error method. Error kann bereits Platzhalter ersetzen. Dies macht den Code leicher zu lesen.
AA0243 Running an upgrade codeunit is not allowed. Upgrade Codeunits sollten nur für den Upgrade-Prozess verwendet werden.
AA0244 Do not use identical names for parameters and global variables. Immer einen einzigartigen Namen wählen, um Fehler zu vermeiden und den Code deutlicher zu machen. (Innerhalb 2 verschiedener lokalen Scopes kann ein Name weiterverwendet werden.)
AA0245 To avoid confusion, do not give parameters the same name as fields, methods, or actions in the same scope. Immer einen einzigartigen Namen wählen, um Fehler zu vermeiden und den Code deutlicher zu machen.
Id Description Justification
AW0004 A Blob cannot be used as a source expression for a page field. Ein Blob auf einer Seite hat keinen Zweck, daher kann ein Fehler hier Irrtümer vermeiden.
AW0005 Actions should use the Image property. Ein Bild sollte nicht implizit aufgerufen werden, und macht die Interface für den Benutzer leichter zu bedienen.
AW0009 Using a Blob with subtype Bitmap on a page field is deprecated. Instead use the Media/MediaSet data types. Da dies eine veralterte Methode ist und wenig Aufwand zum Beheben macht, kann dies einen Fehler aufrufen.
Id Description Justification
LC0001 FlowFields should not be editable. FlowFields sind Read-Only, und eine Änderung eines Feldes auf der UI sollte eine Änderung der Daten ausführen, was standardmäßig nicht der Fall ist. Ausnahmen sollten ein Kommentar enthalten.
LC0002 Commit() needs a comment to justify its existence. Either a leading or a trailing comment. Ein Kommentar macht den Code leichter verständlich und macht Entwickler mehr aufmerksam, welche Stellen Commits benötigen.
LC0013 NotBlank should be set explicitly for tables with a single-field primary key. Implizite Eigenschaften wie NotBlank sollten vermieden werden. Dies macht das Verhalten der UI leichter nachvollziehbar.
LC0014 The Caption of permissionset objects should not exceed the maximum length. Die Länge des Kommentars kann trivial mit MaxLength gesetzt werden.
LC0017 Writing to a FlowField is not common. Add a comment to explain this. Siehe LC0001, unorthodoxe Methoden sollten erklärt werden.
LC0024 Procedure declaration should not end with semicolon. Ist trivial zu beheben und vermeidet ungewünschte Änderungen bei Cleanup-Jobs.
LC0028 Event subscriber arguments now use identifier syntax instead of string literals. Ist trivial zu beheben und vermeidet ungewünschte Änderungen bei Cleanup-Jobs.
Andreas-Hargassner-Cegeka commented 8 months ago

Ahoi, für mich passt das alles, kann als Fehler hochkommen.