Должен ли объект события называться глаголом прошедшего времени или существительным? - PullRequest
5 голосов
/ 26 июня 2011

Я читал несколько статей и примеров источников событий.Некоторые из них кажутся мне глаголами, а другие называют существительными, у которых оба могут быть в конце.Что является более правильным?Одним из примеров будет.OrderShippedEvent (или иногда просто OrderShipped) против ShipOrderEvent.Напряженность методов, которые работают с этими типами объектов, также мало чем помогла.Вот несколько примеров, которые я нашел.

process(OrderShippedEvent);

или

apply(ShipOrderEvent);

, в других случаях будут такие обработчики, как

HandleOrderShipped(OrderShippedEvent)

или

HandleShipOrder(ShipOrderEvent)

Я предполагаю, что следуетбыть стандартным способом именования и обработки событий любого типа в любом контексте, хотя меня больше всего интересует сценарий Event Sourcing.

Ответы [ 2 ]

6 голосов
/ 26 июня 2011

Ну, они означают разные вещи:

  • ShipOrderEvent означает, что заказ должен быть отправлен, но у нас нет уверенности, есть ли у него заказ или нетеще не было отправлено.
  • OrderShippedEvent означает, что заказ был точно доставлен.

Они являются смирными для событий FormClosing / FormClosed системы.Класс Windows.Forms.Form в .NET.Поэтому вместо того, чтобы предлагать какое имя использовать, я бы предпочел, чтобы вы подумали, что вы хотите представить своим событием, и назовите его соответствующим образом.

4 голосов
/ 26 июня 2011

Событие обычно определяет что-то произошло или было инициировано и отправляет сообщение после срабатывания .Я доблестно стою, кроме возможности сохранить его с глаголом прошедшего времени в середине.Конечно, в некоторых языках есть конкретные рекомендации по соглашениям об именах - в некоторых есть onEventName, в некоторых используется действие, которое происходит сейчас (Button.Click).Что касается добавления слова «Событие» к имени, я к нему не привык - но, насколько мне известно, существуют соглашения об именах , позволяющие избавиться от магических переменных (где, глядя на них, вы не можете понять, что это за данные или почему они вообще существуют), поэтому то же самое применимо к методам и событиям - таким как метод с именем DoSomething () и событие с именем Thing.Их можно понять, но для этого требуется более предприимчивая душа, которая пойдет и проанализирует код, чтобы правильно поместить переменную / метод / функцию с очень хорошим именем в некоторый понятный человеку поток.

...