DEV Community

OpenSource
OpenSource

Posted on

6 3 3 3 3

To document or not to document? That is the question

โš ๏ธ Warning: Contain excuses not to write documentation

Other people:
"๐˜Š๐˜ฐ๐˜ฅ๐˜ฆ ๐˜ฅ๐˜ฐ๐˜ค๐˜ถ๐˜ฎ๐˜ฆ๐˜ฏ๐˜ต๐˜ข๐˜ต๐˜ช๐˜ฐ๐˜ฏ ๐˜ช๐˜ด ๐˜ข๐˜ฏ ๐˜ช๐˜ฏ๐˜ท๐˜ฆ๐˜ด๐˜ต๐˜ฎ๐˜ฆ๐˜ฏ๐˜ต ๐˜ต๐˜ฐ ๐˜บ๐˜ฐ๐˜ถ๐˜ณ ๐˜ง๐˜ถ๐˜ต๐˜ถ๐˜ณ๐˜ฆ ๐˜ด๐˜ฆ๐˜ญ๐˜ง ๐˜ข๐˜ฏ๐˜ฅ ๐˜บ๐˜ฐ๐˜ถ๐˜ณ ๐˜ต๐˜ฆ๐˜ข๐˜ฎ."

Me:
"๐˜๐˜ง ๐˜บ๐˜ฐ๐˜ถ ๐˜ฉ๐˜ข๐˜ท๐˜ฆ ๐˜ต๐˜ฐ ๐˜ฆ๐˜น๐˜ฑ๐˜ญ๐˜ข๐˜ช๐˜ฏ, ๐˜ช๐˜ต ๐˜ธ๐˜ข๐˜ด ๐˜ฏ๐˜ฐ๐˜ต ๐˜ค๐˜ญ๐˜ฆ๐˜ข๐˜ณ ๐˜ช๐˜ฏ ๐˜ต๐˜ฉ๐˜ฆ ๐˜ง๐˜ช๐˜ณ๐˜ด๐˜ต ๐˜ฑ๐˜ญ๐˜ข๐˜ค๐˜ฆ."

Obvious Instructions

Instead of adding tons of comments, make the code more readable itself:

โŒ ๐ƒ๐Ž๐'๐“: Add a comment to explain cryptic vars

// ๐˜”๐˜ถ๐˜ญ๐˜ต๐˜ช๐˜ฑ๐˜ญ๐˜บ ๐˜ฑ๐˜ณ๐˜ช๐˜ค๐˜ฆ ๐˜ฃ๐˜บ ๐˜ฒ๐˜ถ๐˜ข๐˜ฏ๐˜ต๐˜ช๐˜ต๐˜บ ๐˜ต๐˜ฐ ๐˜จ๐˜ฆ๐˜ต ๐˜ต๐˜ฐ๐˜ต๐˜ข๐˜ญ ๐˜ค๐˜ฐ๐˜ด๐˜ต
๐˜ญ๐˜ฆ๐˜ต ๐˜น = ๐˜บ * ๐˜ป;
Enter fullscreen mode Exit fullscreen mode

โœ… ๐ƒ๐Ž: Change var names to make them clearer

๐˜ญ๐˜ฆ๐˜ต ๐˜ต๐˜ฐ๐˜ต๐˜ข๐˜ญ๐˜Š๐˜ฐ๐˜ด๐˜ต = ๐˜ฑ๐˜ณ๐˜ช๐˜ค๐˜ฆ * ๐˜ฒ๐˜ถ๐˜ข๐˜ฏ๐˜ต๐˜ช๐˜ต๐˜บ;
Enter fullscreen mode Exit fullscreen mode

or

โŒ ๐ƒ๐Ž๐'๐“: Explain logic with a comment

// ๐˜Š๐˜ฉ๐˜ฆ๐˜ค๐˜ฌ ๐˜ช๐˜ง ๐˜ต๐˜ฉ๐˜ฆ ๐˜ถ๐˜ด๐˜ฆ๐˜ณ ๐˜ช๐˜ด ๐˜ข๐˜ฏ ๐˜ข๐˜ฅ๐˜ฎ๐˜ช๐˜ฏ ๐˜ข๐˜ฏ๐˜ฅ ๐˜ฉ๐˜ข๐˜ด ๐˜ฑ๐˜ฆ๐˜ณ๐˜ฎ๐˜ช๐˜ด๐˜ด๐˜ช๐˜ฐ๐˜ฏ
๐˜ช๐˜ง (๐˜ถ === 1 && ๐˜ฑ > 3) { 
 ๐˜ณ๐˜ถ๐˜ฏ();
}
Enter fullscreen mode Exit fullscreen mode

โœ… ๐ƒ๐Ž: Change variables and function names

