Все дело в последовательной семантике ;
В заголовке вопроса вы используете получение данных . Это чрезвычайно общий смысл в том смысле, что вам нужно определить, что означает получение семантически значимым однозначным образом. Я предлагаю следующие примеры, чтобы, надеюсь, направить вас на правильный путь, когда вы думаете об именовании вещей.
getBooks()
Когда вы получаете все книги, связанные с объектом, это означает, что критерии для набора уже определены, и откуда они берутся - это скрытая деталь.
findBooks(criteria)
когда вы пытаетесь найти подмножество книг на основе параметров вызова метода, это обычно будет перегружено различными критериями поиска
loadBooks(source)
это когда вы загружаете из внешнего источника, такого как файл или db.
- Я бы не стал использовать fetch / retrieve, потому что они слишком расплывчаты и отождествляются с get, а с терминами не связана однозначная семантика.
Пример: выборка подразумевает, что некоторая сущность должна пойти, получить что-то удаленное и вернуть это. Собаки приносят палку, а получение - это синоним слова « выборка» с добавленной семантикой, что вы, возможно, уже владели этим предметом раньше. get также является синонимом слова " получить", что означает, что вы единолично владеете чем-то, и никто другой не может получить это одновременно.
Семантика чрезвычайно важна:
раздел лингвистики и логики, связанный со значением
Комментарии являются доказательством того, что общие термины, такие как get и fetch , не имеют определенной семантики и по-разному интерпретируются разными людьми. Выберите семантику для термина, задокументируйте, что он должен подразумевать, если семантика не ясна, и согласитесь с ее использованием.
слова с расплывчатым или неоднозначным значением получают разную семантику разными людьми из-за их предубеждений и предубеждений, основанных на их личном мнении, и это никогда не закончится хорошо.
fetch
когда данные время доступа является низким , то есть на одном устройстве, из локальной базы данных, из памяти.load
, или,download
если время доступа больше , из Интернета, внешней БД, из файлаЧестно говоря, вы должны просто решить со своей командой, какое соглашение об именах использовать. Но ради удовольствия, давайте посмотрим, каков будет ваш ход мыслей, чтобы решить любой из них:
Этот метод принадлежит источнику данных, и нам все равно, как он их получает, мы просто хотим получить их из источника данных.
Вы относитесь к своему источнику данных как к ищейке, и его работа - приносить ваши книги. Думаю, ты должен решить сам, сколько он может уместить в рот сразу.
Ваш источник данных - библиотекарь и будет использовать десятичную систему Дьюи для поиска ваших книг.
Эти книги находятся в каком-то «электронном книжном мешке» и должны быть загружены в него. Обязательно вызовите ZipClosed () после загрузки, чтобы не потерять их.
У меня ничего нет.
источник
add
для записи в базу данных, и для записи в Store. Теперь я пытаюсь отделить их друг от друга, и это больно.Ответ - просто придерживайтесь того, что вам удобно, и будьте последовательны.
Если у вас есть веб-сайт barnes and nobles и вы используете GetBooks (), то, если у вас есть другой элемент, например объект Movie, используйте GetMovies (). Так что все, что нравится вам и вашей команде, и будьте последовательны.
источник
В OO (C ++ / Java) я обычно использую getSomething и setSomething, потому что очень часто, если не всегда, я либо получаю частный атрибут из класса, представляющего этот объект данных, либо устанавливаю его - пару геттер / сеттер. В качестве плюса Eclipse генерирует их для вас.
Я обычно использую Load только когда имею в виду файлы - например, «загрузка в память», что обычно подразумевает загрузку в примитивы, структуры (C) или объекты. Я использую отправку / получение для Интернета.
Как было сказано выше, согласованность - это все, включая кросс-разработчиков.
источник
Непонятно, что вы имеете в виду под «получением данных». Из базы данных? Файл? Объем памяти?
Я считаю, что именование методов состоит в том, чтобы устранить любые двусмысленности и, в идеале, необходимость поиска документации. Я считаю, что это нужно делать даже за счет более длинных имен методов. Согласно исследованиям, большинство разработчиков среднего уровня + могут читать несколько слов в верблюжьем регистре. С помощью IDE и автозавершения написание длинных имен методов также не проблема.
Таким образом, когда я вижу «fetchBooks», если контекст не очень ясен (например, класс с именем BookFetcherFromDatabase), он неоднозначен. Взять откуда? В чем разница между fetch и find? Вы также рискуете столкнуться с проблемой того, что некоторые разработчики будут связывать семантику с определенными ключевыми словами. Например, выборка для базы данных (или памяти) по сравнению с загрузкой (из файла) или загрузкой (из Интернета).
Я бы предпочел увидеть что-то вроде «fetchBooksFromDatabase», «loadBookFromFile», «findBooksInCollection» и т.д. Каждый, читающий это, сразу поймет, что вы пытаетесь сделать.
источник