From fcc6883422e511acc2e4007d62536ec481b32991 Mon Sep 17 00:00:00 2001 From: Klaus Breyer Date: Tue, 9 Jul 2024 15:19:29 +0200 Subject: [PATCH] self-documenting code --- .../index.md | 31 ++++++++++++++++++ .../self-documenting-linkedin.png | Bin 0 -> 124009 bytes .../self-documenting-post.png | Bin 0 -> 119175 bytes 3 files changed, 31 insertions(+) create mode 100644 content/posts/2024-self-documenting-code-is-bullshit/index.md create mode 100644 content/posts/2024-self-documenting-code-is-bullshit/self-documenting-linkedin.png create mode 100644 content/posts/2024-self-documenting-code-is-bullshit/self-documenting-post.png diff --git a/content/posts/2024-self-documenting-code-is-bullshit/index.md b/content/posts/2024-self-documenting-code-is-bullshit/index.md new file mode 100644 index 0000000..c5af345 --- /dev/null +++ b/content/posts/2024-self-documenting-code-is-bullshit/index.md @@ -0,0 +1,31 @@ +--- +title: "Self Documenting Code Is Bullshit" +categories: ["Code"] +date: 2024-07-09 +image: "self-documenting-linkedin.png" +social: "https://www.linkedin.com/feed/update/urn:li:activity:7216431564308541440/" +--- + +Hopefully, every development team reaches a point where they discuss their guidelines and policies. Part of this discussion, hopefully, includes expectations around documentation. + +So far, so good. Unfortunately, many teams (and I have made this mistake in the past as well) take the easy route and claim they don't need extensive documentation if they write self-documenting code. Besides the fact that this is just an easy way to avoid a discussion (because everyone interprets this differently), it is just plain wrong. Let's debunk this myth. + +## I Call Bullshit + +If users have to read a method's code before they can use it, that's not an abstraction! Good abstractions must be documented outside the actual code, or they do not abstract anything at all. + +![](self-documenting-post.png) + +## Implementation Documentation for Precision + +Documentation should be as close as possible to the code for the nitty-gritty details. At the bottom level, this includes variable units, boundary conditions, null value implications, resource management, and invariants. These specifics are essential to ensure a precise understanding and correct code usage. + +## Interface Documentation for Abstractions + +Striking the right balance with documentation is crucial. Interfaces should not be cluttered with implementation details. Instead, higher-level comments should enhance intuition by explaining concepts and the rationale behind the design. + +## Central Documentation for Cross-Module Design Decisions + +Ultimately, more than code alone will be required for documenting cross-module design decisions. I prefer central documentation referencing all relevant code sections, such as "See XYZ" annotations. This centralized approach ensures that anyone can understand the broader design context, which can only be captured partially through code. + +True clarity comes from well-placed comments and good documentation at the right level. diff --git a/content/posts/2024-self-documenting-code-is-bullshit/self-documenting-linkedin.png b/content/posts/2024-self-documenting-code-is-bullshit/self-documenting-linkedin.png new file mode 100644 index 0000000000000000000000000000000000000000..de9694b1b57ce480fbbd8d4618143aeca093a5df GIT binary patch literal 124009 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