A medida que las organizaciones Salesforce crecen en complejidad, es habitual el aumento del número de desarrollos personalizados que, en última instancia, requieren de la creación de código APEX. En ciertos casos, el número de caracteres utilizados alcanza el límite máximo por organización establecido por Salesforce, conllevando generalmente tareas de revisión/optimización de código o solicitudes de ampliación de caracteres máximos (Salesforce exige, previamente a la ampliación, una revisión del código actual y una justificación para dicha solicitud de ampliación).
En este artículo se presentan varias características clave del recuento de caracteres y se derivan, a partir de éstas, directrices que permiten reducir el número de caracteres del código producido manteniendo la legibilidad del mismo.
Asimismo, se relacionan estas directrices con características del IDE Visual Studio Code (VSC a partir de ahora) por ser, a fecha actual, el IDE apoyado por Salesforce.
A continuación se presentan las características clave del recuento que nos van a permitir, en última instancia, establecer las directrices que nos permitirán minimizar el uso de caracteres APEX. Las características son las siguientes:
Imagen 1: Ejemplo de cómputo descrito en el punto 4. El espacio situado entre el código sí se tiene en cuenta para el código global ya que es un espacio en blanco situado en una línea de código (punto 2). No obstante, los espacios situados íntegramente dentro de un comentario no se añaden al cómputo global
En base a las bases del recuento explicadas en el punto anterior, podemos inferir las siguientes directrices de cara a reducir el número de caracteres usados por nuestro código:
Imagen 2: Opción de inserción de espacios al presionar la tecla de tabulación en VSC
Visual Studio ofrece varias funcionalidades que pueden permitir de forma sencilla optimizar nuestro código APEX en cuanto a la economía de caracteres por sangrado se refiere.
Una de las opciones que nos ofrece VSC y que permite eliminar caracteres innecesarios APEX es la eliminación automática de espacios en blanco al final de cada línea. Para hacer uso de esta funcionalidad, pulsaremos en la parte inferior derecha de VSC sobre la sección que nos informa sobre la configuración para nuestra tabulación dentro de este archivo (Imagen 3).
Imagen 3: Configuración de la tabulación actual para el archivo seleccionado. Pulsando sobre esta opción se nos muestran varias de las funcionalidades que permiten reducir de forma automática el uso de caracteres
Imagen 4: Lista de funcionalidades que permiten la optimización de caracteres usados
Se nos muestra una lista de funcionalidades relacionadas con el sangrado del archivo actual. La última opción de las mostradas (Recortar espacio final) es la que nos permite eliminar todos los espacios finales innecesarios del archivo actual (Imagen 4).
La última funcionalidad de VSC a tener en cuenta es la opción de Convertir sangría en tabulaciones (Imagen 5). Esta opción nos permite transformar a tabulaciones todas las sangrías realizadas con espaciado. Esta acción, en base a las observaciones de la sección 2, permite reducir, por ejemplo para un archivo con una sangría de 4 espacios, un número de caracteres total igual a 3 por el número total de sangrías en el documento.
Imagen 5: Lista de funcionalidades ofrecidas por VSC relacionadas con el sangrado. Se resalta la función de conversión del sangrado en tabulaciones
Se han presentado en este artículo varias configuraciones que permiten optimizar el uso de caracteres APEX y que se deberían tener en cuenta en cualquier desarrollo Salesforce. Asimismo, se explican dos funcionalidades que permiten reducir de forma automática el número de caracteres para clases ya existentes sin afectar a la funcionalidad de la clase.
Dicho esto, es importante remarcar que ninguna de las consideraciones en cuanto a la economía de caracteres sustituye la optimización, refactorización y continua revisión del código existente. Frente a cualquier grupo de nuevos requisitos, siempre se debe considerar y abordar el planteamiento de una nueva solución considerando las herramientas declarativas que Salesforce ofrece y recomienda. Estos puntos siguen siendo prioritarios para cualquier código que desarrollemos y están en las bases de un código escalable y sostenible.
Asimismo, es imperante que se prioricen la legibilidad así como la creación de código auto explicativo sobre la economía de caracteres en cualquier caso (elección de nombres de variables/métodos, estructuración del código, etc.).