Статьи

Открытый Майк: Формулировка

Вы updateDatabaseFields() или udDBFields() ? Это Open Mike, серия дискуссионных сообщений, чтобы бросить кота среди голубей. Эти сообщения все о вас — мы хотим услышать ваши мнения, идеи и мысли. Мы говорили о префиксах раньше; Теперь давайте поговорим о реальных словах, которые вы используете для именования объектов AS3.


Вы произносите полные слова имен ваших переменных и функций или используете какие-то сокращения?

checkAllOptionsHaveBeenEntered() против chkOptsEntd()

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

numberOfTrophies против numTrophies против numTrophies


Booleans: так как они всегда либо истинны, либо ложны, мне нравится произносить их так, чтобы на них всегда можно было ответить «да» или «нет».

Примеры: hero.hasTheSword , hero.hasTheSword

Соглашения о кодировании UrbanSquall идут дальше и настаивают на том, что логические имена всегда начинаются с is , has или can .

А что насчет тебя?


Функции и методы обычно предполагают выполнение чего-либо, поэтому обычно имеет смысл давать им имена, которые являются глаголами (или парами глагол-субъект).

Примеры: refresh() , undo() , restartGame() , checkFormDataIsComplete()

Соблюдаете ли вы это как соглашение, или есть случаи, когда вы не можете использовать глагол в имени вашей функции?

Когда функция требует аргументов, вы пытаетесь прояснить из названия, какие аргументы вы ожидаете?

Например: pingPongBall.move(x, y) против pingPongBall.moveTo(x, y)

Иногда функция требует совершенно разных аргументов, что может привести к путанице. Например, предположим, у нас есть объект gun который стреляет данной bullet в заданную target . Есть несколько вариантов того, что мы могли бы назвать этот метод, в том числе:

1
2
3
4
gun.fire(bullet, target);
gun.fireAt(target, bullet);
gun.fireAtTarget(target, bullet);
gun.fireBulletAtTarget(bullet, target);

Что лучше?