Есть ли словарь об общей лексике программирования? - PullRequest
6 голосов
/ 25 апреля 2010

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

Например, если у меня есть класс MyClass, то новый класс можно назвать как MyClassAdapter, MyClassCalculator, MyClassDispatcher, MyClassParser, ...

Это новое имя должно, конечно, представлять поведение класса и в идеале должно совпадать с шаблоном проектирования, в котором он используется (Adapter, Decorator, Factory, ...). Но поскольку мы не злоупотребляем шаблонами проектирования, это не всегда решение:)

Итак, знаете ли вы для словаря или списка общих слов, которые мы можем использовать для представления поведения класса, содержащего краткое описание ожидаемого поведения? Некоторые примеры: репликатор, тень, токен, акцептор, работник, маппер, драйвер, контейнер, сокет, валидатор, оболочка, парсер, верификатор, ...

Вы также можете рассматривать этот список как шпаргалку для метафор, с помощью которой вы сможете лучше понять свою проблемную область.

Ответы [ 2 ]

2 голосов
/ 03 мая 2010

Я бы рекомендовал не использовать шаблоны дизайна в именах. Вы начали с имени MyClass и расширили его до MyClassAdapter, MyClassCalculator, MyClassDispatcher, MyClassParser и т. Д.

Но так как вы знаете, что это классы, и они ваши, почему бы не Адаптер, Калькулятор, Диспетчер, Парсер.

Но Адаптер универсально делает то, что говорит? Калькулятор вычисляет абсолютно что-нибудь или есть конкретная работа?

Хорошими именами могут быть WindowToCommProtocol (назовите то, что он адаптирует), Payroll (расчет - это всего лишь одна задача), UICentral (звучит как диспетчер) и т. Д. Калькуляторы и анализаторы обычно не должны сохранять состояние после выполнения своей работы для меня это больше похоже на функции, а не на классы.

0 голосов
/ 25 апреля 2010

Я думаю, что довольно странно пытаться отразить (или обозначить, или предложить, или подразумевать, или подразумевать) поведение класса от его имени. Конечно, поведение класса определяется его методами?

Я также думаю, что ваш , использующий мой словарь, потребует от вас подписки на мой взгляд на мир. Даже если мы работаем в одной и той же проблемной области (и держу пари, что нет), я не думаю, что вам будет легко это сделать.

Поэтому я предлагаю вам сделать то, что вы почти предлагаете себе: извлечь свой собственный словарь из терминологии проблемной области. Это упражнение поможет вам понять сферу.

Наконец, вместо словаря вам лучше всего найти тезаурус.

...