Convenciones de Nomenclatura de FileMaker

Adoptar convenciones de nomenclatura al usar o desarrollar en FileMaker puede hacerte la vida más fácil con el tiempo; lee este artículo para saber cómo.

En este artículo te voy a mostrar algunas convenciones de nomenclatura de FileMaker. Estos son los principios que sigo cuando desarrollo en FileMaker, que cubren cómo nombro tablas, ocurrencias de tablas, campos, guiónes, etc. Muchos desarrolladores de FileMaker utilizan convenciones y, en ausencia de estándares oficiales de FileMaker, estas convenciones pueden variar entre desarrolladores. En última instancia, tiene que decidir qué funciona mejor para usted, y para ayudarte con esa decisión, te remitiré a otros desarrolladores que utilizan convenciones alternativas.

Las razones por las que los desarrolladores adoptan convenciones son:

  • Acelerar el desarrollo, permitiendo que un desarrollador encuentre rápidamente el elemento que necesita cuando, por ejemplo, cree una relación o un paso de guión.​
  • Mejorar la eficiencia a largo plazo, permitiendo a un desarrollador volver a una aplicación personalizada unos meses después y entender lo que hace cada elemento.
  • Evite la duplicación, infundiendo confianza en el desarrollador de que solo existe un elemento (un campo, una función personalizada, un paso de guión) para cumplir un propósito específico. En tablas con muchos campos, y/o cuando se desarrollan en un equipo, existe un mayor riesgo de crear campos duplicados que capturen la misma información.
  • Eliminar los cuellos de botella, por ejemplo, identificando campos específicos, como campos de cálculo no almacenadas y campos globales, que un desarrollador debe ignorar al configurar un campo de cálculo.

Campos

Estos son los principios que utilizo para nombrar campos.

Conjuntos Funcionales

Agrupar campos en conjuntos funcionales y utilizar un orden de clasificación personalizado, en lugar de ordenar por nombre o hora de creación. Los conjuntos funcionales que utilizo son:

  • Claves – Para las claves que unen las ocurrencias de la tabla.
  • Características de registros – para los campos que contienen datos de creación y modificación.
  • Booleano – Para los campos utilizados como banderas booleanas, es decir, verdadero o falso.
  • Campos de datos – Los campos de datos de la tabla. Si una tabla contiene muchos campos, lo subdividiré en conjuntos funcionales más pequeños.

Esta captura de pantalla proporciona un ejemplo de uso de conjuntos funcionales:

Un ejemplo de cómo nombro los campos en una tabla de una base de datos de FileMaker.

Un ejemplo de cómo nombro los campos en una tabla de una base de datos de FileMaker. Captura de pantalla: Anthony Lambert/WISSPA.

Al usar estos conjuntos funcionales puedo encontrar cosas de forma rápida y sencilla.

Un desarrollador de FileMaker en los EE. UU., DB Services, adopta un enfoque diferente (inglés): ordenan la lista de campos por nombre y dependen de la forma en que nombran sus campos para controlar dónde aparecen los campos en la lista. Te daré un ejemplo de esto en un momento, después de explicar la segunda regla que utilizo.

Nombres de los Campos

Utilizo los siguientes principios al nombrar campos:

  • Los campos se nombran como un solo elemento; por ejemplo, ‘propiedad’, no ‘propiedades’.
  • Las palabras utilizadas en los nombres de campo (y los nombres de los scripts y las funciones personalizadas) no incluyen marcas diacríticas; por ejemplo, ‘ubicacion’, no ‘ubicación’.
  • Los nombres de los campos están todos en minúsculas con palabras separadas por guiones bajos; por ejemplo, ‘fecha_hora_creacion’.
  • La clave principal de la tabla se llama ‘clave_principal’.
  • Las claves externas dentro de la tabla comienzan con la palabra ‘clave’ y luego, siguiendo un guión bajo, tienen el nombre de la tabla de la que se toma la clave; por ejemplo, ‘clave_organizacion’.
  • Los campos booleanos se nombran como si fueran la pregunta, lo más breve posible, que se puede responder sí o no (o verdadero o falso) en el campo; por ejemplo, ‘es_pagada’ para registrar si se ha pagado o no una factura. Nombrar campos booleanos de esta manera permite que una función If que utiliza este campo exponga su lógica rápidamente; por ejemplo, ‘If ( es_pagada ; bruto )’.
  • Los campos de cálculo tienen un sufijo de ‘_c’ o, si el cálculo no está almacenado, ‘_cu’; por ejemplo, ‘neto_cu’.
  • Los campos globales tienen un sufijo de ‘_g’ o, si el global es un cálculo, ‘_gc’; por ejemplo, ‘bruto_gc’.

