From 0c48ac5ad50fbbdecd10c0adf6ba751b0e845ed5 Mon Sep 17 00:00:00 2001 From: waldo1001 Date: Sat, 11 Dec 2021 08:29:14 +0100 Subject: [PATCH] Begin-End - Compound Only --- .../begin-as-an-afterword/index.md | 2 +- .../Readability/begin-end/index.md | 59 +++++++++++++++++++ .../Templates/Guidelines/index.md | 2 +- 3 files changed, 61 insertions(+), 2 deletions(-) create mode 100644 content/BCBestPractices/Readability/begin-end/index.md diff --git a/content/BCBestPractices/Readability/begin-as-an-afterword/index.md b/content/BCBestPractices/Readability/begin-as-an-afterword/index.md index e83c34e0..c9db894b 100644 --- a/content/BCBestPractices/Readability/begin-as-an-afterword/index.md +++ b/content/BCBestPractices/Readability/begin-as-an-afterword/index.md @@ -30,4 +30,4 @@ When `begin` follows `then`, `else`, `do`, it should be on the same line, preced You can find discussions on all "Best Practices" [here](https://github.com/microsoft/alguidelines/discussions/categories/bc-best-practices). -If you don't find the discussion of this pattern, please feel fee to create a new one with the same title as this article. \ No newline at end of file +If you don't find the discussion of this guideline, please feel fee to create a new one with the same title as this article. \ No newline at end of file diff --git a/content/BCBestPractices/Readability/begin-end/index.md b/content/BCBestPractices/Readability/begin-end/index.md new file mode 100644 index 00000000..52394bff --- /dev/null +++ b/content/BCBestPractices/Readability/begin-end/index.md @@ -0,0 +1,59 @@ ++++ +title = "Begin-End - Compound Only" +weight = 240 ++++ + +<_Created by Microsoft, Described by waldo_\> + +Only use begin..end to enclose [compound statements](https://docs.microsoft.com/en-us/cpp/c-language/compound-statement-c?view=msvc-170#:~:text=A%20compound%20statement%20%28also%20called%20a%20%22block%22%29%20typically,appear%20at%20the%20head%20of%20a%20compound%20statement.). + +## Bad code + +```AL +if FindSet() then begin + repeat + ... + until next() = 0; +end; +``` + +## Good code + +```AL +IF FindSet() then + repeat + ... + until next() = 0; +``` + +## Bad code + +```AL +IF IsAssemblyOutputLine then begin + TestField("Order Line No.",0); +end; +``` + +## Good code + +```AL +IF IsAssemblyOutputLine then + TestField("Order Line No.",0); +``` + +## Exception + +```AL +// Except for this case +IF X then begin + IF Y then + //DO SOMETHING; +end else + (not X) +``` + +## [Discussions](https://github.com/microsoft/alguidelines/discussions/categories/bc-best-practices?discussions_q=begin+end+compound+only+category%3A%22BC+Best+Practices%22) + +You can find discussions on all "Best Practices" [here](https://github.com/microsoft/alguidelines/discussions/categories/bc-best-practices). + +If you don't find the discussion of this guideline, please feel fee to create a new one with the same title as this article. diff --git a/content/Contributing/Templates/Guidelines/index.md b/content/Contributing/Templates/Guidelines/index.md index d4330a0b..b485f566 100644 --- a/content/Contributing/Templates/Guidelines/index.md +++ b/content/Contributing/Templates/Guidelines/index.md @@ -33,4 +33,4 @@ PutCodeblocksHere() You can find discussions on all "Best Practices" [here](https://github.com/microsoft/alguidelines/discussions/categories/bc-best-practices). -If you don't find the discussion of this pattern, please feel fee to create a new one with the same title as this article. \ No newline at end of file +If you don't find the discussion of this guideline, please feel fee to create a new one with the same title as this article. \ No newline at end of file