¿Cómo nombra sus bibliotecas personales? [cerrado]

7

Soy bastante malo con nombrar cosas.

El único nombre que puedo crear genéricamente es 'helper'. Por ejemplo, si tengo un archivo de encabezado que contiene funciones de ayuda para manipular rutas, tiendo a ponerlo dentro de mi directorio de "ayudantes" y lo llamo "ruta-helper.hpp" o algo así.

Obviamente, eso es una mala convención de nomenclatura. :)

Quiero tener un esquema de nombres coherente para mi carpeta (y espacio de nombres) que puedo usar para referirme siempre a mis propios encabezados y bibliotecas, pero tengo problemas para encontrar nombres que sean fáciles de escribir o recordar (como boost ) ... así que termino llamando a algunos de ellos "ayudantes" o "stdext" o lo que sea, lo cual no es una gran idea.

¿Cómo encuentra nombres para sus bibliotecas que sean fáciles de recordar y escribir, y que no sean demasiado genéricos (como "helper" o "std" o "stdext" o similares)?

¿Alguna sugerencia sobre cómo hacer esto?

    
pregunta Mehrdad 28.08.2012 - 17:59

5 respuestas

4

Intente agrupar las funciones de ayuda temáticamente e incluir el tema en el nombre de la biblioteca. Un nombre de biblioteca como "helper" puede ser demasiado genérico, pero un nombre como "PathHelper", "FileIOHelper" dice bastante acerca de qué funciones se pueden esperar en esa biblioteca (personalmente, prefiero "... Utilidades", pero eso es simplemente una cuestión de gusto personal). Por ejemplo, tengo nombres de lib como "MathUtilities", "StringUtilities" "ConfigUtilities", "DBUtilities" y así sucesivamente.

Por supuesto, para bibliotecas más grandes en nuestro equipo usamos nombres sin ningún término genérico al final. Y para ser honesto, también tenemos una biblioteca llamada "Común" para algunas funciones y clases que no se agrupan bien bajo un nombre de tema específico. Pero tratamos de mantener esa libertad pequeña.

    
respondido por el Doc Brown 28.08.2012 - 18:57
2

En general, es un proceso orgánico para mí.

Mis espacios de nombres tienden a reflejar los nombres de mis carpetas, principalmente porque creo que es más fácil encontrar las cosas de esa manera.

Los

proyectos corporativos generalmente tienen un prefijo de empresa delante del espacio de nombres, y para los proyectos personales alterno entre project-prefix.folder y solo folder para los nombres.

Las carpetas "principales" tienden a ser obvias para su nombre y generalmente están relacionadas con su función: "Foo". Para proyectos más grandes, separaré la carpeta principal para reflejar el principal paradigma de programación que puedo estar siguiendo. Así que para MVVM, tendría "Foo.View", "Foo.ViewModel" y "Foo.Model" como nombres de ejemplo.

Invariablemente, las funciones de ayuda que no encajan en ningún otro lugar comienzan a introducirse en el proyecto. Comenzaré con una carpeta de tipo "común" o "utilidades" para aterrizarlas primero. "Ayudantes", "Base" y "Núcleo" funcionarán igual de bien para un lugar de aterrizaje inicial.

Intento nombrar mis funciones según el sujeto y / o la acción que realizan. Así que podría tener un PathManager, PathChecker, etc. A menudo, sé que tendré varias Acciones relacionadas con un tema, así que nombraré a la clase después del Tema y agregaré los métodos según sea necesario. Un diccionario de sinónimos puede ser útil aquí.

He encontrado una alta correlación entre la facilidad para nombrar un objeto y lo bien que puedo describir lo que se supone que hace la función. Uno de mis puntos de control personales es que si estoy luchando por nombrar algo, eso significa que necesito reflexionar sobre lo que se supone que la función realmente está haciendo. Una vez que soluciono los problemas de funcionalidad, el nombre viene fácilmente.

A medida que reúno más funciones de ayuda, las migraré a su propia carpeta y / o espacio de nombres. Si obtienen una carpeta del proyecto raíz o si obtienen una subcarpeta para la carpeta de utilidad, depende de la naturaleza y la cantidad de las funciones.

    
respondido por el GlenH7 28.08.2012 - 20:03
1

De manera similar a GlenH7, tiendo a tener una biblioteca "-misc", donde org es una abreviatura de tres o cuatro letras para quien sea mi empleador actual.

Todas las funciones aleatorias nuevas se colocan allí hasta que se hayan acumulado suficientes para que surja un patrón. En ese momento, los agrupo y extraigo las funciones relacionadas en bibliotecas con nombres más sensatos, refactorizando el código del cliente según sea necesario.

A veces se requiere un poco de disciplina para mantener el tamaño de la biblioteca manejable, pero en estos días las bibliotecas mis * -misc tienden a ser bastante pequeñas.

(También siempre tengo un "devauto" y una biblioteca "testauto" que contienen funciones de "meta-nivel" destinadas a soportar el desarrollo y la automatización de pruebas).

    
respondido por el William Payne 29.08.2012 - 02:58
0

Si fuera yo, solo tendría una biblioteca de rutas (probablemente sería una biblioteca de sistema de archivos que contenía un componente de ruta). Proporcionaría la interfaz exacta que necesito para hacer el trabajo. Seguro que el 90% sería una envoltura delgada alrededor de boost.filesystem o cualquier lib del sistema de archivos de idioma que hubiera, pero mi código solo vería esta bonita y consistente biblioteca. No intente recordar si esa función estaba en X, X-helper, X-utils o X-ext. Si X necesita ayuda, es hora de arreglar X, no inventar nuevas ubicaciones aleatorias para el código.

    
respondido por el stonemetal 28.08.2012 - 21:08
0

También soy muy malo en esto. Mi enfoque pragmático es enriquecer el nombre por fecha y / o proyecto y / o ubicación hasta que se me ocurra un nombre razonable.

Sé que para otra persona es imposible de leer, pero yo mismo puedo reconocerlos rápidamente. Y la mayoría de estas bibliotecas terminan siendo de un solo uso de todos modos para mí.

    
respondido por el bdecaf 29.08.2012 - 16:38

Lea otras preguntas en las etiquetas