Fix remaining READ-convention sample links across this PR's 18 articles

The same plain-backtick "See sample: \`x.good.al\`." form fixed on
al-methods-limited-during-write-transactions (PR #161) turned up
repo-wide on 15 more of this PR's articles - Knowledge-Retrieval.ps1
requires the markdown-link form to associate a sample with its
article. All 16 fixed; the four local validators (frontmatter,
knowledge-index, knowledge-retrieval, review-fixtures, skill-index)
pass.
This commit is contained in:
Michael Dieringer 2026-09-21 22:30:25 +02:00
parent faa0bceb86
commit b983a6da57
16 changed files with 32 additions and 32 deletions

View file

@ -19,10 +19,10 @@ All AL identifiers — variables, procedures, parameters, fields, object names,
Write every identifier in English, and translate developer intent rather than transliterating it — when a requirement is described in another language, the resulting variable, procedure, and field names should still read as English. Captions and tooltips may carry target-language text in the source file, with locale translations managed through XLIFF.
See sample: `al-identifiers-english.good.al`.
See sample: [`al-identifiers-english.good.al`](al-identifiers-english.good.al).
## Anti Pattern
Using native-language identifiers such as a Danish variable or procedure name in AL source code, relying on the fact that the code still compiles and runs correctly. This makes the code unreadable to non-native-language contributors and mixes localization concerns into source that should stay language-neutral.
See sample: `al-identifiers-english.bad.al`.
See sample: [`al-identifiers-english.bad.al`](al-identifiers-english.bad.al).

View file

@ -19,10 +19,10 @@ When a field or variable represents a genuine true/false state — yes/no, on/of
Type a field or variable as `Boolean` when the domain concept is inherently a true/false state. Do not replace a meaningful two-option domain model with a Boolean solely because it currently has two values.
See sample: `binary-choice-must-be-boolean.good.al`.
See sample: [`binary-choice-must-be-boolean.good.al`](binary-choice-must-be-boolean.good.al).
## Anti Pattern
Modeling a yes/no choice as an `Option` with two members, or as an `Integer` with magic-number values, forces every caller to remember which value means what and leaves room for a meaningless third value.
See sample: `binary-choice-must-be-boolean.bad.al`.
See sample: [`binary-choice-must-be-boolean.bad.al`](binary-choice-must-be-boolean.bad.al).

View file

@ -19,10 +19,10 @@ When a variable or field represents a fixed set of named, mutually exclusive sta
Declare an `Enum` with named values and branch on the enum value, not a raw number.
See sample: `fixed-choice-set-must-use-enum-not-integer.good.al`.
See sample: [`fixed-choice-set-must-use-enum-not-integer.good.al`](fixed-choice-set-must-use-enum-not-integer.good.al).
## Anti Pattern
Using a plain `Integer` field with the meaning of each value tracked only in a comment pushes the documentation of the states into something the compiler cannot check and a future maintainer cannot rely on.
See sample: `fixed-choice-set-must-use-enum-not-integer.bad.al`.
See sample: [`fixed-choice-set-must-use-enum-not-integer.bad.al`](fixed-choice-set-must-use-enum-not-integer.bad.al).

View file

@ -19,10 +19,10 @@ AL is case-insensitive, so `MESSAGE(...)`, `ERROR(...)`, `CONFIRM(...)`, and `ST
Call intrinsic functions in their modern, PascalCase form.
See sample: `intrinsic-al-functions-must-use-modern-casing.good.al`.
See sample: [`intrinsic-al-functions-must-use-modern-casing.good.al`](intrinsic-al-functions-must-use-modern-casing.good.al).
## Anti Pattern
ALL-CAPS intrinsic function calls trip no compiler error, but they are a reliable signal that a code block was copied from old C/AL material or outdated training content rather than written against current AL conventions.
See sample: `intrinsic-al-functions-must-use-modern-casing.bad.al`.
See sample: [`intrinsic-al-functions-must-use-modern-casing.bad.al`](intrinsic-al-functions-must-use-modern-casing.bad.al).

View file

@ -19,10 +19,10 @@ Since Business Central 2024 release wave 1, Microsoft's own objects are organize
When referencing an existing AL object, resolve its namespace from that object's actual source file or symbol definition — never infer or invent one from its name, functional area, or naming convention.
See sample: `namespace-must-be-verified-from-source.good.al`.
See sample: [`namespace-must-be-verified-from-source.good.al`](namespace-must-be-verified-from-source.good.al).
## Anti Pattern
Writing a `using` statement from memory, from an incomplete path, or from a plausible-looking guess. It can appear correct while actually resolving to the wrong object, or fail to resolve, once checked against stale or mismatched symbols, a different build configuration, or the object's actual current source — not because the compiler and the AL Language Server apply different namespace-resolution rules; they don't.
See sample: `namespace-must-be-verified-from-source.bad.al`.
See sample: [`namespace-must-be-verified-from-source.bad.al`](namespace-must-be-verified-from-source.bad.al).

View file

@ -19,10 +19,10 @@ When a procedure declares a parameter with `var`, that parameter is passed by re
Declare a variable in the caller's scope and pass it to the `var` parameter.
See sample: `var-parameters-require-an-addressable-variable.good.al`.
See sample: [`var-parameters-require-an-addressable-variable.good.al`](var-parameters-require-an-addressable-variable.good.al).
## Anti Pattern
Passing a literal or a computed expression to a `var` parameter position fails to compile, because neither has an address the callee can write back to.
See sample: `var-parameters-require-an-addressable-variable.bad.al`.
See sample: [`var-parameters-require-an-addressable-variable.bad.al`](var-parameters-require-an-addressable-variable.bad.al).