una tecnicas recopilacion recoleccion para metodos investigación informacion estadisticos estadistica ejemplos datos cuantitativos naming-conventions methods

naming-conventions - tecnicas - recopilacion de datos en estadistica



Nombres de métodos para obtener datos (5)

Todo se trata de semantics consistente;

En el título de su pregunta, usted usa los datos . Esto es extremadamente general en el sentido de que necesita definir qué significa semánticamente de manera significativamente no ambigua. Ofrezco los siguientes ejemplos para, afortunadamente, ponerte en el camino correcto cuando piensas en nombrar cosas.

  1. getBooks() es cuando obtiene todos los libros asociados con un objeto, implica que los criterios para el conjunto ya están definidos y de dónde provienen es un detalle oculto.
  2. findBooks(criteria) es cuando están tratando de encontrar un subconjunto de los libros basados ​​en parámetros para la llamada al método, esto generalmente estará sobrecargado con diferentes criterios de búsqueda
  3. loadBooks(source) es cuando está cargando desde una fuente externa, como un archivo o db.
  4. No utilizaría fetch / retrieve porque son demasiado vagos y se combinan con get y no hay una semántica no ambigua asociada con los términos.

Ejemplo: fetch implica que alguna entidad necesita ir y obtener algo que es remoto y traerlo de regreso. Los perros buscan un palo, y retrieve es un sinónimo de buscar con la semántica añadida de que también puede haber tenido posesión de la cosa anterior. retrieve es un sinónimo de obtain también, lo que implica que tienes la posesión exclusiva de algo y que nadie más puede adquirirlo simultáneamente.

Semantics es extremadamente importante:

la rama de la lingüística y la lógica relacionada con el significado

Los comentarios son una prueba de que términos genéricos como get y fetch no tienen semántica específica y son interpretados de manera diferente por diferentes personas. Elija una semántica para un término, documente lo que se pretende implicar si la semántica no es clara y sea coherente con su uso.

las palabras con significados vagos o ambiguos reciben diferentes semánticas por parte de diferentes personas debido a sus prejuicios e ideas preconcebidas basadas en sus opiniones personales y que nunca terminarán bien.

Advertencia: Esta es una pregunta / discusión no muy seria que estoy publicando ... pero estoy dispuesto a apostar que la mayoría de los desarrolladores han reflexionado sobre este "problema" ...

Siempre quise obtener otras opiniones sobre las convenciones de nombres para los métodos que obtuvieron datos de algún lugar y los devolvieron ...

La mayoría de los nombres de métodos son algo simples y obvios ... SaveEmployee (), DeleteOrder (), UploadDocument (). Por supuesto, con las clases, lo más probable es que utilice la forma abreviada ... Guardar (), Eliminar (), Cargar (), respectivamente.

Sin embargo, siempre he tenido problemas con la acción inicial ... cómo obtener los datos. Parece que por cada proyecto termino saltando entre diferentes convenciones de nombres porque nunca estoy del todo contento con el último que utilicé. Por lo que puedo decir estas son las posibilidades ->

  • GetBooks ()
  • FetchBooks ()
  • Recuperar libros ()
  • FindBooks ()
  • LoadBooks ()

¿Cuál es tu pensamiento?


En OO (C ++ / Java) tiendo a usar getSomething y setSomething porque muchas veces, si no siempre, obtengo un atributo privado de la clase que representa ese objeto de datos o lo configuro: el par getter / setter. Como una ventaja, Eclipse los genera para usted.

Tiendo a usar Load solo cuando me refiero a archivos, como en "cargar en memoria" y eso generalmente implica cargar en primitivas, estructuras (C) u objetos. Yo uso enviar / recibir para la web.

Como se dijo anteriormente, la consistencia es todo y eso incluye desarrolladores cruzados.


Honestamente, deberías decidir con tu equipo qué convención de nombres usar. Pero por diversión, veamos cuál sería tu línea de pensamiento para decidir sobre alguno de estos:

  • GetBooks ()

Este método pertenece a una fuente de datos, y no nos importa cómo se obtienen, solo queremos obtenerlos de la fuente de datos.

  • FetchBooks ()

Tratas a tu fuente de datos como un sabueso, y es su trabajo buscar tus libros. Supongo que deberías decidir por tu cuenta cuántos puede caber en su boca a la vez.

  • FindBooks ()

Su fuente de datos es una bibliotecaria y usará el sistema Dewey Decimal para buscar sus libros.

  • LoadBooks ()

Estos libros pertenecen a una especie de "bolsa de libros electrónicos" y deben cargarse en ellos. Asegúrese de llamar a ZipClosed () después de la carga para evitar perderlos.

  • Recuperar libros ()

No tengo nada.


La respuesta es simplemente apegarse a lo que te hace sentir cómodo y ser consistente.

Si tiene un sitio web Barnes and Nobles y usa GetBooks (), entonces si tiene otro elemento, como una entidad de Película, use GetMovies (). Entonces, sea lo que sea lo que le guste a usted y a su equipo, sea constante.


No está claro lo que quiere decir con "obtener los datos". De la base de datos? ¿Un archivo? ¿Memoria?

Mi punto de vista sobre el método de nombres es que su función es eliminar cualquier ambigüedad e, idealmente, la necesidad de buscar documentación. Creo que esto debería hacerse incluso a costa de nombres de métodos más largos. Según los estudios, la mayoría de los desarrolladores intermedios pueden leer múltiples palabras en camel case. Con IDE y auto terminaciones, escribir nombres largos de métodos tampoco es un problema.

Por lo tanto, cuando veo "fetchBooks", a menos que el contexto sea muy claro (por ejemplo, una clase llamada BookFetcherFromDatabase), es ambiguo. ¿Lo traes de dónde? ¿Cuál es la diferencia entre fetch y find? También arriesgas el problema de que algunos desarrolladores asociarán la semántica con ciertas palabras clave. Por ejemplo, busque la base de datos (o memoria) frente a la carga (del archivo) o la descarga (desde la web).

Preferiría ver algo como "fetchBooksFromDatabase", "loadBookFromFile", "findBooksInCollection", etc. Es menos visualmente, pero una vez que superas la duración, está claro. Todo el mundo que lea esto sabrá de inmediato qué es lo que intentas hacer.