Artefacto de nomenclatura de variables
- CODELF (vscode tiene complementos)
1. Nomenclatura general
(1) Nomenclatura de joroba pequeña
bool isMelonRipe; //变量
int getMyCoin(); //函数
(2) Nomenclatura de joroba grande
struct MyStruct; // 结构体
class MyClass; // 类
(3) Nomenclatura de subrayado
int an_integer_var; // 变量用下划线
void myFunction(); //函数用小驼峰
(4) Nomenclatura de palabras en mayúscula
const float GRAVITY = 9.8 // 常量
#define PI 3.14 // 宏定义
(5) nomenclatura húngara
//变量名 = 属性 + 类型 + 对象描述
class Block{
private:
double m_dLong; // 长
double m_dWidth; // 宽
double m_dHeight; // 高
}
2. Denominación de funciones
prefijo + sustantivo (es/puede/tiene/… + algo)
Entre ellos, los prefijos incluyen:
- Indica el estado de cumplimiento - es
- Indica si se puede ejecutar - puede
- Indica si incluir el estado - tiene/incluye/contiene
- Indica si el estado es requerido - debería/necesita
Por ejemplo:
- Determinar si el usuario existe - isUserNameExist()
- Determinar si se debe modificar el nombre de usuario: shouldUserNameChange()
- Determinar si el hotel tiene wifi —— hasWifi()
- Determinar si el hotel se puede reservar: canBook()
3. Denominación de la adquisición de datos
- Obtener de la estructura de datos - obtener
- Obtenido por cálculo - calcular/cal
- Adquisición de base de datos: buscar/consultar
- Obtener del archivo de configuración - cargar/analizar/construir
- Obtener de la red - buscar
Por ejemplo:
- Obtenga datos directamente de objetos, estructuras de datos - getUserId()
- Obtener datos por cálculo: calculeUserAverageScore()
- Datos de búsqueda de base de datos - findUserName()/queryUserNmae()
- Cargar datos desde el archivo de configuración: loadUserInfo()/parseUserInfo()/buildUserInfo()
- Solicitud de red para obtener datos - fetchUserInfo()
4. El parámetro formal de la función no debe usar tipo bool
5. Empalme de combinación de cuerdas
Formato de cadenas (C++): snprintf, stringstream
6. Evita los números mágicos
Se puede resolver usando tipos enumerados.
7. Principio de descomposición de funciones largas
Generalmente, el lugar donde se deben escribir los comentarios se puede encapsular en una nueva función.
8. Denominación de series de números
Por ejemplo, a1, a2, dicha denominación es puramente engañosa, no proporciona información correcta y es perjudicial para la legibilidad.
Utilice sourceChars/source y destinationChars/destionation como nombres de parámetros.
9. Enciclopedia de selección de verbos de nombres de funciones
Evite el uso indebido de palabras como:
- Todopoderoso consigue
- Todopoderoso añadir
Resumen detallado de varios verbos que nombran funciones:
-
Creat - crear (creación de instancia/método de fábrica)
-
Initialize - inicialización (instancia/propiedad)
-
Carga - carga (configuración)
-
Destruir - destruir
-
Desinicializar - desinicializar (instancia/propiedad)
-
Obtener - a través de obtener (propiedad)
-
Fetch - get (solicitud de red)
-
Calcular - Calcular
-
Leer - leer (archivo/configuración)
-
consulta - consulta
-
Buscar/Buscar - encontrar (en base de datos/colección)
-
recibir - recibir
-
Tirar - tirar
-
Establecer - por configuración (propiedad)
-
Escribir - escribir (archivo/configuración)
-
Put poner
-
Push - depósito/push (notificación)
-
Restablecer - restablecer (bandera/estado)
-
Actualizar - actualizar (página/caché)
-
Actualizar - actualizar (configuración/estado)
-
Añadir - añadiendo
-
Agregar —— agregar (cola)
-
Eliminar - eliminar
-
Quitar - quitar
-
Abierto - abierto (estado abierto/archivo abierto)
-
Inicio - inicio (proceso)
-
Lanzar - enviar/lanzar (programa)
-
Cerrar - cerrar (cerrar estado/cerrar archivo)
-
Detener - detener (proceso)
-
Terminar - terminar (proceso)
10. Dale un buen nombre a la función
- Procesamiento de datos relacionados con el tipo de colección
verbo | usar | ejemplo |
---|---|---|
Filtrar | filtro/filtro (énfasis por ciertos criterios) | Filtrar por nombre |
Unir | fusionar (a veces con reglas de fusión) | MergeTwoConfig |
concat | empalme (agregado directamente al final) | ConcatToArray |
Dividir | Dividir | entrada dividida |
deduplicar | deduplicación (deduplicación de elementos idénticos) | DeduplicateList |
Contrarrestar | orden inverso/inverso | Registro inverso |
Clasificar | Ordenar (a veces con intercalación) | ordenarofertasporcantidad |
Llenar | Relleno (generalmente sobrescritura) | LlenarAmountList |
- Procesamiento de datos comerciales generales
verbo | usar | ejemplo |
---|---|---|
Analizar gramaticalmente | parsing (analizar el contenido extraído) | ParseFromJson/ParseResult |
Analizar | analizar | AnalizarUbicación |
Convertir | conversión de tipos | ConvertToString |
Formato | datos formateados | FormatToLocalString |
Validar | Validez/Comprobación de validez | ValidateUserInputs |
Asegurar | Calibración del valor esperado | AsegurarEdadUsuario |
Componer | Composición (combinar múltiples elementos en un resultado) | Crear Mensaje |
Codificar | Codificación (dependiendo del formato de codificación acordado) | Codificar URL |
Descodificar | Decodificación (dependiendo del formato de codificación acordado) | URL de decodificación |
cifrar | Cifrado de datos (dependiendo del algoritmo de cifrado acordado) | Cifrar contenido |
Respaldo | Copia de seguridad (preste atención al método de copia para evitar engaños) | BackupUserSettings |
Restaurar | recuperar | Restaurar configuración de usuario |
Importar | Importación (conversión de archivos según un formato específico) | Importar desde archivo |
Exportar | Exportar (para convertir a un archivo en un formato específico) | Exportar a archivo |
Comprimir | Compresión (algoritmo dependiente del acuerdo) | Comprimir archivo de gran tamaño |
Descomprimir | Descompresión (depende del algoritmo acordado) | Descomprimir archivo de gran tamaño |
11. Problemas propensos a ocurrir en la denominación de código
- El nombre es demasiado simple para expresar el significado claramente.
- Los diferentes estilos de nombres afectan la lectura del código
- No se refirió a la denominación estándar
- La modificación del código no actualiza los comentarios, lo que genera confusión.
- Comentarios sin sentido (como comentarios de registro, comentarios de código obsoletos, etc.)
- Comentarios excesivos
- La función es demasiado larga y le falta refinamiento.
- El código duplicado no se reutiliza
- Definición irrazonable de variable/constante
- El desacoplamiento no se considera al definir
- Use constantes en lugar de contenido que debería generarse dinámicamente, como rutas de archivos escritas en una forma fija