lunes, 10 de junio de 2024

Apex: un lenguaje de programación orientado a objetos

Apex es un lenguaje de programación orientado a objetos desarrollado por Salesforce para el desarrollo de aplicaciones en su plataforma de gestión de relaciones con clientes (CRM).

Características de Apex:

  1. Orientado a Objetos:

    • Apex es un lenguaje de programación orientado a objetos, lo que significa que permite a los desarrolladores definir clases, interfaces y métodos.
  2. Fuertemente Tipado:

    • Apex es un lenguaje fuertemente tipado, lo que significa que las variables deben declararse con un tipo de dato específico y no se permite cambiar el tipo una vez declarado.
  3. Sintaxis Similar a Java y C#:

    • La sintaxis de Apex es similar a la de Java y C#, lo que facilita la adopción para desarrolladores familiarizados con estos lenguajes.
  4. Integración Profunda con Salesforce:

    • Apex está diseñado para integrarse estrechamente con la plataforma Salesforce, permitiendo a los desarrolladores interactuar con la base de datos de Salesforce y otros servicios de la plataforma.
  5. Ejecución en la Nube:

    • El código Apex se ejecuta en la infraestructura de Salesforce, lo que significa que los desarrolladores no necesitan preocuparse por la gestión de servidores o la infraestructura subyacente.
  6. Eventos y Triggers:

    • Apex permite definir triggers, que son fragmentos de código que se ejecutan automáticamente en respuesta a eventos específicos en la base de datos de Salesforce, como inserciones, actualizaciones o eliminaciones de registros.

Usos Principales de Apex:

  1. Desarrollo de Aplicaciones Personalizadas:

    • Los desarrolladores pueden crear aplicaciones personalizadas que se ejecutan en la plataforma Salesforce, utilizando Apex para la lógica del negocio y Visualforce o Lightning Components para la interfaz de usuario.
  2. Automatización de Procesos:

    • Apex se utiliza para automatizar procesos de negocio complejos que no pueden ser manejados por las herramientas de automatización de Salesforce como Process Builder o Flows.
  3. Integración con Otros Sistemas:

    • Apex permite integrar Salesforce con otros sistemas y servicios a través de APIs web, lo que facilita la comunicación y la sincronización de datos entre diferentes plataformas.
  4. Manipulación de Datos:

    • Apex proporciona capacidades avanzadas para manipular datos en la base de datos de Salesforce, incluyendo la creación, lectura, actualización y eliminación de registros.

Ejemplo. Calcular el número de pulsaciones de una persona. Los datos de entrada serán:

  • Edad.
  • Peso y
  • Nombre.
public class HeartRateCalculator {
    // Método para calcular el número de pulsaciones por minuto
    public static Double calculateHeartRate(Integer age, Double weight) {
        // Aplicar la fórmula para calcular las pulsaciones
        Double heartRate = 210 - (0.5 * age) - (0.11 * weight);
        return heartRate;
    }
    
    // Método para ejecutar algunos cálculos de ejemplo
    public static void runExample() {
        // Datos de prueba
        Integer[] ages = new Integer[]{25, 30, 40, 35};
        Double[] weights = new Double[]{70.0, 60.0, 80.0, 55.0};
        String[] names = new String[]{"Juan", "Maria", "Pedro", "Ana"};
        
        // Iterar sobre los datos de prueba y calcular las pulsaciones
        for (Integer i = 0; i < ages.size(); i++) {
            Double heartRate = calculateHeartRate(ages[i], weights[i]);
            System.debug('Nombre: ' + names[i] + ', Edad: ' + ages[i] + ', Peso: ' + weights[i] + ', Pulsaciones: ' + heartRate);
        }
    }
}

A primera vista parece ser un código hecho en Java. Apex posee una sintaxis similar a ese lenguaje por lo que a los programadores Java no podría causarles mucha dificultad aprender a usarlo.