๐˜ญ๐˜ฆ๐˜ต ๐˜ช๐˜ด๐˜ˆ๐˜ฅ๐˜ฎ๐˜ช๐˜ฏ = ๐˜ถ๐˜ด๐˜ฆ๐˜ณ๐˜™๐˜ฐ๐˜ญ๐˜ฆ === '๐˜ข๐˜ฅ๐˜ฎ๐˜ช๐˜ฏ';
๐˜ญ๐˜ฆ๐˜ต ๐˜ฉ๐˜ข๐˜ด๐˜—๐˜ฆ๐˜ณ๐˜ฎ๐˜ช๐˜ด๐˜ด๐˜ช๐˜ฐ๐˜ฏ = ๐˜ฑ๐˜ฆ๐˜ณ๐˜ฎ๐˜ช๐˜ด๐˜ด๐˜ช๐˜ฐ๐˜ฏ๐˜“๐˜ฆ๐˜ท๐˜ฆ๐˜ญ > 3;

๐˜ช๐˜ง (๐˜ช๐˜ด๐˜ˆ๐˜ฅ๐˜ฎ๐˜ช๐˜ฏ && ๐˜ฉ๐˜ข๐˜ด๐˜—๐˜ฆ๐˜ณ๐˜ฎ๐˜ช๐˜ด๐˜ด๐˜ช๐˜ฐ๐˜ฏ) { 
 ๐˜จ๐˜ณ๐˜ข๐˜ฏ๐˜ต๐˜ˆ๐˜ค๐˜ค๐˜ฆ๐˜ด๐˜ด(); 
}
Enter fullscreen mode Exit fullscreen mode

Last:
Practice reading code, not documentation.

DRY: Don't repeat yourself
If your code is clear, there's no reason to repeat what it says.

Imagine this:

// ๐˜”๐˜ถ๐˜ญ๐˜ต๐˜ช๐˜ฑ๐˜ญ๐˜บ ๐˜ฑ๐˜ณ๐˜ช๐˜ค๐˜ฆ ๐˜ฃ๐˜บ ๐˜ฒ๐˜ถ๐˜ข๐˜ฏ๐˜ต๐˜ช๐˜ต๐˜บ ๐˜ต๐˜ฐ ๐˜จ๐˜ฆ๐˜ต ๐˜ต๐˜ฐ๐˜ต๐˜ข๐˜ญ ๐˜ค๐˜ฐ๐˜ด๐˜ต
๐˜ญ๐˜ฆ๐˜ต ๐˜ต๐˜ฐ๐˜ต๐˜ข๐˜ญ๐˜Š๐˜ฐ๐˜ด๐˜ต = ๐˜ฑ๐˜ณ๐˜ช๐˜ค๐˜ฆ * ๐˜ฒ๐˜ถ๐˜ข๐˜ฏ๐˜ต๐˜ช๐˜ต๐˜บ;
Enter fullscreen mode Exit fullscreen mode

or

// ๐˜Š๐˜ฉ๐˜ฆ๐˜ค๐˜ฌ ๐˜ช๐˜ง ๐˜ต๐˜ฉ๐˜ฆ ๐˜ถ๐˜ด๐˜ฆ๐˜ณ ๐˜ช๐˜ด ๐˜ข๐˜ฏ ๐˜ข๐˜ฅ๐˜ฎ๐˜ช๐˜ฏ ๐˜ข๐˜ฏ๐˜ฅ ๐˜ฉ๐˜ข๐˜ด ๐˜ฑ๐˜ฆ๐˜ณ๐˜ฎ๐˜ช๐˜ด๐˜ด๐˜ช๐˜ฐ๐˜ฏ
๐˜ญ๐˜ฆ๐˜ต ๐˜ช๐˜ด๐˜ˆ๐˜ฅ๐˜ฎ๐˜ช๐˜ฏ = ๐˜ถ๐˜ด๐˜ฆ๐˜ณ๐˜™๐˜ฐ๐˜ญ๐˜ฆ === '๐˜ข๐˜ฅ๐˜ฎ๐˜ช๐˜ฏ';
๐˜ญ๐˜ฆ๐˜ต ๐˜ฉ๐˜ข๐˜ด๐˜—๐˜ฆ๐˜ณ๐˜ฎ๐˜ช๐˜ด๐˜ด๐˜ช๐˜ฐ๐˜ฏ = ๐˜ฑ๐˜ฆ๐˜ณ๐˜ฎ๐˜ช๐˜ด๐˜ด๐˜ช๐˜ฐ๐˜ฏ๐˜“๐˜ฆ๐˜ท๐˜ฆ๐˜ญ > 3;

