Я решил большинство проблем с именами классов
от u/ethangar в ProgrammerHumor

Тим Оттингер, автор этой главы, простыми словами перечисляет для нас правила правил чистого именования с соответствующими примерами. Я пытаюсь обобщить его мудрость еще более короткими запоминающимися терминами, чтобы во время разработки я мог думать с ходу.

Используйте имена, раскрывающие намерения

Автор подчеркивает важность имен, раскрывающих намерение. Ниже приведен пример, который приводит автор.

// Bad
int d; // elapsed time ind days



// Good
int elapseTimeInDays;

С моей точки зрения,

«Если вам нужно комментировать, вам нужно больше контента».

Когда код становится более сложным, мы видим истинное влияние имен, раскрывающих намерения. Автор доходит до создания простого класса, чтобы улучшить именование в своем коде.

// Bad
public List<int []> getValidRows() {
  List<int[]> validRows= new ArrayList<int[]>();
  for (int[] row : sudokuBoard)
    if (row[STATUS_VALUE] == VALID)
      validRows.add(row);
  return validRows;
}

// Good
public List<Cell> getValidRows() {
  List<Cell> validRows= new ArrayList<Cell>();
  for (Row row: gameBoard)
    if (row.isValid())
      validRows.add(cell);
  return validRows;
}

С моей точки зрения,

«Если вам нужно хорошо подумать, чтобы понять свое намерение, лучше подумайте над переименованием»

Делайте значимые различия

Автор в этом подразделе делает акцент на бессмысленных различиях. Например,

class Product {}

class ProductInfo {}

class ProductData {}

// there are no meaningful distinctions.

Обычно программисты делают эту ошибку, чтобы просто удовлетворить компилятор. Просто введите модные словечки, такие как «информация», «то», «а», «данные», «менеджер», «драйвер» в имя переменной, и компилятор скажет: «Ну, я готов». Автор называет эти слова «словами-шумами», словами, которые не несут смысла и являются просто шумом для осмысленных названий.

В моих условиях

«Слово-шум раздражает читателей»

Некоторые практические правила

Избегайте ментального картирования

«Если вам нужно сопоставить мысленно, переименуйте фундаментально»

Имена классов — это существительные, методы и глаголы.

«Класс — это существительные, методы — это глаголы»

Выберите одно слово для каждой концепции

«Относись к слову, как к своей девушке, оставайся ей верным».

Добавить контекст

«addrFirstName лучше, чем firstName. Вы должны усердно работать, но не должны усердно работать! Контекст имеет значение».

PS. подержите мое пиво, мистер Стоуструп, Мастер Чистого Кода уже в пути.