Aviso: Esta é uma questão / discussão não muito séria que estou postando ... mas estou disposto a apostar que a maioria dos desenvolvedores ponderou sobre esse "problema" ...
Sempre quis obter outras opiniões sobre as convenções de nomenclatura para métodos que buscavam dados de algum lugar e os retornavam ...
A maioria dos nomes de métodos são um tanto simples e óbvios ... SaveEmployee (), DeleteOrder (), UploadDocument (). É claro que com as classes você provavelmente usaria a forma abreviada ... Salvar (), Excluir (), Carregar () respectivamente.
No entanto, sempre lutei com a ação inicial ... como obter os dados. Parece que para cada projeto eu acabo pulando entre diferentes convenções de nomenclatura porque nunca fico muito feliz com o último que usei. Pelo que eu posso dizer, essas são as possibilidades ->
- GetBooks ()
- FetchBooks ()
- RetrieveBooks ()
- FindBooks ()
- LoadBooks ()
Qual é o seu pensamento?
fonte
fetch
quando o tempo de acesso aos dados é baixo , ou seja, no mesmo dispositivo, do banco de dados local, da memória.load
, oudownload
se o tempo de acesso for maior , da Internet, banco de dados externo, do arquivoHonestamente, você deve decidir com sua equipe qual convenção de nomenclatura usar. Mas, para se divertir, vamos ver qual seria sua linha de pensamento ao decidir sobre qualquer um destes:
Este método pertence a uma fonte de dados, e não nos importamos como ele os obtém, queremos apenas obtê-los da fonte de dados.
Você trata sua fonte de dados como um cão de caça, e é o trabalho dele buscar seus livros. Eu acho que você deve decidir por si mesmo quantos ele pode caber na boca de uma vez.
Sua fonte de dados é um bibliotecário e usará o sistema Decimal de Dewey para localizar seus livros.
Esses livros pertencem a algum tipo de "bolsa de livros eletrônica" e devem ser carregados dentro dela. Certifique-se de chamar ZipClosed () após o carregamento para evitar perdê-los.
Eu não tenho nada.
fonte
add
para gravar em um banco de dados e gravar na Loja. Agora estou tentando separá-los, e é uma dor.A resposta é apenas manter o que você se sente confortável e ser consistente.
Se você tiver um site barnes and nobles e usar GetBooks (), se tiver outro item, como uma entidade Movie, use GetMovies (). Portanto, o que você e sua equipe quiserem e sejam consistentes.
fonte
Em OO (C ++ / Java), tendo a usar getSomething e setSomething porque muitas vezes, senão sempre, estou obtendo um atributo privado da classe que representa esse objeto de dados ou configurando-o - o par getter / setter. Além disso, o Eclipse os gera para você.
Eu tendo a usar Carregar apenas quando me refiro a arquivos - como em "carregar na memória" e isso geralmente implica carregar em primitivos, structs (C) ou objetos. Eu uso enviar / receber para web.
Como dito acima, consistência é tudo e isso inclui desenvolvedores cruzados.
fonte
Não está claro o que você quer dizer com "obter os dados". Do banco de dados? Um arquivo? Memória?
Minha opinião sobre a nomenclatura de métodos é que sua função é eliminar quaisquer ambigüidades e, idealmente, a necessidade de consultar a documentação. Acredito que isso deva ser feito mesmo às custas de nomes de métodos mais longos. De acordo com estudos, a maioria dos desenvolvedores intermediários + são capazes de ler várias palavras em caso de camelo. Com IDE e completações automáticas, escrever nomes de métodos longos também não é um problema.
Portanto, quando vejo "fetchBooks", a menos que o contexto seja muito claro (por exemplo, uma classe chamada BookFetcherFromDatabase), é ambíguo. Buscar de onde? Qual é a diferença entre fetch e find? Você também está arriscando o problema de alguns desenvolvedores associarem a semântica a certas palavras-chave. Por exemplo, buscar banco de dados (ou memória) vs. carregar (do arquivo) ou baixar (da web).
Eu prefiro ver algo como "fetchBooksFromDatabase", "loadBookFromFile", "findBooksInCollection", etc. É menos aparente, mas quando você ultrapassa o comprimento, fica claro. Todo mundo lendo isso entenderia imediatamente o que você está tentando fazer.
fonte