Вы когда-нибудь видели IEngine в дикой природе?

TL;DR: не добавляйте к классам префиксы и суффиксы

Проблемы

  • Читабельность
  • Ошибка биекция
  • Реализационные имена

Решения

  1. Удалить префиксы и суффиксы
  2. Назовите свои объекты в честь того, что они делают

Контекст

Некоторые языки имеют культурные соглашения, связанные с типами данных, абстрактными классами или интерфейсами.

Эти имена нагружают наши модели когнитивными переводами, которым трудно следовать.

Мы должны ПОЦЕЛУЙ.

Образец кода

Неправильный

public interface IEngine
{
    void Start();
}
public class ACar 
{
}
public class ImplCar 
{
}
public class CarImpl
{
}

Верно

public interface Engine
{
    void Start();
}
public class Vehicle 
{
}
public class Car 
{
}

Обнаружение

[Х] Автоматически

Если у нас есть тезаурус, мы можем указать на неудобные имена.

Исключения

В C# принято ставить «I» в имени интерфейса, потому что без него нельзя сказать, интерфейс это или класс.

Это запах языка.

Теги

  • Именование

Заключение

Используйте настоящие имена для своих моделей.

связи



Больше информации

Кредиты

Фото Тима Моссхолдера на Unsplash

Некоторые люди, сталкиваясь с проблемой, думают: "Я знаю, я буду использовать регулярные выражения". Теперь у них две проблемы.

Джейми Завински



Эта статья является частью серии CodeSmell.