Sentido común de la especificación de programación C ++ (debe leer antes de la escuela)

Artefacto de nomenclatura de variables

  1. 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:

  1. Determinar si el usuario existe - isUserNameExist()
  2. Determinar si se debe modificar el nombre de usuario: shouldUserNameChange()
  3. Determinar si el hotel tiene wifi —— hasWifi()
  4. 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:

  1. Obtenga datos directamente de objetos, estructuras de datos - getUserId()
  2. Obtener datos por cálculo: calculeUserAverageScore()
  3. Datos de búsqueda de base de datos - findUserName()/queryUserNmae()
  4. Cargar datos desde el archivo de configuración: loadUserInfo()/parseUserInfo()/buildUserInfo()
  5. 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

  1. 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
  1. 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

  1. El nombre es demasiado simple para expresar el significado claramente.
  2. Los diferentes estilos de nombres afectan la lectura del código
  3. No se refirió a la denominación estándar
  4. La modificación del código no actualiza los comentarios, lo que genera confusión.
  5. Comentarios sin sentido (como comentarios de registro, comentarios de código obsoletos, etc.)
  6. Comentarios excesivos
  7. La función es demasiado larga y le falta refinamiento.
  8. El código duplicado no se reutiliza
  9. Definición irrazonable de variable/constante
  10. El desacoplamiento no se considera al definir
  11. Use constantes en lugar de contenido que debería generarse dinámicamente, como rutas de archivos escritas en una forma fija

Supongo que te gusta

Origin blog.csdn.net/qq_41821678/article/details/125826120
Recomendado
Clasificación