Red de conocimientos sobre prescripción popular - Como perder peso - Varias reglas de nomenclatura comunes en programación

Varias reglas de nomenclatura comunes en programación

Varias reglas comunes para la nomenclatura de programas

Nombrar funciones y variables de forma correcta y vívida no solo puede aumentar la legibilidad del programa, sino que también refleja el estilo de programación del programador. Mejores hábitos de nomenclatura pueden mejorar eficazmente la mantenibilidad del programa. A continuación se presentan varias reglas de nomenclatura de variables de uso común.

1. Nomenclatura húngara: muy utilizada en entornos como Microsoft Windows.

Esta técnica de nomenclatura fue propuesta por un hábil programador de Microsoft, Charles Simonyi. La nomenclatura húngara identifica el alcance, tipo, etc. de la variable agregando el símbolo de letra minúscula correspondiente delante del nombre de la variable como prefijo. Estos símbolos se pueden usar varias veces al mismo tiempo. El orden es m_ (variables miembro), luego punteros, luego tipos de datos simples y luego otros. Por ejemplo: m_lpszStr, representa una variable miembro de puntero largo que apunta a una cadena que termina en 0 caracteres.

La clave de la nomenclatura húngara es: el nombre del identificador comienza con una o más letras minúsculas como prefijo; el prefijo va seguido de una palabra o una combinación de palabras con la primera letra en mayúscula; letras, que deben indicar el uso de la variable.

Por ejemplo: bEnable, nLength, hWnd.

Prefijos de letras minúsculas comúnmente utilizados en la nomenclatura húngara:

Descripción del tipo de prefijo

a Matriz

b BOOL

p>

por BYTE carácter sin signo

c carácter de carácter

cb Recuento de bytes número de bytes

cr Valor de referencia de color valor de color< /p >

cx,cy Recuento de longitud x,y (corta)

dw palabra doble DWORD (entero largo sin signo)

f Banderas bandera

fn Función función

g_ Global global

h HANDLE handle

i Entero(int) entero

l Largo(largo) largo Entero

lp Puntero largo de punto largo

m_ Miembro de datos de un miembro de datos de clase

n Entero corto (corto)

np Puntero corto de punto cercano

p Puntero de punto

s Cadena de cadena

sz Cadena terminada en cero cadena terminada en 0

tm Métrica de texto reglas de texto

u Entero sin signo

ul Entero largo sin signo(ULONG) Entero largo sin signo

w WORD Entero corto sin signo

x ,y coordenadas x,y coordenadas (cortas)

v Void vacío

Las variables globales relacionadas con el proyecto comienzan con g_, y las variables miembro de la clase comienzan con m_.

Ejemplo de tipo de prefijo

Clase C CDocument, CPrintInfo

m_ variables miembro m_pDoc, m_nCustomers

g_ variable global g_Servers

2. Nomenclatura del caso Camel: se ha vuelto cada vez más popular en los últimos años.

CamelCase, como su nombre indica, se refiere a nombres que utilizan una combinación de letras mayúsculas y minúsculas para formar identificadores. La primera letra de la primera palabra está en minúscula y la primera letra de las palabras restantes está en mayúscula.

Por ejemplo:

printEmployeePaychecks();

Cada punto de interrupción lógico en el nombre de la función está marcado con una letra mayúscula.

3. Nomenclatura Pascal: similar a la nomenclatura del caso camel.

Es solo que la nomenclatura CamelCase tiene la primera letra de la primera palabra en minúscula, mientras que la nomenclatura Pascal tiene la primera letra de la primera palabra en mayúscula. Por lo tanto, esta nomenclatura también se denomina "nomenclatura del caso del gran camello".

Por ejemplo:

DisplayInfo();

UserName

todos usan la nomenclatura Pascal.

En C#, la nomenclatura Pascal y la nomenclatura camel son las más comunes.

De hecho, muchos programadores utilizarán la denominación en mayúsculas y minúsculas junto con Pascal cuando realmente nombran. Por ejemplo, los nombres de variables utilizan la denominación en mayúsculas y minúsculas en camello y las funciones utilizan la denominación en mayúsculas y minúsculas.

4. Subrayar nomenclatura.

El método del subrayado se hizo popular con la aparición del lenguaje C, y es muy utilizado en entornos como códigos UNIX/LIUNX y GNU.

4.1 Denominación de funciones

Los nombres de las funciones se nombran utilizando guiones bajos para separar letras minúsculas:

Nombre del dispositivo_nombre de operación ();

El El nombre de la operación generalmente toma la forma de: predicado (en este caso, el nombre del dispositivo sirve como objeto o indica el módulo al que pertenece la operación) o predicado objeto/predicado (en cuyo caso el nombre del dispositivo sirve como sujeto o indica el módulo al que pertenece la operación), etc., como por ejemplo:

tic_init();

adc_is_busy();

uart_tx_char();

La función de interrupción se nombra directamente en forma de nombre de dispositivo _isr() Nombramiento, como por ejemplo:

timer2_isr();

4.2 Nombramiento de variables

Las variables también se nombran utilizando letras minúsculas separadas por guiones bajos. La denominación debe ser precisa, inequívoca y de extensión moderada. Por ejemplo:

int length;

uint32 test_offset;

También se utilizan comúnmente nombres de un solo carácter, como i, j, k, etc. Por lo general, se puede utilizar como variables locales dentro de funciones. tmp se utiliza a menudo como nombre de variable temporal.

Las variables estáticas locales deben agregarse con el prefijo s_ (que significa estático), como por ejemplo:

static int s_lastw;

Variables globales (especialmente para acceso externo variables globales), se debe agregar con el prefijo g_ (que representa global), como por ejemplo:

void (* g_capture_hook)(void);

4.3 Denominación de constantes y macros

Utilice letras mayúsculas separadas por guiones bajos para nombrar y, en general, utilice el nombre del dispositivo como prefijo.

Para evitar la duplicación de nombres entre módulos. Por ejemplo:

#define TIMER0_MODE_RELOAD 2

#define TIMER2_COUNT_RETRIEVE(val) ((uint16)(65536 - (val)))

Por supuesto, considerado como interfaz La macro se puede nombrar de acuerdo con el método de nomenclatura de la función, por ejemplo:

#define timer2_clear() (TF2 = 0)

#define timer0_is_expired() ( TF0)

Según la investigación, no existe una regla de nomenclatura con la que todos los programadores estén de acuerdo, y los libros de texto de programación generalmente no especifican reglas de nomenclatura. Las reglas de nomenclatura no son una cuestión de "hacer o deshacer" los productos de software. No deberíamos esforzarnos demasiado en tratar de inventar las mejores reglas de nomenclatura del mundo, sino que deberíamos desarrollar una regla de nomenclatura que satisfaga a la mayoría de los miembros del proyecto e implementarla. está implementado en el proyecto.