Tipos de Datos Primitivos

  1. Integer:

    • Representa números enteros. Ejemplo: Integer age = 25;
  2. Double:

    • Representa números de punto flotante de doble precisión. Ejemplo: Double price = 19.99;
  3. Long:

    • Representa números enteros de mayor tamaño que Integer. Ejemplo: Long distance = 123456789L;
  4. Decimal:

    • Representa números decimales de alta precisión. Útil para cálculos financieros. Ejemplo: Decimal salary = 12345.67;
  5. String:

    • Representa una cadena de caracteres. Ejemplo: String name = 'John Doe';
  6. Boolean:

    • Representa un valor de verdadero o falso. Ejemplo: Boolean isActive = true;
  7. Date:

    • Representa una fecha. Ejemplo: Date today = Date.today();
  8. Time:

    • Representa una hora sin fecha. Ejemplo: Time now = Time.now();
  9. Datetime:

    • Representa una fecha y una hora. Ejemplo: Datetime now = Datetime.now();
  10. ID:

    • Representa un identificador único de un registro en Salesforce. Ejemplo: ID recordId = '001D000000IRFMA';

Colecciones

List

List<String> names = new List<String>{'Alice', 'Bob', 'Charlie'};

Set

Set<Integer> uniqueNumbers = new Set<Integer>{1, 2, 3};

Map

Map<String, Integer> nameToAge = new Map<String, Integer>{'Alice' => 30, 'Bob' => 25};

sObject

Account acc = new Account(Name = 'Acme Corporation');

Enumerations (Enum)

public enum Weekdays {
    Monday, Tuesday, Wednesday, Thursday, Friday
}
Weekdays today = Weekdays.Monday;

Classes

public class Person {
    public String name;
    public Integer age;

    public Person(String name, Integer age) {
        this.name = name;
        this.age = age;
    }
}
Person p = new Person('John Doe', 30);

Ejemplo. Uso de tipos en Apex.

public class Example {
    public static void runExample() {
        // Primitivos
        Integer age = 25;
        Double price = 19.99;
        String name = 'John Doe';
        Boolean isActive = true;
        Date today = Date.today();
        Time now = Time.now();
        Datetime currentTime = Datetime.now();
        ID recordId = '001D000000IRFMA';

        // Colecciones
        List<String> names = new List<String>{'Alice', 'Bob', 'Charlie'};
        Set<Integer> uniqueNumbers = new Set<Integer>{1, 2, 3};
        Map<String, Integer> nameToAge = new Map<String, Integer>{'Alice' => 30, 'Bob' => 25};

        // sObject
        Account acc = new Account(Name = 'Acme Corporation');

        // Enum
        public enum Weekdays {
            Monday, Tuesday, Wednesday, Thursday, Friday
        }
        Weekdays today = Weekdays.Monday;

        // Custom class
        public class Person {
            public String name;
            public Integer age;

            public Person(String name, Integer age) {
                this.name = name;
                this.age = age;
            }
        }
        Person p = new Person('John Doe', 30);

        // Debugging outputs
        System.debug('Age: ' + age);
        System.debug('Price: ' + price);
        System.debug('Name: ' + name);
        System.debug('Is Active: ' + isActive);
        System.debug('Today: ' + today);
        System.debug('Current Time: ' + currentTime);
        System.debug('Record ID: ' + recordId);
        System.debug('Names: ' + names);
        System.debug('Unique Numbers: ' + uniqueNumbers);
        System.debug('Name to Age Map: ' + nameToAge);
        System.debug('Account: ' + acc);
        System.debug('Today is: ' + today);
        System.debug('Person: ' + p.name + ', Age: ' + p.age);
    }
}

Esto solo es un vistazo al lenguaje, en próximas entregas continuaremos con el tema.

Enlaces:

https://www.salesforce.com/mx/

No hay comentarios:

Publicar un comentario

Vibe Coding (la programación vía IA): ¿el futuro de la programación?

Vibe Coding es un nuevo paradigma de programación, una nueva forma de crear código. Es un enfoque emergente en el desarrollo de sof...

Etiquetas

Archivo del blog