Правила наименования типов

В продуктах Юниверс интерфейсные методы сервисов чаще всего оформлены принимающими объекты, схожие по замыслу с http://www.corej2eepatterns.com/ContextObject.htm и известные как Request Context.

Они имеют изменяемую часть (stack data) и неизменяемую часть (user input).

Возвращаемые типы таких методов должны оформляться как композитные DTO. Для них существует обязательная схема наименования как [Type/Subsystem] / [Action] / Context для входных параметров и [Type/Subsystem] / [Action] / Result для результата. Пример:

/**
* Loads draft object(s) by supplied criteria.
* @param ctx the context
* @return draft object
*/
DraftGetResult get(DraftGetContext ctx);
/**
* Initiates a draft creation or update for a subject.
* @param ctx the context
* @return result
*/
DraftUpsertResult upsert(DraftUpsertContext ctx);
/**
* Removes a draft object and all its descendants.
* @param ctx the context
* @return true, is successful, false otherwise
*/
DraftRemoveResult remove(DraftRemoveContext ctx);
/**
* Triggers publication process for a draft object.
* @param ctx the context
* @return result
*/
DraftPublishResult publish(DraftPublishContext ctx);