¿Qué diablos es todo esto de Apex? Conoce a Salesforce' s programming language

12 Jun ¿qué diablos es todo esto de Apex?

publicado en 13:47hin ProgrammingbyCloudity

En palabras nerds cortas, Apex es un lenguaje de programación orientado a objetos fuertemente escrito. Es un lenguaje propietario de la plataforma Lightning que se guarda y se ejecuta en la plataforma de nube multi-tenant.

he oído que esto es una especie de Java

sintácticamente, Sí, Apex es similar a Java., Si puedes programar en Java, ¡estás muy cerca de ser un desarrollador Apex! Pero no, esto no es Java. Está compilado como Java, tiene una máquina virtual Java en segundo plano, en algún lugar, pero no es una VM completa, solo la parte de ella.

si realmente está interesado en los detalles, bueno, son internos solo de Salesforce, pero puede obtener algunos detalles agradables en esta patente: patente US20110264861: métodos y sistemas para utilizar bytecode en un entorno de servicio bajo demanda, incluido el suministro de entornos y sistemas de tiempo de ejecución multitenant.,

he oído que en Apex no puedo hacer X, Y, Y Z – ¿por qué debería incluso perder mi tiempo leyendo sobre algún idioma extraño!

puede tratarlo en un nivel alto como una versión simplificada de Java.

pero bueno, ¿realmente necesitas ArrayList, LinkedList, Stack, Vector, TreeSet, LinkedHashSet, HashSet, HashMap, TreeMap y muchos más solo para almacenar algunos registros?

en Apex hay Lista, conjunto y mapa. Fácil de elegir, Fácil de usar!

este es un lenguaje para hacer el trabajo. Y sí, puedes hacer inyecciones de dependencia si quieres.,

según Salesforce: Apex es exclusivamente para crear aplicaciones empresariales para Administrar datos y procesos dentro del contexto más amplio del marco de la plataforma Apex Lightning. Pero dentro del alcance de las aplicaciones empresariales, Apex Code proporciona un enfoque único y productivo para crear funcionalidad y lógica, lo que permite a los desarrolladores centrarse solo en los elementos específicos de su aplicación, mientras que deja el resto de la «plomería» al marco de la plataforma.

reclamo bastante fuerte! ¿No es sólo un poco de marketing? ¡NO!,

pero, por favor, si realmente desea pasar el 95% de su tiempo configurando servidores, bases de datos, microservicios, interfaces, puertas de enlace, equilibradores de carga, copias de seguridad e implementación.. ah y sí, seguridad y redundancia: elija otro idioma y otra plataforma.

Apex es:

  • integrado con la base de datos-puede hacer consultas y bucles en línea, por ejemplo, obtener Id y nombre de la tabla de contactos (1) que obtuvo la dirección postal en Polonia, pero por favor únase a la tabla de Cuentas (2) y elija solo los contactos en cuentas que obtuvieron «soft» en el nombre., Iterar sobre la lista, introducir cambios (3) y luego simplemente empuje la actualización de nuevo en la base de datos (4). ¿Cuánto trabajo necesitas hacer en otro idioma? ¡Mira esto!

  • versionada, puede tener varias clases llamándose entre sí y todas esas clases pueden ejecutarse en su propia versión – sí, este Apex de 10 años de antigüedad puede trabajar conjuntamente con esas brillantes características nuevas que acaba de construir! Y tienes 3 grandes lanzamientos por año. Cada versión = nuevas características.,
  • Fácil de usar – la sintaxis es similar a Java, los métodos Apex están bien documentados y hay una comunidad muy fuerte a su alrededor.
  • Rigorous-Apex está fuertemente escrito y compilado. Falla rápidamente en tiempo de compilación si alguna referencia no es válida. Almacena todas las dependencias de campos, objetos y clases personalizadas en metadatos para garantizar que no se eliminen mientras el código de Apex activo las requiera. Por lo tanto, ¡nadie eliminará una columna en la base de datos si la está utilizando!,
  • transaccional – todas las operaciones DML en una transacción se completan correctamente o, si se produce un error en una operación, la transacción completa se revierte y no se confirma ningún dato en la base de datos – ¡automáticamente!
  • Packable – puede empacar su código y venderlo en AppExchange! O simplemente tome algunos componentes listos y reutilícelos en su instancia.

si realmente tengo que hacerlo, ¿Dónde puedo usarlo?

En una palabra, todo el backend! ¿Y cuál es el backend de Salesforce?,

bloques anónimos:

puede utilizar bloques anónimos, compilados y ejecutados sobre la marcha, no almacenados en ningún lugar.

¿quieres hacer una corrección rápida de datos? ¡Sin problemas! Enviar algunos correos electrónicos? ¡Adelante!

disparadores:

¡Sí, el mismo idioma! Los disparadores de Apex le permiten realizar acciones personalizadas antes o después de los cambios en los registros de Salesforce, como inserciones, actualizaciones o eliminaciones.

controladores en patrones MVC:

sí, de nuevo. El mismo idioma. Cúspide.

servicios Web REST y servicios Web SOAP:

¿Por qué no? Exponga los datos que desea, en las reglas que desea con OAuth2.,0 o autenticación totalmente personalizada. ¡En unas pocas líneas de código! Aquí tenemos un punto final de «Cuenta» donde pasa el Id a través de URI y obtiene algunos detalles adicionales al respecto.

procesamiento de correo electrónico:

puede exponer una dirección de correo electrónico en Salesforce y realizar cualquier procesamiento de correo electrónico personalizado. Por ejemplo: Si recibe un correo electrónico y no tiene un contacto conectado con ese correo electrónico, puede crear uno.

desarrollo basado en eventos:

¡Sí! Sí! Sí! ¡Tienes un bus de eventos de nivel empresarial que puedes usar en tu código! ¿Alguien dijo «Kafka»?,

entorno sin servidor basado en Kubernetes

Salesforce Evergreen incorpora funciones sin servidor basadas en Kubernetes totalmente administrados, compatibilidad con lenguajes de programación abiertos y almacenes de datos de alto rendimiento de uso común. Evergreen soporta tecnologías y patrones arquitectónicos como:

  • Functions-as-a-Service (Node.js, Java y Apex)
  • microservicios
  • almacenes de datos administrados (Postgres, Apache Kafka y Redis)

¡Sí, todas esas cosas bonitas y brillantes en esa fea plataforma de Salesforce! Tal vez no tan mal al final?

he oído que los desarrolladores lo odian!,

Apex impone buenas prácticas de programación mediante 2 características de diseño principales:

  • implementación forzada de prueba
  • límites del gobernador

así que sí, si no le gusta probar y escribir código óptimo, no le gustará, ¡lo siento!

Pruebas!

es fácil de probar, Apex tiene soporte incorporado para la creación y ejecución de pruebas unitarias, sabe exactamente qué línea está cubierta y cuál necesita atención adicional. Puede simular los servicios externos, por lo que también las integraciones de API REST y API SOAP pueden estar bien cubiertas.,

y-simplemente no puede enviar el código a la producción si al menos el 75% del código no está probado por unidad! ¡Odio!!!

¡límites de gobernanza!

¿te gusta escribir consultas de base de datos en for loop? ¡Serás castigado!

¿le gusta consultar toda la tabla de la base de datos si solo necesita 2 campos en 4 registros de 10 millones de tablas de registros con 500 columnas? ¡Serás castigado!

¿te gusta usar algoritmos O(n^4)? ¡Sí, serás castigado!

pero bueno, simplemente puedes empezar a escribir buen código!, Debido a que Apex se ejecuta en un entorno multitenant, el motor de tiempo de ejecución de Apex aplica estrictamente los límites para que el código o los procesos de Apex fuera de control no monopolicen los recursos compartidos. Si algún código de Apex excede el límite, el gobernador asociado emite una excepción de tiempo de ejecución que no se puede manejar.

¿hay puestos de trabajo allí para todo este ápice?

bueno, conozco a muchas personas que han estado programando en Java y han entrado en el mundo de Salesforce. No recuerdo ninguna salida de Salesforce para Java. Hmm Money

¿dinero? Interesante trabajo? ¿Varias tareas? Diferentes aplicaciones?, Ni idea de cuál es la razón!

Por lo general, decimos que tenemos a alguien llamado desarrollador de Salesforce. Tal persona está trabajando principalmente con backend-Sí, Apex. Pero, la mayoría de los desarrolladores son más como «ninjas» – tenemos una gran cantidad de frontend en Salesforce en forma de Lightning Web Components (marco de componentes web moderno), Lightning Components (un poco más antiguo, basado en Aura framework) o Visualforce Pages (patrón MVC)., Cuando trabaja con Salesforce, amplía sus conocimientos no solo sobre Apex (un potente lenguaje de programación orientado a objetos de backend), sino también sobre JavaScript, HTML5, CSS3 y tecnologías web modernas.

OK, así que puedo aprenderlo en algún lugar sin pagar mucho dinero?

Salesforce tiene una edición para desarrolladores que es de uso gratuito.

también hay una plataforma de inicio de Sendero https://trailhead.salesforce.com/ donde puedes aprender desde el nivel principiante hasta el nivel de Arquitecto de forma gratuita!, Esta plataforma de aprendizaje está fuertemente gamificada con temas de la vida real, divididos en partes fácilmente digeribles de 15-20 minutos.

y sólo google – hay una gran cantidad de materiales de alta calidad disponibles a su alcance!

Author: admin

Deja una respuesta

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