Al fin después de mucho trabajar hemos dado con la contestación de esta duda que muchos lectores de este sitio web han tenido. Si tienes algún detalle que compartir no dudes en aportar tu comentario.
Solución:
Mis dos conclusiones principales de lo que vi fueron:
- Scratch Orgs: ahora habrá una forma más rápida y desechable de configurar sandboxes y podrá configurar qué partes de su organización se copiarán.
- Integración continua: ahora hay un enfoque en el control de código fuente y su uso real para impulsar el proceso de desarrollo. Creo que habrá un aspecto CI en el programa DX.
Ciertamente, esa opinión se refuerza en el Salesforce Developers Blog
en Salesforce DX = UX para desarrolladores:
Uno de los cambios más importantes con Salesforce DX es que, al externalizar más metadatos y la forma de la organización, podemos cambiar la “fuente de la verdad” de la aplicación de la organización de Salesforce a un sistema de control de versiones. Los desarrolladores han utilizado este enfoque de desarrollo estándar basado en fuentes durante años, y ahora es una parte fundamental de la experiencia del desarrollador de Salesforce.
Otro key La innovación para Salesforce DX es algo que llamamos organización temporal. La organización temporal es un tipo de organización completamente nuevo creado específicamente para desarrolladores y automatización. Es efímero, se crea rápidamente a partir de su fuente y metadatos, y facilita la creación de su aplicación de forma coherente una y otra vez, lo que es excelente para la colaboración en equipo y la automatización de pruebas.
Vale la pena señalar que las organizaciones de scratch no son un reemplazo para las cajas de arena. Los entornos sandbox son una parte importante del ciclo de vida de desarrollo más amplio y funcionan con nuestro nuevo proceso de desarrollo impulsado por el origen como el destino de los paquetes creados directamente desde el origen. Todos los tipos de sandbox, desde el desarrollador hasta el completo, ofrecen la capacidad de actuar como pruebas de aceptación del usuario (UAT) y entornos de ensayo de la organización de producción.
También estoy muy emocionado con Salesforce Environment Manager, una herramienta que hemos creado para facilitar la gestión de las organizaciones que utiliza como parte del proceso de desarrollo. La mayoría de estas organizaciones serán organizaciones reutilizables, pero también le permite administrar su caja de arena y las organizaciones de producción. Además, Salesforce Environment Manager facilita la vinculación de sus organizaciones a Heroku para que puedan participar dentro de Heroku Pipelines, nuestra herramienta de entrega continua.
Otra parte de lo que están entregando es una actualización del IDE de Force.com, y aunque no lo llamaría una conclusión principal, fue otra área de énfasis en su stand en la que ahora podrá acceder a la documentación de texto flotante en muchos (¿todos?) componentes durante el desarrollo, al menos a través de Eclipse.
También hay una página de producto configurada que enumera más información:
Desarrollo impulsado por fuentes
Salesforce DX ofrece una integración perfecta con Heroku Flow, que admite implementaciones automatizadas fuera de los repositorios de GitHub; canalizaciones de aplicaciones que agilizan el desarrollo, la puesta en escena y la implementación en producción; y un conjunto de pruebas estrechamente integrado para admitir la integración continua. Salesforce DX también permite a los desarrolladores conectarse a herramientas de automatización de creación y prueba de terceros.
Integración y entrega continuas
Permita que los desarrolladores se conecten a pruebas de terceros y creen herramientas de automatización para una integración y entrega continuas. Salesforce DX también ofrece integración con Heroku Flow, que admite implementaciones automatizadas fuera de los repositorios de GitHub; canalizaciones de aplicaciones que agilizan el desarrollo, la puesta en escena y la implementación en producción; y un nuevo conjunto de pruebas para admitir la integración continua.
Herramientas de desarrollo
Salesforce DX es una experiencia de desarrollador estándar y abierta que le permite crear con las herramientas que ama, como Git, Selenium, Eclipse, Sublime y más. Salesforce DX incluye un entorno de desarrollo integrado (IDE) Eclipse actualizado que amplía significativamente el valor del conjunto de herramientas para los desarrolladores.
Scratch Orgs
Salesforce DX presenta un nuevo tipo de entorno de Salesforce, la organización temporal, una implementación desechable y basada en fuentes de código y metadatos de Salesforce. Las organizaciones de Scratch son completamente configurables, lo que permite a los desarrolladores emular diferentes ediciones con diferentes características y preferencias, desempeñando un papel fundamental en el impulso de la productividad y la colaboración de los desarrolladores durante el proceso de desarrollo. También se pueden utilizar como parte de pruebas automatizadas y la implementación de una suite de integración continua completa.
Una nueva interfaz de línea de comandos
Aproveche una nueva interfaz de línea de comandos (CLI) de Salesforce en toda la plataforma de Salesforce. Salesforce DX permite a los desarrolladores crear fácilmente entornos para el desarrollo y las pruebas, sincronizar el código fuente, crear y ejecutar conjuntos de pruebas y controlar el ciclo de vida completo de la aplicación desde la CLI.
Embalaje reinventado
Salesforce DX se aleja del concepto tradicional de conjuntos de cambios al reinventar cómo se puede realizar el empaquetado para las aplicaciones de Salesforce. Los socios ISV y los clientes empresariales ahora pueden crear varios artefactos para optimizar el empaquetado, la implementación y el mantenimiento del software personalizado creado en la plataforma Salesforce.
He escrito una publicación de blog razonablemente extensa sobre lo que es SFDX, lo que no es y algunas de sus implicaciones más profundas. Descargo de responsabilidad: trabajo para Gearset en una herramienta de implementación / ALM para Salesforce, por lo que hay una sección sobre cómo se cruza con lo que estamos haciendo, pero la publicación definitivamente le dará otra perspectiva sobre las cosas nuevas (y con suerte no es demasiado spam – ¡La gente de SFDC lo ha estado retwitteando al menos!).
Sin embargo, para resumir brevemente mis pensamientos aquí:
Lo que es
SFDX es fundamentalmente una mentalidad o una filosofía. Para respaldar esta nueva filosofía, también incluye una serie de nuevas herramientas y características, que se pueden elegir y componer para construir un flujo de trabajo adecuado para su equipo, como se espera que quede claro si sigue leyendo. También es algo bueno, especialmente si eres un desarrollador, pero en el futuro será un gran paso positivo para cualquiera que construya sobre la plataforma.
Una nueva filosofía: La plataforma no se ha orientado tradicionalmente a atraer y retener el estilo más tradicional de desarrollador. Claro, hay muchos de nosotros trabajando en la plataforma, pero su empoderamiento de los menos técnicos para lograr grandes cosas con facilidad ha sido un factor más importante en su éxito. En comparación con otros ecosistemas, falta la experiencia de desarrollo. SFDX es un reconocimiento explícito de eso, y toma medidas para proporcionar más del tipo de herramientas a las que los desarrolladores tradicionales se han acostumbrado, por lo que la plataforma sigue siendo (y se vuelve más) una plataforma viable para más aplicaciones dependientes de desarrolladores. En el centro de esto está el “control de versiones como fuente de verdad”. Siguiendo las mejores prácticas de la industria observadas en casi todos los demás ecosistemas, SFDC afirma que la aplicación de producción en sí no debe considerarse la representación autorizada de una organización. En cambio, la versión de los metadatos de la organización debe estar controlada y la organización debe reflejar esta representación, en lugar de viceversa. Hay algunas herramientas nuevas para ayudar con esto:
CLI: Hay una nueva CLI sfdx que principalmente combina la funcionalidad de Force CLI y Ant, pero hay algunos bits nuevos interesantes, a saber, la importación de datos directamente desde un .json
archivo y comandos para manipular organizaciones reutilizables. Está construido sobre API públicas y será de código abierto, por lo que puede esperar que se vuelva más útil con el tiempo.
Organizaciones de scratch: Una nueva función: con la CLI puede poner en marcha una organización efímera con una configuración arbitraria y enviarle metadatos y datos. Esta es probablemente la característica principal para permitir un flujo de trabajo de desarrollo más tradicional y “el control de versiones como fuente de verdad”. Puede activar una organización a partir de sus metadatos controlados por versión en unos segundos, por lo que probablemente ya no tendrá que intentar mantener una organización DE sincronizada con su rama de funciones de git; en su lugar, puede crear y destruir estas organizaciones con abandono. con un solo guión.
Funciones que habilitan CI: Heroku Flow admitirá organizaciones como entornos de destino en el futuro. Esto significa que debería ser posible construir una canalización de implementación que pueda tomar cambios de su VCS y promoverlos entre entornos. Esto tiene como objetivo reemplazar el actual de facto (cuando se trata de herramientas de CI gratuitas) Una característica interesante es que los RP crearán automáticamente aplicaciones de revisión, por lo que cuando esté satisfecho con el estado de su sucursal, siempre habrá una representación en ejecución de él en una organización de scratch.
IDE de Force.com: Por lo que he visto, los cambios aquí se ven principalmente como algunos botones de conveniencia que se asignan directamente a las llamadas CLI. Sin embargo, eso es genial por derecho propio.
Se ha hablado de nuevos envases, pero todavía no he visto ni escuchado lo suficiente como para poder ofrecer una opinión informada. Dado que mucho de esto parece respaldado por la API de metadatos y, en cualquier caso, está restringido por la estructura subyacente de los metadatos, no estoy seguro de hasta dónde llegarán estas cosas para resolver algunos de los problemas existentes con la construcción de implementaciones. Esto puede parecer un poco cínico en la superficie: “usted haría decir eso, dado para quién trabajas “, pero en realidad esto se debe a que en Gearset pasamos una lote de tiempo analizando cómo los metadatos son interdependientes, los innumerables modos de falla de implementación y cómo mitigarlos. Por eso…
Lo que no es
- Disponible todavía (y afaik no hay fecha de lanzamiento, actualmente)
- Una solución para sus modos actuales de fallas de implementación: me relaciono con un montón de ejemplos del tipo de cosas que me refiero en la publicación del blog, pero pienso en dependencias faltantes, relaciones maestro-detalle, seguimiento del historial, soporte multidivisa, flujos de implementación, Control de versiones de API … y así sucesivamente 🙂 Parece que Heroku CI será una gran mejora con respecto a Jenkins + Ant para la mayoría de los propósitos, pero aún deberá asegurarse de que los paquetes que está creando se puedan implementar entre entornos, de lo contrario, solo está automatizando las fallas de implementación. (Enchufe descarado: Gearset facilita mucho la creación de paquetes de implementación)
- Para todos: ¡la pista está en el nombre! Está firmemente dirigido al desarrollador más tradicional. Hace que sea más fácil para los desarrolladores controlar las versiones de sus metadatos y, en general, llevar vidas más felices, pero no hay ninguna disposición para ayudar a las personas menos técnicas a trabajar desde el control de versiones. (Enchufe descarado: Gearset puede ayudar con esto)
Yendo hacia adelante
- Esperaría ver más versiones de tiendas controlando una gama más amplia de sus metadatos.
- Ya esperaba ver una disminución en el uso de Jenkins y otros servidores de CI más completos en las tiendas que se centran específicamente en SFDC, porque en la mayoría de los casos no son necesarios y son solo más infraestructura. para administrar. Heroku CI se unirá a las otras alternativas centradas en SFDC como Gearset (¡enchufe desvergonzado!) Y tuberías de Bitbucket.
- Espero ver mucho amor por las organizaciones reutilizables en la comunidad y entre los proveedores de herramientas de terceros: IDE que aceleran su instancia cuando presiona F5 y adjunta un depurador, herramientas de CI que las usan para construir sucursales y mucho más. Sé que estamos planeando algunas cosas interesantes con ellos 🙂
- Puede haber alguna innovación interesante en torno a la CLI y la integración con el IDE de Force.com dado que serán de código abierto y se construirán sobre API públicas, pero esto es un poco más difícil de predecir dadas algunas de las … idiosincrasias de estas API.
- Con eso en mente, espero que haya mejoras y expansiones en las API de metadatos y herramientas en el futuro, pero algunos de los problemas que enfrentamos realmente se deben a la estructura de los metadatos en sí, que tiene más inercia.
Muy bien, no tan breve como esperaba, aunque con suerte útil (… ¡y no demasiado autopromocional)! 🙂
Editar: esta publicación todavía recibe mucho interés unos años después: escribí un documento técnico sobre DX a fines del año pasado, que cubría qué es, por qué existe, para quién es y hacia dónde se dirige en un montón más. detalle. He tratado de evitar que sea spam o comercial, aunque menciona Gearset algunas veces, naturalmente. Puede descargarlo aquí, es gratis, no se requiere dirección de correo electrónico, etc. 🙂
Te invitamos a corroborar nuestro quehacer mostrando un comentario y puntuándolo te estamos agradecidos.