(
home
)
⚛️
names are for human display/discovery, computer links should be by hash or UUID
type:
atomic note
Common systems like
Unix filesystem
s, the
🌐
World Wide Web
, and textual codebases link to objects by name instead of a non-human meaningful identifier
This means renaming things results in either:
a) A huge diff, perhaps across multiple systems, where every linking object changes as well
b) Broken links
The solution is to use a non-human meaningful ID for the link instead of a name
This allows the name to be stored in one place, following the
single source of truth
principle
It can be changed as many times as the user likes without breaking any links
This a ridiculously well proven practice
relational databases, key-value stores, webapps etc.
imagine if every time you renamed a
GitHub issue
you had to update every reference to it
For the argument for hashes or UUIDs see this post
The web of names, hashes and UUIDs
author:
👤
Joe Armstrong
released: 2015
url:
joearms.github.io/published/2015-03-12-The_web_of_names.html
This strategy does introduce new questions
Should the display name in a particular document change if the name of the object being linked to changes?
For some uses this is the desired behavior, eg probably for source code
But for other cases it's definitely the wrong thing
For example, consider a document with a excerpt in it, where the document creator has hyperlinked some of the words in the excerpt
Need a way to specify that a particular display name in a document is "frozen" and shouldn't change even if the target name changes
note to self
: could discuss redirect systems as another option besides diffs and broken links
Backlinks
📝
double-WIP
⚛️
domain-ID format
⚛️
don't make me name things