๐˜ช๐˜ง (๐˜ช๐˜ด๐˜ˆ๐˜ฅ๐˜ฎ๐˜ช๐˜ฏ && ๐˜ฉ๐˜ข๐˜ด๐˜—๐˜ฆ๐˜ณ๐˜ฎ๐˜ช๐˜ด๐˜ด๐˜ช๐˜ฐ๐˜ฏ) { 
 ๐˜จ๐˜ณ๐˜ข๐˜ฏ๐˜ต๐˜ˆ๐˜ค๐˜ค๐˜ฆ๐˜ด๐˜ด(); 
}
Enter fullscreen mode Exit fullscreen mode

That's ridiculous.
That's when you know your code is clear.
No explanations needed.

Obvious Instructions


๐™๐„๐ ๐Ž๐… ๐๐˜๐“๐‡๐Ž๐ (๐˜ก๐˜ฆ๐˜ฏ ๐˜ฐ๐˜ง ๐˜Œ๐˜ท๐˜ฆ๐˜ณ๐˜บ๐˜ต๐˜ฉ๐˜ช๐˜ฏ๐˜จ)

๐๐ž๐š๐ฎ๐ญ๐ข๐Ÿ๐ฎ๐ฅ ๐ข๐ฌ ๐›๐ž๐ญ๐ญ๐ž๐ซ ๐ญ๐ก๐š๐ง ๐ฎ๐ ๐ฅ๐ฒ. ๐Ÿ‘ˆ

๐„๐ฑ๐ฉ๐ฅ๐ข๐œ๐ข๐ญ ๐ข๐ฌ ๐›๐ž๐ญ๐ญ๐ž๐ซ ๐ญ๐ก๐š๐ง ๐ข๐ฆ๐ฉ๐ฅ๐ข๐œ๐ข๐ญ. ๐Ÿ‘ˆ

๐’๐ข๐ฆ๐ฉ๐ฅ๐ž ๐ข๐ฌ ๐›๐ž๐ญ๐ญ๐ž๐ซ ๐ญ๐ก๐š๐ง ๐œ๐จ๐ฆ๐ฉ๐ฅ๐ž๐ฑ. ๐Ÿ‘ˆ

๐‚๐จ๐ฆ๐ฉ๐ฅ๐ž๐ฑ ๐ข๐ฌ ๐›๐ž๐ญ๐ญ๐ž๐ซ ๐ญ๐ก๐š๐ง ๐œ๐จ๐ฆ๐ฉ๐ฅ๐ข๐œ๐š๐ญ๐ž๐.

๐…๐ฅ๐š๐ญ ๐ข๐ฌ ๐›๐ž๐ญ๐ญ๐ž๐ซ ๐ญ๐ก๐š๐ง ๐ง๐ž๐ฌ๐ญ๐ž๐.

๐’๐ฉ๐š๐ซ๐ฌ๐ž ๐ข๐ฌ ๐›๐ž๐ญ๐ญ๐ž๐ซ ๐ญ๐ก๐š๐ง ๐๐ž๐ง๐ฌ๐ž.

๐‘๐ž๐š๐๐š๐›๐ข๐ฅ๐ข๐ญ๐ฒ ๐œ๐จ๐ฎ๐ง๐ญ๐ฌ. ๐Ÿ‘ˆ

๐’๐ฉ๐ž๐œ๐ข๐š๐ฅ ๐œ๐š๐ฌ๐ž๐ฌ ๐š๐ซ๐ž๐ง'๐ญ ๐ฌ๐ฉ๐ž๐œ๐ข๐š๐ฅ ๐ž๐ง๐จ๐ฎ๐ ๐ก ๐ญ๐จ ๐›๐ซ๐ž๐š๐ค ๐ญ๐ก๐ž ๐ซ๐ฎ๐ฅ๐ž๐ฌ.

๐€๐ฅ๐ญ๐ก๐จ๐ฎ๐ ๐ก ๐ฉ๐ซ๐š๐œ๐ญ๐ข๐œ๐š๐ฅ๐ข๐ญ๐ฒ ๐›๐ž๐š๐ญ๐ฌ ๐ฉ๐ฎ๐ซ๐ข๐ญ๐ฒ.

๐„๐ซ๐ซ๐จ๐ซ๐ฌ ๐ฌ๐ก๐จ๐ฎ๐ฅ๐ ๐ง๐ž๐ฏ๐ž๐ซ ๐ฉ๐š๐ฌ๐ฌ ๐ฌ๐ข๐ฅ๐ž๐ง๐ญ๐ฅ๐ฒ.

๐”๐ง๐ฅ๐ž๐ฌ๐ฌ ๐ž๐ฑ๐ฉ๐ฅ๐ข๐œ๐ข๐ญ๐ฅ๐ฒ ๐ฌ๐ข๐ฅ๐ž๐ง๐œ๐ž๐.