Otros Convenciones de Nomenclatura de FileMaker

DB Services, la empresa que mencioné anteriormente, varía considerablemente (inglés) de esto:

  • Los nombres de los campos están en letra de caja camello (camelCase); por ejemplo, ‘nombrePrimero’ o ‘nombrePrimeroYFamiliar’.
  • Los campos clave comienzan con ‘_k’ seguidos de un código de una letra que denota el tipo de campo; por ejemplo, ‘_kpnID’ para una clave principal que es un campo numérico o ‘_kftOrdenID’ para una clave externa que es un campo de texto. Si los campos están ordenados por nombre, los campos clave estarán en la parte superior de la lista.
  • Los campos que no son editables por el usuario comienzan con un código de tres letras: ‘z’; seguido de uno de ‘g’ para global, ‘c’ para el cálculo o ‘s’ para el resumen; seguido de una letra que denota el tipo de campo; por ejemplo, ‘zgtBruto’ para un campo de texto global o ‘zcdFechaPagada’ para un campo de fecha calculada. Si los campos están ordenados por su nombre, estos campos ‘z’ estarán en la parte inferior de la lista de campos.

Por último, hay algunas restricciones en los nombres de los campos. Consulta esta página sobre los campos de nomenclatura y esta página sobre las palabras reservadas en el sitio web de Claris.

Tablas y Ocurrencias de Tablas

Para los nombres de las tablas utilizo letra de caja camello (camelCase) y los nombres son singulares; por ejemplo, ‘configuracion’ o ‘lineaDeFactura’ (no ‘configuraciones’ o ‘lineasDeFactura’). Para las ocurrencias de tablas utilizo estos principios:

Una captura de pantalla del panel de relaciones de una base de datos de FileMaker, que muestra los nombres de las ocurrencias de tablas basadas en las tablas base dentro del archivo.

El panel de relaciones de una base de datos de FileMaker, que muestra los nombres de las ocurrencias de tablas basadas en las tablas base dentro del archivo. Captura de pantalla: Anthony Lambert/WISSPA.

  • Las ocurrencias de tabla adicionales para una tabla se nombran de la siguiente manera: el nombre de la ocurrencia de la tabla con la que está relacionada, seguido de dos guiones bajos, luego la tabla base para la nueva ocurrencia de la tabla, seguido de un solo guión bajo, luego una frase muy breve que explica para qué sirve la ocurrencia de la tabla. Por ejemplo, una nueva ocurrencia de tabla diseñada para mostrar las facturas de una organización que se ha pagado se llamaría ‘organization__factura_porPago’.
  • Si desea mostrar los productos en esas facturas pagadas en el ejemplo anterior, una nueva ocurrencia de tabla basada en la tabla de productos se llamaría ‘organization__factura_porPago__producto’.
Captura de pantalla del panel de relaciones en una base de datos de FileMaker, que muestra el nombre de ocurrencias adicionales de una tabla dentro del archivo.

El panel de relaciones en una base de datos de FileMaker, que muestra el nombre de ocurrencias adicionales de una tabla dentro del archivo. Captura de pantalla: Anthony Lambert/WISSPA.

Se sugiere un enfoque alternativo (inglés) en FileMaker Standards, un sitio web creado por un grupo de desarrolladores de FileMaker para tratar de definir algunas convenciones que todos pueden/deberían seguir. Prefieren el tipo título y tener ocurrencias de tabla adicionales nombradas de la siguiente manera: un área funcional que explica el propósito de la ocurrencia de la tabla, seguida de ‘ » ‘, luego el nombre de la tabla base. Por ejemplo, la ocurrencia de la tabla para mostrar facturas impagadas se llama ‘Sin Pagar » Facturas’ y la que para mostrar productos en esas facturas impagadas es algo así como ‘Facturas Por No Pagado » Productos’.

