Vanya Agnesandra

Naming Things


Related to Learning Things.

There are only two hard things in Computer Science: cache invalidation and naming things.

I’ve never had to deal with cache invalidation. However, I can vouch for the difficulty of naming things, after seeing how much my organization seems to struggle with it.

Here is what I know:

Use a scheme

I do not know all of my passwords, but I can produce them as required. I remember a single scheme. I simultaneously have zero passwords and hundreds. I only remember one, and yet I remember all of them.

One of the major benefits here is being able to predict names. “What did we name the private load balancer in front of the caches for client 38? Probably lb_38_cache_private”. Searching for the thing is now much easier.

Names should be as short as reasonable, and no shorter

Self-explanatory.

Start generic, then narrow down

The web is famously “backwards”. giggle.com “should have been” com.giggle, ala Java classes and usenet newsgroups.

Disambiguate with further specifiers

If there are two of something, extend their names with what differentiates them.

Take porchlight_left and porchlight_right, for example.

Use ISO 8601

Use it.

DO NOT prefix folder contents

This makes me angry:

Data Sources/
    - Data Source: Cisco.pdf
    - Data Source: Juniper.pdf

What is the point? Don’t do that.