Whenever you store a value that has a unit in a variable, config option or CLI switch, include the unit in the name. So:

  • maxRequestSize => maxRequestSizeBytes
  • elapsedTime => elapsedSeconds
  • cacheSize => cacheSizeMB
  • chargingTime => chargingTimeHours
  • fileSizeLimit => fileSizeLimitGB
  • temperatureThreshold => temperatureThresholdCelsius
  • diskSpace => diskSpaceTerabytes
  • flightAltitude => flightAltitudeFeet
  • monitorRefreshRate => monitorRefreshRateHz
  • serverResponseTimeout => serverResponseTimeoutMs
  • connectionSpeed => connectionSpeedMbps

EDIT: I know it’s better to use types to represent units. Please don’t write yet another comment about it. You can find my response to that point here: https://programming.dev/comment/219329

  • @vtr@programming.dev
    link
    fedilink
    English
    121 year ago

    That seems akin to commenting. The problem with this approach is that text is not code. It’s very easy to forget to change text. In that case it becomes the worst of both worlds, you have a variable name that actually misleads you.

    Much safer than this is to encode this kind of information into the code itself in such a way the program won’t compile of the types are incorrect.

    • 𝕊𝕚𝕤𝕪𝕡𝕙𝕖𝕒𝕟OP
      link
      fedilink
      English
      81 year ago

      I understand what you mean, and I even agree with it, but just to be a little pedantic, variable names are code, or at least they are more code than comments or docs.

      But yes, encoding units into the type system is a much better solution. It doesn’t work however for config options, environment variables or CLI switches.