Страницы

Поиск по вопросам

суббота, 30 ноября 2019 г.

Как именовать методы/функции?

#c_sharp #net #code_style


using DAO.Operations;
namespace BBL.Operations
{

    public class OperationService
    {            
        public Operation Get(int id) {}
        public IEnumerable GetAll() {}
        public void Add(Operation operation) {}

        //или

        public Operation GetOperation(int id) {}
        public IEnumerable GetOperations() {}            
        public void AddOperation(Operation operation) {}
    }    
}


Как принято называть методы/функции? Какие рекомендации существуют на сей счет?

UPD:
В приведенном мной примере я указал противоречивые конструкции: короткая форма Get()
против более полной GetOperations() мне хочется понять в каких случаях правильней использовать
тот или иной способ, какие плюсы/минусы меня могут возникнуть позднее.
    


Ответы

Ответ 1



Я бы выбрал первый вариант. Потому что второй вариант предполагает некоторое дублирование и лишнюю писанину: var operationService = new OperationService(); var all = operationService.GetOperations(); в сравнении с var operationService = new OperationService(); var all = operationService.GetAll(); Если вы правильно называете переменные, то кратких вариантов достаточно.

Ответ 2



Существует Framework Design Guidelines - набор правил для создания библиотек, которые будут расширять .NET Framework и взаимодействовать с ним. В частности там написано, что для методов надо использовать PascalCase public class Object { public virtual string ToString(); } Что касается Get или GetOperation - никакие соглашения о стиле кодирования такого не регламентируют, и выбор зависит исключительно от предпочтений автора кода. В том числе может быть public Operation Get(int id) {} public IEnumerable Get() {} т.к. язык позволяет перегрузку функций.

Ответ 3



Очевидные методы лучше называть проще. Т.е. методы get\set\add\clear - проще так и именовать. Другое дело, если ваш add внутри выбирает по какой то сложно логике что ему делать. Тогда лучше явно писать: AddOperationWhen(?) GetWithoutRights() или GetAsAdmin() или даже иногда лучше GetOperationsAsAdmin()

Ответ 4



Второй лучше. Объясню на примере: Operation NextMove = new Operation(); /* ... Много... много строк кода */ NextMove.Get(n); //or NextMove.GetOperation(n); Конечно среда вам "подставит плечико", но..., лучше ходить ногами, а не на костылях. Исключение, будет тот случай интерфейса, так интерфейс предполагает, наследование его множеством классов. Вообще, если вы что либо можете указать явно - укажите. P.S. Название GetOperations(), я бы заменил на GetOperationsAll()

Комментариев нет:

Отправить комментарий