2015-02-21 2 views
1

У меня есть класс, который имеет целочисленное свойство difficulty. Значение сохраняется в виде числа между 1 и 3 и отображается как "Beginner", "Intermediate", или "Expert".Соглашение об именах для удобочитаемой версии переменной

У меня есть метод, который преобразует целое число в одно из этих более понятных для человека меток, но у меня возникают проблемы с хорошим именем для метода. Я префикс hr_ на имя переменной, например hr_difficulty, но мне интересно, есть ли лучшее соглашение.

+0

Я доволен и удивлен, что никто еще не предложил что-то вроде: 'map_1_to_beginner_2_to_intermediate_and_3_to_expert'. –

+0

@CarySwoveland Я новичок в Ruby. Что это будет сделано? – michaelsnowden

+1

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

ответ

1

Чтобы хорошо сочетаться с другими частями кода, в частности, как это выглядело бы, если бы это был вызов метода, я использую аффикс, а не префикс, например, difficulty_s. Это означает, что у вас был difficulty, а затем сделал что-то, что соответствует части _s. hr или «человеческие читаемые» звуки слишком специфичны для меня. Я думаю, s для «строки» достаточно.

0

Я думаю, что difficulty_in_words будет лучше, поскольку это, естественно, затрудняет слова.

1

Я хотел бы создать общий метод с этой подписью:

human_option_name(:difficulty)[difficulty] 

Потому что вам может понадобиться список всех defficulties в любом случае (в некоторых вариантах, например), и вы, возможно, потребуется включить переводы позже. Это именование является аналогом уже существующего метода human_attribute_name

Смежные вопросы