Guía de nomenclatura en ABAP: convenciones semánticas

Cómo nombrar métodos, booleanos y lógica de negocio en ABAP.

Nombrar bien la lógica en ABAP es una de las diferencias más claras entre un código difícil de mantener y uno fácil de entender incluso años después.

En esta guía nos centramos en convenciones semánticas, es decir, en cómo nombrar correctamente métodos, booleanos, validaciones, excepciones y lógica de negocio, especialmente en ABAP orientado a objetos.

El objetivo es simple:
👉 que leyendo un nombre sepas qué hace, qué devuelve y qué impacto tiene.

Principios generales para nombrar lógica ABAP

Estas reglas aplican a todo lo que representa comportamiento, no solo a métodos:

  • Empieza siempre por un verbo o una pregunta
  • Usa inglés y snake_case
  • Un nombre debe explicar qué hace y qué impacto tiene
  • Evita palabras genéricas (process, handle, execute)
  • Mantén consistencia en todo el proyecto

Métodos: la unidad principal de la lógica

La forma recomendada para nombrar métodos es: verbo + objeto + contexto (si es necesario)

Ejemplos:

CorrectoIncorrecto
get_customer_dataget_data
check_user_authorizationauth_check
calculate_total_amountcalc_total
read_orders_from_dbread_db

Tipos de métodos y cómo nombrarlos

Tipo de métodoUso principalEjemplos
GETObtener datos sin modificar estadoget_status, get_order_list
SETAsignar o modificar atributosset_status, set_defaults
CHECK / VALIDATEComprobar reglas de negociocheck_authorization, validate_input_data
CALCULATECálculos de negocio o matemáticoscalculate_price, calculate_tax
READ / LOADAcceso a BD o datos externosread_customer_from_db, load_master_data
CREATE / BUILDCrear objetos o resultadoscreate_order, build_response

Métodos de negocio vs métodos técnicos

TipoDescripciónEjemplosVisibilidad
NegocioRepresentan acciones realesapprove_order, post_invoicePUBLIC
TécnicosSoporte internomap_data, convert_currencyPRIVATE

Booleanos y flags: lógica condicional clara

Los métodos booleanos deben leerse como preguntas.

PrefijoUsoEjemplos
is_Estadois_valid, is_active
has_Posesiónhas_authorization
can_Permisocan_be_deleted
exists_Existenciaexists_customer

❌ Evita nombres como check_flag, validate_ok, status_check.

Validaciones y control de errores

Diferencia clave:

TipoQué haceConvención
Validación lógicaDevuelve booleanis_valid_order
Validación críticaLanza excepciónvalidate_order_data

👉 Si el sistema no puede continuar, usa excepción, no booleano.

Métodos que lanzan excepciones

Si un método puede romper el flujo, su nombre debe sugerirlo.

MétodoComportamiento
check_authorizationLanza excepción si falla
validate_order_dataValida y aborta si es inválido
ensure_consistencyGarantiza reglas críticas

👉 Usa excepciones para errores críticos y booleanos solo para lógica condicional.

Excepciones: que el nombre explique el problema

ElementoConvenciónEjemplo
Clase de excepciónZCX_*ZCX_INVALID_STATUS
Texto claroFrase explícita“Order status is invalid”

Evita excepciones genéricas como ZCX_ERROR.

Métodos estáticos

Se usan para lógica reutilizable que no depende del estado del objeto.

Ejemplos:

  • convert_date_to_timestamp
  • calculate_percentage
  • is_initial_value

👉 Normalmente en clases *_UTILS o *_HELPER.

Métodos de eventos

Convención estándar:

TipoEjemplo
Eventoson_user_command, on_double_click, on_data_changed

El prefijo on_ indica claramente que es un handler.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *