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

  • @fubo
    link
    English
    11 year ago

    Typing, yay.

    But command-line flags are written as strings. And that’s one place this problem crops up: in the stringly-typed interface between your program and its operators, courtesy of argv and your favorite flags library.

    Consider:

    crapserver --cache-size=1024

    Did I just give my crapserver a cache of 1024 B, or kiB, or MiB? Or maybe I told it to reserve space for 1024 cache entries? (How big is a cache entry?)

    It’s pretty easy to just call the flag --cache-size-bytes or --cache-max-entries so the operator can easily see what’s going on.