При написании кода хочется называть классы, методы и переменные максимально кратко, но в то же время понятно. Часто называю классы так: ImageHandler, TextHandler, TagsHandler и т.д., и когда классов становится больше, то по неймингу уже непонятно что они делают.
Так как самые широкие возможности ООП, пожалуй, в Java, решил посмотреть как там. А там очень весело с неймингом, пример из Spring:
- SimpleBeanFactoryAwareAspectInstanceFactory
- AbstractInterceptorDrivenBeanDefinitionDecorator
- AbstractInterruptibleBatchPreparedStatementSetter
- SimpleRemoteStatelessSessionProxyFactoryBean
- TransactionAwarePersistenceManagerFactoryProxy
Есть даже сервис шутошный:
https://projects.haykranen.nl/java/
В Symfony тоже есть подобное: \Symfony\Component\Form\Extension\Core\DataTransformer\DateTimeToLocalizedStringTransformer
Я не смог бы найти более короткого варианта названия чтобы не менее ёмко была описана суть, чем в этом: "DateTimeToLocalizedStringTransformer".
Вопросы:
How much is too much?
В каком случае лучше использовать короткий нейминг, в каком длинный? Есть ли зависимость между размером проекта и длиной имён?
Может есть какой-то сервис/рейтинг популярных слов (прилагательных, существительных) для нейминга, чтобы пополнить словарный запас?