Вы когда-нибудь видели IEngine в дикой природе?
TL;DR: не добавляйте к классам префиксы и суффиксы
Проблемы
- Читабельность
- Ошибка биекция
- Реализационные имена
Решения
- Удалить префиксы и суффиксы
- Назовите свои объекты в честь того, что они делают
Контекст
Некоторые языки имеют культурные соглашения, связанные с типами данных, абстрактными классами или интерфейсами.
Эти имена нагружают наши модели когнитивными переводами, которым трудно следовать.
Мы должны ПОЦЕЛУЙ.
Образец кода
Неправильный
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.