Review this EK9 class for naming quality. Are the names descriptive enough?

← Code Quality · Ref: Q1046

Review findings:

GOOD NAMING:

- Class name 'OrderProcessor' describes what it does
- Method 'calculateTotal' clearly states its purpose
- Field 'customerName' is descriptive

COULD BE IMPROVED:

- 'items' is acceptable but 'orderItems' would be more specific in this context
- 'process()' is vague — what does processing mean? Consider 'validateAndSubmit()' or 'fulfil()'
- Parameter 'disc' should be 'discountPercentage' — abbreviations lose meaning over time

EK9 NAMING PRINCIPLES:

- Types use PascalCase, variables use camelCase
- Names should describe purpose, not type (orderCount not intCount)
- The compiler bans generic names like temp, data, flag, value
- Methods should describe the action: calculateTotal not doCalc

Example

defines module qa.codequality.reviewnaming

  defines class

    OrderProcessor
      customerName as String: String()
      orderItems as List of Float: List() of Float

      OrderProcessor()
        ->
          customerName as String
          orderItems as List of Float
        this.customerName :=: customerName
        this.orderItems :=: orderItems

      calculateTotal() as pure
        <- rtn as Float: 0.0

        for orderItem in orderItems
          rtn := rtn + orderItem

      default operator

  defines program

    ReviewNamingDemo()
      stdout <- Stdout()

      orders <- [29.99, 15.50, 42.00]
      processor <- OrderProcessor("Alice", orders)
      stdout.println(`Total: ${processor.calculateTotal()}`)

Common mistakes

E11031 — EK9 bans non-descriptive variable names like 'data' at compile time — use a name that describes what the value represents. See ek9 -h E11031 for details.

Incorrect:

      data <- [29.99, 15.50, 42.00]
      processor <- OrderProcessor("Alice", data)

Correct:

      orders <- [29.99, 15.50, 42.00]
      processor <- OrderProcessor("Alice", orders)
Other ways to ask this
  • Assess the naming in this EK9 code
  • Is this class well-named by EK9 standards?
  • What naming improvements would you suggest for this code?

Coming from another language?

EK9 enforces naming quality at compile time. Generic names cause compile errors, not just style warnings.

Keywords: quality, review, assess, naming, descriptive