Guiones

Utilizo el PascalCase para guiones; por ejemplo, ‘IrAPresentacion’ o ‘GuardarUnaClonacion’. Con los guiones que se adjuntan a los disparadores de guión, uso el nombre del disparador de guión, seguido de un guión bajo, luego el nombre del campo, el presentación u otra entidad a la que se adjunta el disparador; por ejemplo, ‘OnObjectSave_CamposDeProducto’ o ‘OnLayoutEnter_FormularioDeFactura’.

Utilizo una plantilla para guiónes que incluye algunos detalles del encabezado:

  • Propósito – el propósito del guión, escrito lo más brevemente posible. – Historial: el historial del guión, escrito en el formato ‘fecha | nombre del desarrollador incluyendo la empresa si es relevante | lo que se agregó, cambió o eliminó’.
  • Historial – el historial del guión, escrito en el formato ‘fecha | nombre del desarrollador incluyendo la empresa si es relevante | lo que se agregó, cambió o eliminó’.
  • Notas – cualquier cosa que te ayude a ti o a otro desarrollador a interpretar el guión en algún momento en el futuro.
  • Parámetros – los parámetros pasados al guión, su propósito y si son opcionales o no.
  • Constantes – cualquier bit constante de datos que se utilice durante el guión, en particular cualquier cosa que se utilice más de una vez.

Utilizo muchos comentarios y líneas vacías para que los guiones sean más fáciles de leer. Si un script es largo, utilizo comentarios de estilo encabezado para subdividir el guión en trozos lógicos. He aquí un ejemplo:

########################################################################
# FUNCIÓN
# 	Se ejecuta cuando se abre el archivo.
# HISTORIA
# 	10 de marzo de 2022 | Un desarrollador de WISSPA | Creado.
# 	4 de abril de 2022 | Anthony Lambert de WISSPA | Se ha añadido una
		rutina para cubrir cuándo se han importado archivos de datos.
# NOTAS
#	Este script se ejecuta:
	- cuando se abra la primera ventana;
	- cuando el campo de idioma se modifica en configuración;
	- cuando se hayan importado archivos de datos.
########################################################################
# PARÁMETROS

#-----------------------------------------------------------------------
# CONSTANTES
 	
#-----------------------------------------------------------------------



# SI EL REGISTRO ESTÁ ABIERTO
#-----------------------------------------------------------------------
If [ TableIsConfiguracion and Get ( TotalRecordCount ) > 0 ]
	# esta parte se aplica si el script se activa cuando
	   se cambia el idioma booleano
	Freeze Window
	If [ Get ( RecordOpenState ) ≠ 0 ]
		Commit Records/Requests [ No dialog ]
	End If
End If

Etc…

Convenciones Alternativas

Una empresa llamada Core Solutions Inc. con sede en Canadá tiene un enfoque diferente (PDF, inglés) para la denominación de guiones. Requiere que los guiones se nombren de la siguiente manera: un prefijo numérico, seguido de un espacio, luego el nombre del guión escrito en el caso de título con palabras separadas por espacios y luego, si es necesario, los parámetros del guión que se requieren, entre corchetes; por ejemplo, ‘0101 Guion Apertura’ o ‘0601 Contacto Columna Clasificacion [1/2/3/4/5/6]’ o ‘0801 Navegacion Pestanas [_table;_paisaje]’. (Para obtener una explicación de la barra diagonal o el guión bajo en el segmento de parámetros del guión, consulte el PDF al final del enlace).

Otros Elementos

La forma en que nombro algunos de los otros elementos de FileMaker es la siguiente:

  • Funciones personalizadas – PascalCase para el nombre y letra de caja camello (camelCase) para los parámetros; por ejemplo, ‘TextoDeErrorES ( numeroDeError )’.
  • Variables – minúsculas con un guión bajo que separa palabras; por ejemplo, ‘$desactivar_disparador_guion’.

Por Último

Espero que esto te haya resultado útil. Cualesquiera que sean las convenciones que decida adoptar, inevitablemente las adaptará con el tiempo a medida que cambien sus necesidades y mejoren las características de FileMaker. Sin embargo, es importante que dentro de una aplicación personalizada específica te atengas a un conjunto de convenciones.