- #122
Proper Naming is Creating Appropriate Abstraction
Programming - Naming Things Is Easy - Nic Barker
Software development is actually a process where developers communicate in two languages: natural language (usually English) and programming languages.
The purpose of most software is not just execution but is written for long-term maintenance, which is why “how to convey intentions correctly” becomes particularly important. This is also why we are taught various naming conventions and learn how to describe problems and solutions through appropriate abstractions.
However, the expressiveness of natural language itself is limited. When we try to convey technical concepts in words, we often face communication bottlenecks. To reduce complexity, we need to establish abstractions; however, excessive abstraction can create more confusion.
A few points to consider:
- Before adding an additional layer of abstraction, evaluate its cost and benefit to the team to avoid unnecessary abstraction.
- Sometimes, natural language itself is not precise enough as a medium for communication.
Regarding the topic of “naming,” I recently mentioned it in another article: Function Composition and Pointfree Coding Style and was surprised by the different ways to solve problems from various dimensions.
- #121
- #120
- #119
- #118
- #117
- #116
- #115
- #114
- #113
- #112
- #111
- #110
- #109
- #108
- #107
- #106
- #105
- #104
- #103
- #102
- #101
- #100
- #99
- #98
- #97
- #96
- #95
- #94
- #93
- #92
- #91
- #90
- #89
- #88
- #87
- #86
- #85
- #84
- #83
- #82
- #81
- #80
- #79
- #78
- #77
- #76
- #75
- #74
- #73
- #72
- #71
- #70
- #69
- #68
- #67
- #66
- #65
- #64
- #63
- #62
- #61
- #60
- #59
- #58
- #57
- #56
- #55
- #54
- #53
- #52
- #51
- #50
- #49
- #48
- #47
- #46
- #45
- #44
- #43
- #42
- #41
- #40
- #39
- #38
- #37
- #36
- #35
- #34
- #33
- #32
- #31
- #30
- #29
- #28
- #27
- #26
- #25
- #24
- #23
- #22
- #21
- #20
- #19
- #18
- #17
- #16
- #15
- #14
- #13
- #12
- #11
- #10
- #9
- #8
- #7
- #6
- #5
- #4
- #3
- #2
- #1