๐ˆ๐ง ๐ญ๐ก๐ž ๐Ÿ๐š๐œ๐ž ๐จ๐Ÿ ๐š๐ฆ๐›๐ข๐ ๐ฎ๐ข๐ญ๐ฒ, ๐ซ๐ž๐Ÿ๐ฎ๐ฌ๐ž ๐ญ๐ก๐ž ๐ญ๐ž๐ฆ๐ฉ๐ญ๐š๐ญ๐ข๐จ๐ง ๐ญ๐จ ๐ ๐ฎ๐ž๐ฌ๐ฌ.

๐“๐ก๐ž๐ซ๐ž ๐ฌ๐ก๐จ๐ฎ๐ฅ๐ ๐›๐ž ๐จ๐ง๐ž-- ๐š๐ง๐ ๐ฉ๐ซ๐ž๐Ÿ๐ž๐ซ๐š๐›๐ฅ๐ฒ ๐จ๐ง๐ฅ๐ฒ ๐จ๐ง๐ž --๐จ๐›๐ฏ๐ข๐จ๐ฎ๐ฌ ๐ฐ๐š๐ฒ ๐ญ๐จ ๐๐จ ๐ข๐ญ. ๐Ÿ‘ˆ

๐€๐ฅ๐ญ๐ก๐จ๐ฎ๐ ๐ก ๐ญ๐ก๐š๐ญ ๐ฐ๐š๐ฒ ๐ฆ๐š๐ฒ ๐ง๐จ๐ญ ๐›๐ž ๐จ๐›๐ฏ๐ข๐จ๐ฎ๐ฌ ๐š๐ญ ๐Ÿ๐ข๐ซ๐ฌ๐ญ ๐ฎ๐ง๐ฅ๐ž๐ฌ๐ฌ ๐ฒ๐จ๐ฎ'๐ซ๐ž ๐ƒ๐ฎ๐ญ๐œ๐ก.

๐๐จ๐ฐ ๐ข๐ฌ ๐›๐ž๐ญ๐ญ๐ž๐ซ ๐ญ๐ก๐š๐ง ๐ง๐ž๐ฏ๐ž๐ซ.

๐€๐ฅ๐ญ๐ก๐จ๐ฎ๐ ๐ก ๐ง๐ž๐ฏ๐ž๐ซ ๐ข๐ฌ ๐จ๐Ÿ๐ญ๐ž๐ง ๐›๐ž๐ญ๐ญ๐ž๐ซ ๐ญ๐ก๐š๐ง ๐ซ๐ข๐ ๐ก๐ญ ๐ง๐จ๐ฐ.

๐ˆ๐Ÿ ๐ญ๐ก๐ž ๐ข๐ฆ๐ฉ๐ฅ๐ž๐ฆ๐ž๐ง๐ญ๐š๐ญ๐ข๐จ๐ง ๐ข๐ฌ ๐ก๐š๐ซ๐ ๐ญ๐จ ๐ž๐ฑ๐ฉ๐ฅ๐š๐ข๐ง, ๐ข๐ญ'๐ฌ ๐š ๐›๐š๐ ๐ข๐๐ž๐š. ๐Ÿ‘ˆ

๐ˆ๐Ÿ ๐ญ๐ก๐ž ๐ข๐ฆ๐ฉ๐ฅ๐ž๐ฆ๐ž๐ง๐ญ๐š๐ญ๐ข๐จ๐ง ๐ข๐ฌ ๐ž๐š๐ฌ๐ฒ ๐ญ๐จ ๐ž๐ฑ๐ฉ๐ฅ๐š๐ข๐ง, ๐ข๐ญ ๐ฆ๐š๐ฒ ๐›๐ž ๐š ๐ ๐จ๐จ๐ ๐ข๐๐ž๐š.

๐๐š๐ฆ๐ž๐ฌ๐ฉ๐š๐œ๐ž๐ฌ ๐š๐ซ๐ž ๐จ๐ง๐ž ๐ก๐จ๐ง๐ค๐ข๐ง๐  ๐ ๐ซ๐ž๐š๐ญ ๐ข๐๐ž๐š โ€“ ๐ฅ๐ž๐ญ'๐ฌ ๐๐จ ๐ฆ๐จ๐ซ๐ž ๐จ๐Ÿ ๐ญ๐ก๐จ๐ฌ๐ž! ๐Ÿ‘ˆ

AWS GenAI LIVE image

Real challenges. Real solutions. Real talk.

From technical discussions to philosophical debates, AWS and AWS Partners examine the impact and evolution of gen AI.

Learn more

Top comments (0)

AWS Security LIVE! Stream

Streaming live from AWS re:Inforce

Tune into Security LIVE! at re:Inforce for expert takes on modern security challenges.

Learn More