<?xml version="1.0" encoding="utf-8"?>
<feed xml:lang="en" xmlns="http://www.w3.org/2005/Atom"><title>Recent posts to Coding Best Practices</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/4de209699a/" rel="alternate"/><link href="https://forge.codesys.com/forge/talk/Engineering/thread/4de209699a/feed.atom" rel="self"/><id>https://forge.codesys.com/forge/talk/Engineering/thread/4de209699a/</id><updated>2020-02-27T13:58:30.316000Z</updated><subtitle>Recent posts to Coding Best Practices</subtitle><entry><title>Coding Best Practices</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/4de209699a/?limit=25#d3d4" rel="alternate"/><published>2020-02-27T13:58:30.316000Z</published><updated>2020-02-27T13:58:30.316000Z</updated><author><name>tstevic</name><uri>https://forge.codesys.com/u/tstevic/</uri></author><id>https://forge.codesys.com8718fcd2bd722e7fe4b525ab827eb617aacf3748</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;Thank You!&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Coding Best Practices</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/4de209699a/?limit=25#85cd" rel="alternate"/><published>2020-02-27T13:58:30.047000Z</published><updated>2020-02-27T13:58:30.047000Z</updated><author><name>tstevic</name><uri>https://forge.codesys.com/u/tstevic/</uri></author><id>https://forge.codesys.com7840b86a3377f3211e141031caca303bef4d61ed</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;rickj hat geschrieben:&lt;/strong&gt;&lt;br/&gt;
Adding to what TVM said, for large function calls it's common to list parameters on separate lines as shown below.   Also note the different notation for input and output parameters.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="k"&gt;Result&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;SomeFunction&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="n"&gt;Input_01&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;in01&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="o"&gt;//&lt;/span&gt; &lt;span class="k"&gt;Input&lt;/span&gt; &lt;span class="k"&gt;parameters&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="n"&gt;Input_02&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;in02&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="n"&gt;Input_03&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;in03&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="ss"&gt;"        "&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="n"&gt;Input_99&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;in99&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="n"&gt;Output_01&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;out01&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="o"&gt;//&lt;/span&gt; &lt;span class="k"&gt;Output&lt;/span&gt; &lt;span class="k"&gt;parameters&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="n"&gt;Output_02&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;out02&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

&lt;/div&gt;</summary></entry><entry><title>Coding Best Practices</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/4de209699a/?limit=25#4373" rel="alternate"/><published>2020-02-27T13:58:29.758000Z</published><updated>2020-02-27T13:58:29.758000Z</updated><author><name>Anonymous</name><uri>https://forge.codesys.com/u/*anonymous/</uri></author><id>https://forge.codesys.comb10fbb4c4ad65f8dc8080d951bc76568a8e2bcbb</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;&lt;em&gt;Originally created by:&lt;/em&gt; rickj&lt;/p&gt;
&lt;p&gt;Adding to what TVM said, for large function calls it's common to list parameters on separate lines as shown below.   Also note the different notation for input and output parameters.&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="k"&gt;Result&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;SomeFunction&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="n"&gt;Input_01&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;in01&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="o"&gt;//&lt;/span&gt; &lt;span class="k"&gt;Input&lt;/span&gt; &lt;span class="k"&gt;parameters&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="n"&gt;Input_02&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;in02&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="n"&gt;Input_03&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;in03&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="ss"&gt;"        "&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="n"&gt;Input_99&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;in99&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="n"&gt;Output_01&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;out01&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="o"&gt;//&lt;/span&gt; &lt;span class="k"&gt;Output&lt;/span&gt; &lt;span class="k"&gt;parameters&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt;  &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="n"&gt;Output_02&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;out02&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="err"&gt; &lt;/span&gt; &lt;span class="err"&gt; &lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;

&lt;/div&gt;</summary></entry><entry><title>Coding Best Practices</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/4de209699a/?limit=25#c63c" rel="alternate"/><published>2020-02-27T13:58:29.503000Z</published><updated>2020-02-27T13:58:29.503000Z</updated><author><name>tvm</name><uri>https://forge.codesys.com/u/tvm/</uri></author><id>https://forge.codesys.com3d50ecfebac6acbff263f9aacad1e1b7a9a88755</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;As far as performance goes, there doesn't seem to be a difference:&lt;/p&gt;
&lt;p&gt;As for style, I agree with you, that CONCAT(String1, String2) is more readable, but on more complex functions where the inputs might not be as intuitive, I'll use the names.&lt;/p&gt;
&lt;p&gt;&lt;img alt="IMG: Capture.PNG" rel="nofollow" src="https://forum.codesys.com//download/file.php?id=4553"/&gt;&lt;/p&gt;&lt;/div&gt;</summary></entry><entry><title>Coding Best Practices</title><link href="https://forge.codesys.com/forge/talk/Engineering/thread/4de209699a/?limit=25#e668" rel="alternate"/><published>2020-02-27T13:58:28.779000Z</published><updated>2020-02-27T13:58:28.779000Z</updated><author><name>tstevic</name><uri>https://forge.codesys.com/u/tstevic/</uri></author><id>https://forge.codesys.com5ecc024130f89325c91481f0ed7da449d4b1e012</id><summary type="html">&lt;div class="markdown_content"&gt;&lt;p&gt;I am working on an existing project. This project has a number of function calls with the format:&lt;/p&gt;
&lt;p&gt;String3 := CONCAT(STR1 := String1, STR2 := String2);&lt;/p&gt;
&lt;p&gt;This works properly. My preference would be:&lt;/p&gt;
&lt;p&gt;String3 := CONCAT(String1, String2);&lt;/p&gt;
&lt;p&gt;This also works. Is there a mention in any coding style documentation that suggests one style or the other?&lt;/p&gt;
&lt;p&gt;Could there be a performance difference between the two?&lt;/p&gt;
&lt;p&gt;First Style&lt;br/&gt;
CPU Step 1: Assign STR1 the value of String1&lt;br/&gt;
CPU Step 2: Assign STR2 the value of String2&lt;br/&gt;
CPU Step 3: Call CONCAT with STR1 and STR2&lt;br/&gt;
VS.&lt;br/&gt;
CPU STEP 1: CALL CONCAT with String1 and String2&lt;/p&gt;&lt;/div&gt;</summary></entry></feed>