Esta es una traducción que desde EGA Futura ofrecemos como cortesía a toda la Ohana y comunidad de programadores , consultores , administradores y arquitectos de Salesforce para toda Iberoamérica .
El enlace a la publicación original, lo encontrarás al final de este artículo.
…
La marcha continua hacia los estándares abiertos
Hay otro gran beneficio en la introducción de estas dos API desde el punto de vista de la dotación de personal para los proyectos de integración de Salesforce. El uso de lenguajes y protocolos estándar de la industria amplía la accesibilidad de Salesforce Platform a más desarrolladores. Como desarrollador que ya conoce gRPC o GraphQL, estas API le facilitarán más que nunca la preparación para trabajar con Salesforce.
Más información sobre las nuevas API de Pub/Sub y GraphQL
Lightning Web Security: como Locker, solo que mejor
Cuando lanzamos Lightning Components en 2014, la promesa de elementos de interfaz de usuario personalizados sin el dolor de un iFrame hizo que todos los desarrolladores de Visualforce se emocionaran. Luego, la seguridad del producto de Salesforce nos trajo a todos de vuelta a la Tierra con la realidad de lo que significaría para cada desarrollador (el nuestro, el suyo, el de su proveedor de aplicaciones de AppExchange) tener acceso libre y gratuito a cada elemento DOM en la interfaz de usuario de Salesforce. Y así nació el servicio Locker .
Desde entonces, los desarrolladores han aprendido a trabajar con él, a su alrededor, y a aprovechar al máximo la creación de interfaces de usuario personalizadas. Pero los equipos de producto e ingeniería de UI se dispusieron a encontrar una mejor manera. De esa manera es Lightning Web Security (LWS).
Anteriormente, el desafío era la falta de funciones del navegador. Aparte de un iFrame, no había una forma nativa de aislar un elemento de la interfaz de usuario y evitar que se viera comprometido por otro código en el DOM. Una de las iniciativas más emocionantes en la historia reciente de Salesforce es nuestra participación activa en el proceso de estándares web y nuestra estrecha asociación con proyectos y proveedores de navegadores. A través de este enfoque cooperativo, Salesforce influye en las nuevas funciones que se introducen en los estándares web y, finalmente, en los navegadores que admiten el desarrollo con Salesforce. La propuesta de ShadowRealm es una de esas características. Agrega un objeto global, virtualizado y en espacio aislado que constituye la base de LWS.
LWS hace uso de esta función de sandboxing nativa. Esto significa que puede equilibrar mejor la seguridad con la usabilidad, el rendimiento y la integración entre los componentes de la interfaz de usuario. LWS promete brindar más flexibilidad a su trabajo de LWC a través de más bibliotecas JS disponibles. También puede haber beneficios de rendimiento para LWS sobre Locker Service.
Para habilitar LWS, vaya a Configuración > Configuración de sesión en su organización. En la mayoría de los casos, no debería requerir cambios en su código, pero esto no está garantizado (ya sea que el código sea suyo o de las aplicaciones de AppExchange). Asegúrese de habilitarlo y probarlo en un espacio aislado antes de habilitarlo en producción.
Más información sobre LWS
Ganancias de paridad de características de LWC a Aura
Lanzar una ventana modal usando LWC y hacer que su LWC muestre un flujo de pantalla han sido dos elementos importantes en el camino para lograr que Lightning Web Components tenga paridad de características con Aura.
Desde el momento en que se lanzó LWC, los desarrolladores han estado preguntando cuándo habría un LWC que proporcionara las funciones modal y popover al estilo del componente <lightning:overlayLibrary/>
Aura. Bueno, no espere más: ahora puede crear componentes que se pueden usar como superposiciones modales haciendo que su módulo LWC importe y amplíe la clase JavaScript LightningModal
. Esta es una característica muy nueva recién lanzada en Winter '23.
Aquí hay un ejemplo de un componente modal que usa la clase LightningModal
:
Si bien Flow ha tenido una gran cantidad de características nuevas en Winter 23, quiero mencionar el componente base lightning-flow
, que le permite mostrar un Flujo de pantalla de LWC. De ahora en adelante, cuando un flujo de pantalla sea la mejor manera de resolver ese problema, puede hacer que funcione en LWC.
Las publicaciones de blog para lightning-modal
y para incrustar flujo en LWC acaban de publicarse en diciembre, por lo que no dedicaré mucho tiempo a repetirlas. Pero baste decir que tener estas características integradas en LWC hará que la vida de cada desarrollador sea mucho más fácil.
Más información sobre estas mejoras de LWC
La clase de afirmación
Soy un ávido ciclista de montaña. La primera vez que usé una tija de sillín con cuentagotas ajustable operada a distancia (generalmente conocida como tija con cuentagotas), cambió fundamentalmente la forma en que montaba mi bicicleta y cuánto disfrutaba al ir cuesta abajo. Moverse entre una buena altura de pedaleo y poder tener mi asiento fuera del camino de mi trasero y piernas fue la respuesta a un problema que no sabía que tenía. La clase Assert
Apex es un poco así.
¿Quién sabía que tener tres métodos de afirmación completos era limitante? Quiero decir, ¿qué más necesita, sino poder hacer assert(Boolean)
, assertEquals(Any, Any)
, y assertNotEquals(Any, Any)
?
Resulta bastante.
La clase Assert le brinda un montón de azúcar sintáctico en forma de evaluaciones condicionales nuevas y más específicas que un desarrollador puede usar al probar su código Apex. Digamos que necesita verificar que una variable sea de un tipo específico. Eso está cubierto. ¿Quieres comprobar si hay un valor nulo? Eso también está cubierto.
Y ya no tendrá que razonar sobre cómo hacer que su condición de afirmación resulte con un valor booleano específico, ya que cada forma de evaluación viene con un método que busca una comparación true
y una comparación false
. Por ejemplo, verificar que la instancia sea de un tipo específico se puede hacer con isInstanceOfType()
o isNotInstanceOfType()
.
Como compartimos contigo en una publicación de blog reciente, puedes ver la diferencia entre las dos formas de probar un resultado.
Aquí hay un ejemplo del antiguo método System.assert()
:
Y aquí hay un ejemplo con Assert.isInstanceOfType()
:
Tener la intención de la prueba en el nombre del método que está utilizando para la prueba hace que las cosas sean aún más claras.
Incluso hay un método llamado fail()
, que lanza una excepción de aserción sin tener que usar la técnica did-they-mean-to-do- assertEquals(false)
.
Y al igual que con los métodos del sistema anteriores, cada método está sobrecargado con una firma de método que le permite escribir su propio mensaje personalizado cuando falla la afirmación.
Con todo esto, le resultará más fácil escribir pruebas de Apex y razonar sobre las pruebas de Apex que encuentra en su base de código existente.
Así que sí, tal vez no necesites la clase Assert
en el sentido más puro de la palabra… tal vez yo tampoco necesitaba mi cuentagotas. Pero todos seremos más felices con ellos.
Más información sobre la clase Assert
Centro DevOps
Una buena gestión y gobierno del ciclo de vida del software puede marcar una gran diferencia entre el éxito de los proyectos y la eficiencia de los equipos. Con la combinación única de código y sin código de Salesforce, querrá una herramienta diseñada para el trabajo.
DevOps Center se diseñó teniendo en cuenta esta amplia gama de personalizaciones de aplicaciones. También atiende a una gama igual de amplia de niveles de habilidad. Ya sea que solo se trate de construir en el menú Configuración o que haya dominado la línea de comando (o cualquier otra cosa), DevOps Center es para usted.
DevOps Center está diseñado para llevar el ecosistema de Salesforce más allá de los conjuntos de cambios. Ofrece integración con GitHub, canalizaciones, integración con organizaciones de desarrollo (como sandboxes y organizaciones borrador) y muchas otras funciones. Por lo tanto, no importa cuál sea la composición de su equipo, puede razonar sobre cómo crea e implementa funciones para Salesforce.
Más información sobre DevOps Center
Menciones honoríficas
Obviamente, lanzamos demasiadas funciones en 2022 para resumirlas todas en una breve publicación de blog. Y mis selecciones se basan en mis propias impresiones y en cómo uso Salesforce. Mientras el equipo discutía qué funciones se lanzaron el año pasado, surgieron otras. Los siguientes son algunos que debería considerar investigar si aún no lo ha hecho.
Conclusión
Cada año bendice a los desarrolladores de Salesforce con nuevas funciones y desarrollos en la plataforma. El lanzamiento regular de nuevas funciones es una de las cosas que atrae a muchos desarrolladores para trabajar con Salesforce. ¿Y usted? ¿Cuáles son tus características favoritas de 2022? Si desea compartir, asegúrese de anunciarlo en las redes sociales y mencionarnos en Twitter o LinkedIn .
Sobre el Autor
Peter es un defensor de los desarrolladores y se ha centrado en la habilitación de desarrolladores durante 20 años. Dirige el equipo de defensores de desarrolladores de Salesforce Platform en América del Norte y EMEA. Encuéntralo en Twitter: @pchittum.
Obtenga las últimas publicaciones de blog de desarrolladores de Salesforce y episodios de podcast a través de Slack o RSS.
Agregar a Slack Suscríbete a RSS
…
Esta es una traducción realizada por EGA Futura, y este es el link a la publicación original: https://developer.salesforce.com/blogs/2023/01/2022-in-review-new-developer-features-from-the-past-year.html