# architect Bien diseñado (well-architected) - Full Documentation
> Lea sobre nuestras programaciones de actualizaciones [aquí](/docs/architect/es-mx/well-architected/guide/contributors).
## Introducción
Una solución de Salesforce **adaptable** evoluciona con el negocio. Una solución bien diseñada para ser **adaptable** es resiliente y componible.
Las soluciones **resilientes** gestionan bien los cambios.
Las soluciones **componibles** se ajustan rápidamente y con mayor estabilidad.
La necesidad de cambio de negocio puede provenir de muchos orígenes: solicitudes de clientes, interrupciones del mercado o la industria u oportunidades de transformación digital. A veces los cambios son pequeños. A veces, los cambios son profundos. En los niveles más profundos, un cambio puede requerir que los negocios replanteen y cambien sus razones principales para operar y reevalúen el qué, cómo y dónde de sus ofertas de clientes. Las arquitecturas que son **adaptables** no solo ayudan a los negocios a sobrevivir y recuperarse de las interrupciones, sino que crean el potencial para que los negocios innoven y prosperen en tiempos de cambios profundos.
La creación de sistemas **adaptables** requiere un pensamiento arquitectónico creativo y preciso. Debe comenzar con una comprensión precisa de la trayectoria a corto y largo plazo del negocio. A medida que evalúa detalles de implementación individuales, debe tener en cuenta las repercusiones a lo largo de múltiples dimensiones y niveles de detalle. Hay que pensar en términos de personas, procesos y tecnología. Además, debe predecir simultáneamente impactos a nivel macro y micro, para el estado actual y cualquier estado futuro.
Las siguientes secciones proporcionan directrices más detalladas para cada uno de los comportamientos principales de una arquitectura de soluciones **adaptable**.
## Descripción general adaptable
| Resistente | ||
|---|---|---|
| Las soluciones resilientes gestionan bien los cambios. Las arquitecturas resilientes pueden volver al comportamiento y las operaciones esperados rápidamente y de formas predecibles. | ||
| Gestión del ciclo de vida de las aplicaciones | Respuesta de incidentes | Planificación de la continuidad |
| Gestión de versiones Estrategia medioambiental Estrategia de prueba |
Tiempo de recuperación Capacidad de triaje Monitoreo y alerta |
Continuidad de negocio Continuidad de la tecnología |
| Componible | ||
| Las soluciones componibles se ajustan rápidamente y con mayor estabilidad. Las arquitecturas componibles están construidas en unidades que funcionan correctamente entre sí y se pueden intercambiar dentro y fuera de servicio. | ||
| Separación de preocupaciones | Interoperabilidad | Capacidad de empaquetado |
| Unidades funcionales Gestión de estado |
Mensajería y eventos Gestión de API |
Acoplamiento suelto Gestión de dependencias |
| Patrones | Antipatrones | |
|---|---|---|
| Diseño de procesos | En su organización:
- Cada flujo sirve a un único propósito específico - Cada paso realiza una tarea específica y granular - Los flujos están organizados en una estructura jerárquica que consta de un flujo principal y subflujos de soporte - Todas las entradas de usuario tienen un propósito claro dentro del flujo - Solo se solicita a los usuarios proporcionar datos cuando no se pueden utilizar datos del sistema existentes |
En su organización:
- Los flujos sirven para múltiples propósitos y requieren entradas adicionales para proporcionar contexto - Los flujos requieren entradas cuyos datos no se utilizan - Los grupos de pasos relacionados contienen funciones que se solapan con grupos de pasos en otros flujos - Los flujos solicitan entradas de usuario cuando se pueden utilizar datos almacenados en su lugar |
| En Apex:
- Cada clase sirve a un único propósito específico - Cada método realiza una tarea específica y granular - Todas las variables de entrada tienen un propósito claro dentro de la clase - La ejecución de código requiere un número mínimo de recursos |
En Apex:
- Las clases sirven para múltiples propósitos - Los métodos realizan múltiples tareas o los métodos realizan tareas que no se alinean con el propósito declarado de la clase de la que forman parte - Las variables de entrada no se utilizan actualmente en métodos - Métodos para recuperar datos innecesariamente desde la base de datos o desde sistemas externos |
|
| Lógica operativa | En flujo:
- Ninguna variable hace referencia a valores codificados (para tipos de registro, usuarios, etc.) - Todos los flujos y procesos iniciados automáticamente utilizan elementos de decisión y/o pausa para evaluar criterios de entrada y evitar bucles infinitos o ejecuciones contra grandes volúmenes de datos - Los flujos (incluyendo procesos) transfieren lógica a Apex en contextos de gran volumen de datos - Los subflujos se utilizan para las secciones de un proceso que se necesitan reutilizar en todo el negocio |
En flujo:
- Las variables tienen valores codificados - Los flujos (incluyendo procesos) deben desactivarse manualmente antes de cargas de datos masivas - Los flujos (incluyendo procesos) desencadenan avisos de "excepción no gestionada" - Incluso flujos sencillos causan regularmente errores relacionados con límites reguladores - Partes de un flujo se repiten entre flujos en vez de utilizar subflujos |
| En Apex:
- Ninguna variable hace referencia a valores codificados (para tipos de registro, usuarios, etc.) - Todos los criterios comodín aparecen en SOSL - SOQL está envuelto en try-catch
- No aparece ningún SOQL en un bucle - Las declaraciones SOQL son selectivas, incluyendo: -- sin uso de comparaciones de ME GUSTA o comparaciones de texto parcial
-- los operadores de comparación utilizan lógica positiva (es decir, INCLUDES, IN) como lógica principal o única
-- el uso de = NULL, != NULL es raro y/o siempre sigue un operador de comparación positivo
-- no aparecen declaraciones LIMIT 1
-- sin uso de la palabra clave TODAS LAS FILAS
| En Apex:
- Las variables tienen valores codificados - SOSL rara vez o no se utiliza de forma coherente para criterios de selección de comodines - SOQL no está envuelto en try-catch
- SOQL aparece dentro de bucles - Las declaraciones SOQL no son selectivas, incluyendo: -- Aparecen criterios de filtro ME GUSTA y comodín
-- las comparaciones que utilizan criterios NO, NO EN se utilizan como el operador de comparación principal o único
-- = NULL, != Los criterios se utilizan como el operador de comparación principal o único
-- Aparecen instrucciones LIMIT 1
-- Se utiliza la palabra clave TODAS LAS FILAS
| |
| En sus estándares de diseño y documentación:
- Las rutas de ejecución planificadas y potenciales para automatizaciones se describen claramente - Los casos de uso para operaciones síncronas y asíncronas en automatizaciones se describen claramente como parte de estándares de diseño |
En sus estándares de diseño y documentación:
- La invocación de automatización no está documentada - Los casos de uso para operaciones síncronas y asíncronas no se solucionan |
|
| KPIs | En su documentación:
- Los resultados para cada automatización son mensurables y con plazos definidos - Las partes interesadas responsables se enumeran para cada KPI |
En su documentación:
- Los KPI no existen para automatizaciones o tienen plazos poco claros para mediciones - Los KPI existen sin partes interesadas responsables |
| En reportes y tableros:
- Todas las mediciones relacionadas con los KPI están incluidas en al menos un reporte o tablero |
En reportes y tableros:
- Los reportes de KPI no existen o faltan mediciones relacionadas con algunos KPI |
| Patrones | Antipatrones | |
|---|---|---|
| Tratamiento de datos | En su diccionario de datos:
- Existen datos a nivel de campo y lógica de prioridad para todos los orígenes de datos y objetos de lago de datos - La asignación de campos desde el objeto de lago de datos al objeto de modelo de datos existe |
En su diccionario de datos:
- Los datos a nivel de campo y la lógica de priorización para orígenes de datos y objetos de lago de datos no están incluidos - La asignación de campos desde objetos de lago de datos a objetos de modelo de datos no está incluida |
| En su Apex:
- Todas las declaraciones DML síncronas o métodos de clase de base de datos se llevan a cabo antes de desencadenar contextos de ejecución - Las invocaciones Apex asíncronas utilizan colocables en cola para 'encadenar' DML complejos entre transacciones - Apex por lotes se utiliza exclusivamente para grandes volúmenes de datos - Apex @future no se utiliza o se utiliza con moderación, para llamadas o DML de objetos del sistema |
En su Apex:
- Las declaraciones DML aparecen regularmente en código que se invocará después de contextos de desencadenador - Apex asíncrono rara vez se utiliza - Las funciones Apex asíncronas se utilizan de forma arbitraria, incluyendo: -- Métodos futuros y Apex colocable en cola se utilizan de forma incoherente o indistinta -- Las operaciones de base de datos no tienen lógica clara y coherente para pasar la ejecución a Apex por lotes cuando sea necesario |
|
| En flujo:
- Todos los flujos iniciados en contexto de usuario abstraen todas las transacciones de contexto del sistema en subflujos, que se colocan coherentemente después de un elemento Pausa, para crear una nueva transacción - Secuencias complejas de operaciones de datos relacionadas se crean con Orchestrator (en vez de invocar múltiples subflujos dentro de un flujo monolítico) - Todos los flujos desencadenados por registros tienen valores de orden de desencadenamiento rellenados - Los flujos que implican llamadas del sistema externo o procesos de larga ejecución utilizan rutas asíncronas |
En flujo:
- Los flujos grandes y monolíticos intentan coordinar secuencias complejas de operaciones de datos relacionadas (con o sin subflujos) - Los flujos desencadenados por registro no utilizan atributos de orden de desencadenador en absoluto o no utilizan valores de orden de desencadenador de forma coherente - Las rutas asíncronas no se utilizan de forma coherente o en absoluto |
|
| En su organización:
- Reglas de reconciliación de Resolución de identidad siguen la lógica de prioridad en su diccionario de datos |
En su organización:
- Las reglas de reconciliación de Resolución de identidad no siguen la lógica de prioridad en el diccionario de datos |
|
| Tratamiento de errores | En Apex:
- El código encierra todos los DML, SOQL, llamadas y otros pasos de proceso críticos en bloques de captura de intentos
- Se utilizan excepciones personalizadas para crear lógica y mensajería de error avanzada - En contextos asíncronos y masivos, se utilizan métodos de clase de base de datos en vez de DML - Los métodos de clase de base de datos pueden utilizarse exclusivamente para todas las operaciones de datos (en vez de DML) |
En Apex:
- DML, SOQL, llamadas u otros pasos de proceso críticos no están incluidos de forma coherente en bloques de captura de intentos
- Las declaraciones System.debug aparecen en código de producción (y no se comentan)
- No se utilizan métodos de clase de base de datos - Las operaciones de datos se realizan exclusivamente con DML |
| En Componentes web Lightning (LWC):
- JavaScript encierra todas las operaciones de datos y pasos de procesos críticos en bloques si () / si ()
- Todas las funciones @wire utilizan propiedades de datos y errores proporcionadas por la API
- Todas las declaraciones si (error) / si (error) contienen lógica para procesar errores y proporcionar mensajes informativos |
En LWC:
- JavaScript no utiliza coherentemente si () / si () bloques con operaciones de datos o pasos de procesos críticos
- Las funciones @wire no utilizan propiedades de datos y errores proporcionadas por la API (o no las utilizan de forma coherente)
- Si se utiliza en absoluto, si (error) / si (error) declaraciones no contienen realmente lógica para procesar errores y proporcionar mensajes de error útiles |
|
| En Aura:
- JavaScript encierra todas las operaciones de datos y pasos de procesos críticos en bloques de intento
- Dentro de los bloques de captura de intentos, el Error de JavaScript nativo se utiliza en declaraciones throw (sin uso de $A.error())
- Toda la lógica de error recuperable aparece en declaraciones de caché y proporciona mensajes de usuario claros |
En Aura:
- JavaScript no encierra de forma coherente operaciones de datos y pasos de procesos críticos en bloques de intento
- Los componentes utilizan $A.error()
- La lógica de error recuperable no aparece de forma coherente en declaraciones de caché, y los mensajes de error a usuarios no son claros |
|
| En flujo:
- Los flujos de pantalla utilizan de forma coherente conectores de fallos para mostrar errores a usuarios - Los mensajes de error personalizados están configurados para errores que aparecerán en pantalla - Los flujos con operaciones de datos, llamadas y otra lógica de procesamiento crítica tienen rutas de fallo para todas las acciones clave |
En flujo:
- Los flujos no utilizan rutas de fallo de forma coherente o en absoluto - Los mensajes de error personalizados no se utilizan, de modo que los usuarios ven el mensaje predeterminado "Se produjo un fallo no gestionado en este flujo" |
| Herramienta | Descripción | Eficiencia | Integridad de datos | Valor de negocio |
|---|---|---|---|---|
| Lotes Apex | Registros por lotes juntos y procesarlos en partes gestionables | X | X | |
| Métodos futuros Apex | Ejecutar métodos Apex de forma asíncrona en segundo plano | X | X | |
| Pex Queueing | Agregar trabajos Apex a una cola y monitorearlos | X | X | |
| Apex Scheduler | Ejecutar clases Apex asíncronamente en horas especificadas | X | X | |
| Aprobaciones | Especificar los pasos requeridos para aprobar registros | X | X | |
| Apex asíncrono | Ejecutar código Apex asíncronamente | X | X | |
| Acciones automatizadas | Realizar actualizaciones de campo, envíos de email y otras acciones en segundo plano | X | X | |
| Einstein Next Best Action | Mostrar las recomendaciones correctas a las personas correctas en el momento correcto | X | X | |
| Alerta de email | Crear y enviar emails automatizados | X | X | |
| Acciones de distribución | Especificar acciones automatizadas a realizar para distribuciones de casos | X | X | |
| Actualización de campo | Actualizar valores de campo basándose en automatización | X | X | |
| Flow Builder | Crear automatizaciones con una interfaz de apuntar y hacer clic | X | X | |
| Extensiones de flujo | Acceder a variables almacenadas como entradas de componente en flujos | X | ||
| Biblioteca de plantillas de flujo | Utilizar plantillas para diseñar flujos específicos de la industria | X | X | |
| Desencadenador de flujo | Automatizar procesos de negocio complejos | X | ||
| Acciones invocables | Agregar funciones Apex a flujos | X | X | |
| Orquestador | Crear y gestionar automatizaciones de múltiples pasos | X | X | |
| Mensaje saliente | Enviar información desde un proceso automatizado con recibos y reintentos | X | ||
| Publicar eventos de plataforma con flujo | Publicar eventos a través de automatizaciones e interacciones de usuario | X | ||
| Optimizador de consultas | Utilizar selectividad e índices para mejorar el desempeño de consultas, reportes y vistas de lista | X | X | |
| Flujo de Salesforce | Crear automatizaciones de procesos declarativos con Flow Builder | X | X | |
| Enviar notificaciones con flujos | Enviar mensajes por SMS, WhatsApp o Facebook Messenger | X | X | |
| Enviar notificaciones con procesos | Enviar mensajes por SMS, WhatsApp o Facebook Messenger | X | X | |
| Modificador SOQL FOR UPDATE | Bloquear registros para evitar condiciones de carrera y problemas de seguridad de hilos | X | ||
| Estrategia Builder | Identificar recomendaciones para aflorar en páginas de registro | X | X | |
| Subflujos | Reducir la complejidad del flujo a través de la reutilización | X | ||
| Suscribirse a eventos de plataforma con flujo | Recibir mensajes publicados a través de automatizaciones | X | ||
| Acciones de tareas | Determinar detalles de asignación proporcionados a un usuario por una automatización | X |
| Recurso | Descripción | Eficiencia | Integridad de datos | Valor de negocio |
|---|---|---|---|---|
| Límites y reguladores de ejecución Apex | Obtenga información acerca de cómo el motor de tiempo de ejecución Apex aplica límites | X | X | |
| Recursos de gestión por lotes | Crear, gestionar, programar y monitorear trabajos por lotes | X | X | |
| Mejores prácticas para SOQL y SOSL | Mejorar el desempeño de consultas de aplicaciones con grandes volúmenes de datos | X | ||
| Plantilla de estándares de diseño | Crear estándares de diseño para su organización | X | X | X |
| Flujo masivo en transacciones | Diseñar flujos para operar con recopilaciones | X | X | |
| Consideraciones sobre datos de flujos | Obtenga información acerca de flujos desencadenados por programación para datos por lotes | X | X | |
| Depuración de flujos | Probar y solucionar problemas de flujos | X | ||
| Cómo se procesan las solicitudes | Obtenga información acerca de cómo Salesforce procesa trabajos rápidamente y minimiza fallos | X | X | |
| Plantilla de hoja de cálculo KPI | Determinar el valor de negocio de una medición concreta | X | X | |
| Realización de llamadas a sistemas externos desde acciones invocables | Llamar a sistemas externos desde un flujo utilizando Apex | X | ||
| Operaciones DML mixtas | Saber qué sObjects se pueden utilizar juntos para DML en la misma transacción | X | X | |
| Orden de ejecución | Comprender el orden de eventos para inserciones, actualizaciones y alteraciones | X | X | |
| Preguntas más frecuentes sobre Plan de consulta | Optimizar consultas que implican grandes volúmenes de datos | X | X | |
| Consideraciones sobre flujos desencadenados por programación | Comprender los comportamientos especiales de flujos desencadenados por programación | X | ||
| Control de transacciones | Generar un punto de guardado que especifique el estado actual de la base de datos | X | X | |
| ¿Qué sucede cuando falla un flujo? | Comprender la gestión de errores en flujos | X | X | |
| Guía de mejores prácticas de automatización de flujos de trabajo | Empezar a trabajar con la automatización de Salesforce | X | X | X |
| Trabajar con consultas SOQL muy grandes | Redactar consultas SOQL más eficientes | X |
Un sistema componible:
## Separación de preocupaciones
Concepto fundamental en la ingeniería de software y la arquitectura de sistemas, la _separación de preocupaciones_ implica identificar diversas preocupaciones dentro de un sistema más grande que puede separarse en unidades modulares. El logro de una fuerte separación de preocupaciones dentro de un sistema requiere la creación de unidades significativas para la lógica y funciones de aplicación en todo el sistema. Las unidades más pequeñas facilitan a los equipos de entrega y mantenimiento de aplicaciones la tarea de comprender cómo y dónde realizar cambios, con una interrupción mínima en el sistema más grande. Las unidades más pequeñas también dejan más claro cómo y dónde centrar el trabajo al abordar la [deuda técnica](/docs/architect/es-mx/well-architected/guide/intentional#deuda-técnica) y contribuyen a la [legibilidad](/docs/architect/es-mx/well-architected/guide/intentional#legibilidad) general de su sistema.
Puede crear una mejor separación de preocupaciones en su organización de Salesforce orientando a la capacidad de negocio y gestionando el estado.
### Unidades funcionales
Para sistemas de Salesforce, el mejor enfoque para la separación de preocupaciones aplica una perspectiva orientada al negocio para identificar y organizar unidades modulares (o funciones) dentro del sistema. Esto no se parece a una vista centrada en ingeniería, que identifica unidades basándose en su función técnica. Una perspectiva orientada al negocio en la separación de preocupaciones requiere organizar el código y las personalizaciones en su sistema basándose en el servicio que proporcionan al negocio y los usuarios de negocio. Adoptar este enfoque no significa ignorar el potencial de funciones técnicas redundantes o duplicadas en un sistema. En su lugar, significa que los servicios técnicos están claramente asignados a un principio de organización que en última instancia es transparente para el negocio.
La orientación a funciones de negocio ayuda a garantizar que las transferencias entre equipos de análisis de negocio y descubrimiento a equipos de entrega sean lo más sencillas posible. Si los generadores de aplicaciones no tienen idea de dónde se asignan sus unidades de trabajo en su arquitectura componible, tiene un panorama de aplicaciones desordenado, no componible. Las asignaciones poco claras entre el estado final requerido por el negocio y las unidades modulares en una organización también aumentan las posibilidades de que los equipos de desarrollo o proveedores construyan funciones redundantes en el sistema.
Considere lo siguiente para orientar las unidades funcionales a la capacidad de negocio:
- **Comience con trabajos por hacer**. Céntrese en los trabajos por hacer (JTBD) de los usuarios y el negocio en sí. Con Tony Ulwick a la vanguardia, el enfoque de JTBD se centra en comprender el “trabajo”, o propósito verdadero, que las personas están intentando lograr utilizando un producto o servicio. Es un nivel de abstracción superior a las tareas relacionadas con funciones de los usuarios o los pasos individuales en un proceso de negocio. Por ejemplo, tareas como comprobaciones duplicadas y validaciones de direcciones podrían recaer en una función de orden superior de “establecer una única vista del cliente”. Después de tener una idea clara de estas funciones de negocio de orden superior, puede comenzar a asignarles partes de su sistema.
- **Oriente a funciones, no a estructuras de creación** de reportes. La jerarquía interna de sus unidades de negocio no es un proxy para funciones significativas o trabajos por hacer. La jerarquía interna de su negocio tiene un impacto material en los procesos y las estructuras del equipo (por no mencionar los presupuestos). Esas son consideraciones logísticas importantes. Pero las necesidades funcionales del negocio operan en un nivel de abstracción superior a la logística. Si está creando un módulo para servir una estructura de creación de reportes en vez de una función de orden superior, tenga en cuenta que es posible que tenga que realizar pasos adicionales para identificar cómo se relaciona ese módulo con las funciones de negocio.
- **Sé iterativo**. Comience asociándose con el negocio para identificar qué función podría funcionar para un producto mínimo viable (MVP). Cuando identifique una función, comience a crear ese MVP. A medida que construye, identifique los procesos, metadatos y [eventos o mensajes](/docs/architect/es-mx/well-architected/guide/composable#mensajería-y-eventos) que son centrales para la unidad funcional que está creando. Identifique cualquier proceso, metadatos y eventos o mensajes que sean dependencias externas. A medida que se diseñan unidades más funcionales, implemente la [gestión de API](/docs/architect/es-mx/well-architected/guide/composable#gestión-de-api) y la [gestión de dependencias](/docs/architect/es-mx/well-architected/guide/composable#gestión-de-dependencias) para crear unidades que funcionan bien entre sí (en vez de crear unidades en silos).
La lista de [patrones y antipatrones](/docs/architect/es-mx/well-architected/guide/composable#patrones-y-antipatrones-de-separación-de-preocupaciones) a continuación muestra el aspecto de la orientación apropiada (y deficiente) a la función de negocio en una solución de Salesforce. Puede utilizarlos para validar sus diseños antes de construir o identificar áreas de su sistema que necesitan refactorizarse.
Para obtener más información acerca de las herramientas disponibles de Salesforce para ayudarle a orientarse mejor a las funciones de negocio, consulte [Herramientas relevantes para componible](/docs/architect/es-mx/well-architected/guide/composable#herramientas-relevantes-para-componible).
### Gestión de estado
La gestión estatal se centra en el movimiento de información en un sistema en varios puntos en el tiempo. La gestión de estado efectiva permite a las aplicaciones gestionar flujos complejos de datos o interacciones con un mínimo de resultados no planificados o indeterminados. Gestionar el estado en una organización modular de Salesforce significa crear rutas claras para flujos de lógica dentro y entre unidades, así como rutas elegantes para comportamientos de ejecución no planificados. La gestión de estado permite formar transmisiones coherentes de lógica desde unidades de aplicación modulares de Salesforce. En la mayoría de los casos, esto requiere [interoperabilidad](/docs/architect/es-mx/well-architected/guide/composable#interoperabilidad) para estructurar el flujo de información entre unidades.
Las dificultades en la gestión del estado entre unidades acopladas de forma flexible a menudo llevan al desarrollo de aplicaciones monolíticas en Salesforce. Puede ver esto en grandes “monoflujos”, que se crean en un intento de orquestar un proceso complejo dentro de un flujo singular. Otro ejemplo son las clases masivas de Apex, que orquestan procesos complejos mediante _códigos espagueti_, o una larga serie de métodos de un solo uso. Estos tipos de arquitecturas de aplicación dificultan la refactorización y la depuración y aumentan los tiempos de incorporación para nuevos miembros del equipo o proveedores. También reducen el valor de las aplicaciones entregadas al negocio, ya que las funciones no son reutilizables.
Considere lo siguiente para gestionar el estado en una organización modular de Salesforce:
- **Decida cuándo utilizar patrones con estado frente a sin estado**. Los patrones con estado conservan información en una ruta de ejecución, mientras que los patrones sin estado no. En un sistema poco acoplado, los patrones sin estado permiten refactorizar componentes con mayor rapidez y menos efectos secundarios. Sin embargo, los patrones sin estado no son apropiados para todos los casos de uso. Si está creando componentes para operaciones de datos, los patrones con estado pueden ayudar con la integridad y la coherencia de los datos en sus sistemas. Utilice un patrón con estado si su componente cumple cualquiera de los siguientes criterios:
- La conciencia de la ubicación en una ruta de ejecución superior es esencial para el comportamiento del componente
- El comportamiento del componente debe cambiar basándose en los resultados de una acción descendente (por ejemplo, debe cambiar la ejecución basándose en mensajes de reversión/error/éxito desde componentes descendentes)
- El componente necesita esperar respuestas de un sistema externo o descendente para finalizar su trabajo
- **Cree categorías significativas para información con estado**. _Estado_ es un término ambiguo que se puede aplicar a una amplia gama de información dentro (y más allá) de una organización de Salesforce que por sí mismo el término carece casi de sentido. Un primer paso necesario para crear patrones con estado, por lo tanto, es crear categorías _con sentido_ para las rutas de ejecución con estado más importantes (o tipos de comportamientos con estado) en su sistema. Algunas categorías a tener en cuenta:
- Navegación y formularios
- Operaciones de base de datos
- Operaciones por lotes y masivas
- Errores
- **Defina estados relacionados con datos en términos de [transacciones de base](/docs/architect/es-mx/fundamentals/guide/architecture-basics#manipulación-de-base-de-datos)** de datos. Los comportamientos integrados de la plataforma circunscribirán la mayoría de las consideraciones de estado para datos en Salesforce. No intente gestionar en contra o alrededor de este comportamiento. Diseñe para y con él. Diseñe soluciones que minimicen o eliminen la lógica de transacciones distribuidas. (Consulte la [gestión de datos](/docs/architect/es-mx/well-architected/guide/automated#gestión-de-datos) para obtener más detalles).
- **Identifique estados que se producen dentro (y entre) unidades funcionales**. A medida que reúne unidades funcionales en sistemas más grandes, tenga en cuenta cuándo está mezclando el comportamiento de componentes sin estado y con estado, y evite combinaciones que podrían crear bucles o brechas interminables en el procesamiento.
- **Defina traspasos**. Considere qué componentes de patrones de [mensajería o eventos](/docs/architect/es-mx/well-architected/guide/composable#mensajería-y-eventos) utilizarán para transmitir datos relacionados con el estado a otra parte del sistema. Asegúrese de que está creando conciencia de transacciones y [tratamiento](/docs/architect/es-mx/well-architected/guide/automated#gestión-de-datos) en sus componentes. No incluya ninguna lógica de transacción distribuida en sus transferencias.
- **Cree asignaciones entre sus diagramas de proceso y estados**. Los diagramas de proceso detallan los pasos que mueven la información por su sistema en varios puntos en el tiempo. Un diagrama de estado muestra los cambios reales en la información (el estado). Utilice la parte del pie de página de metadatos de los formularios de [Diagramas de Salesforce](/docs/architect/es-mx/reference-diagrams/guide/kit-of-parts) para capturar el estado cambiante de la información en cada paso de su proceso. Si separa diagramas de proceso y diagramas de estado, asegúrese de vincularlos. Este concepto no debe confundirse con la captura del estado actual y futuro de procesos o panoramas del sistema durante el diseño y la implementación, ya que no se trata de la información que se mueve por el sistema.
La lista de [patrones y antipatrones](/docs/architect/es-mx/well-architected/guide/composable#patrones-y-antipatrones-de-separación-de-preocupaciones) a continuación muestra el aspecto de la gestión de estado adecuada (y deficiente) en una solución de Salesforce. Puede utilizarlos para validar sus diseños antes de construir o identificar lugares en su sistema que necesitan refactorizarse.
Para obtener más información acerca de las herramientas de Salesforce para gestionar el estado, consulte [Herramientas relevantes para Componible](/docs/architect/es-mx/well-architected/guide/composable#herramientas-relevantes-para-componible).
### Patrones y antipatrones de separación de preocupaciones
La siguiente tabla muestra una selección de patrones para buscar (o crear) en su organización y antipatrones para evitar o dirigir para su corrección.
✨ Descubra más patrones para la separación de preocupaciones en el [Explorador de patrones](/docs/architect/es-mx/well-architected-tools/guide/adaptable-separation-of-concerns) y antipatrones.
| Patrones | Antipatrones | |
|---|---|---|
| Unidades funcionales | En sus estándares de diseño:
- Las convenciones de nomenclatura tratan cómo denotar una unidad funcional - Existe una lista de todas las unidades funcionales definidas actualmente (y convenciones de nomenclatura relacionadas) - Existen estándares para proponer incorporaciones o cambios de unidades funcionales |
En sus estándares de diseño:
- Los estándares de diseño no existen o no tratan con unidades funcionales y casos de uso |
| En su documentación:
- Los diagramas de panorama del sistema muestran claramente las unidades funcionales en una organización - Todos los diagramas de documentación e implementación muestran claramente la(s) unidad(es) funcional(es) para componentes - La documentación para componentes individuales incluye asignación de unidades funcionales para el componente - Todos los componentes en una unidad funcional tienen capacidad de búsqueda y son fáciles de encontrar |
En su documentación:
- La documentación de componentes no existe - La documentación de componentes describe la unidad funcional a la que pertenece un componente, pero es el único lugar donde aparece la definición de esa unidad funcional - No puede buscar una unidad funcional concreta y/o las búsquedas no ayudan a identificar todos los componentes dentro de una unidad funcional |
|
| En su organización:
- Es posible identificar rápidamente la alineación de unidades funcionales para un elemento concreto de metadatos (por ejemplo, un flujo, una clase Apex o una página Lightning) - Las unidades funcionales se etiquetan en términos favorables a los negocios |
En su organización:
- No es posible identificar la alineación de unidades funcionales para cualquier metadatos - La información de la unidad funcional es incoherente o imprecisa - La información de unidades funcionales se etiqueta en términos centrados en ingeniería que no tienen sentido para usuarios de negocio |
|
| Gestión estatal | En sus estándares de diseño:
- Los casos de uso para diseños con estado frente a sin estado son claros - Existen patrones aprobados para la comunicación sin estado - Existen patrones aprobados para la comunicación con estado - Borrar categorías para estado existen |
En sus estándares de diseño:
- Los estándares de diseño no existen o no tratan con patrones de estado/apátridas y casos de uso |
| En su documentación:
- Cada componente que gestiona la comunicación con estado y/o sin estado indica qué patrón se implementó - Es posible buscar y encontrar todos los componentes que implementaron un patrón de estado/apatridia concreto - Los diagramas de procesos e interacciones proporcionan detalles acerca de categorías de estado y traspasos |
En su documentación:
- La documentación de componentes no existe - La documentación del componente describe el patrón stateful/stateless implementado, pero es el único lugar donde aparece la definición - No es posible buscar un patrón concreto y/o las búsquedas no ayudan a identificar todos los componentes que utilizan ese patrón |
|
| En Apex: - Se utilizan puntos de guardado y comportamientos de reversión en todas las operaciones de datos |
En Apex: - Los comportamientos de Savepoints y rollback no se utilizan |
|
| En flujo: - Se utilizan rutas de fallo y el elemento Revertir registros |
En flujo: - El elemento Revertir registros no se utiliza |
| Patrones | Antipatrones | |
|---|---|---|
| Mensajería y eventos | En sus estándares de diseño:
- Existen estándares claros para cuándo utilizar patrones síncronos (mensajería) y patrones asíncronos (tarde) - Existen estándares claros para estructuras de eventos y mensajes |
En sus estándares de diseño:
- Los estándares de diseño no existen, o carecen de estándares claros para patrones de sincronización frente a asíncronos y estándares claros para estructuras de mensajes o eventos |
| En su organización:
- Los eventos de plataforma utilizados para la mensajería interna del sistema están claramente etiquetados - Las herramientas de Salesforce Flow hacen referencia a servicios de mensajería o eventos de todo el sistema - Mensajería coherente y patrones de eventos aparecen en flujos y código |
En su organización:
- Los eventos de plataforma utilizados para la mensajería interna del sistema no están claramente etiquetados o no existen - Diferentes estrategias para patrones de mensajería y eventos aparecen entre flujos y códigos |
|
| En Apex o LWC:
- Las definiciones de eventos personalizados tienen un ámbito limitado (no se definen eventos o mensajes de todo el sistema en código) - Los servicios de mensajería o eventos de todo el sistema en Apex están anotados de formas que los hacen disponibles en herramientas de Salesforce Flow |
En Apex o LWC:
- Las estructuras de mensajes y/o eventos de todo el sistema se definen en Apex o JavaScript - Las estructuras de eventos o mensajes de todo el sistema definidas en Apex no están disponibles en herramientas como flujo |
|
| Gestión de API | En sus estándares de diseño:
- Existen protocolos claros para la comunicación entre componentes (es decir, API) - Los protocolos/API se describen en grupos lógicos que los constructores pueden buscar y encontrar - Los protocolos/API definen tipos de datos de variables, nombres de variables, lo que se requiere u opcional y proporcionan una descripción clara de cuándo utilizar |
En sus estándares de diseño:
- Los estándares de diseño no existen o no definen API y casos de uso |
| En su documentación:
- La documentación de cada componente enumera claramente qué protocolo de API/comunicación se implementó - Es posible buscar una API o protocolo concreto e identificar componentes donde se implementa |
En su documentación:
- La documentación de componentes no existe - La documentación del componente describe la API implementada dentro de un componente, pero es el único lugar donde aparece la definición de API - No es posible buscar una API o protocolo concreto y/o las búsquedas no ayudan a identificar componentes donde se ha implementado una API o protocolo |
|
| En su organización:
- Los formatos de mensajes de API y las variables para la comunicación interna se definen con tipos de metadatos personalizados - Los formatos de mensajes de API y las variables para la comunicación interna se definen con eventos de plataforma - El código y las personalizaciones declarativas hacen referencia al tipo de metadatos personalizados apropiado (o evento de plataforma) para enviar o recibir información |
En su organización:
- La comunicación entre componentes del sistema (código y personalizaciones declarativas) es ad hoc - Las API se definen exclusivamente para la comunicación entre Salesforce y sistemas externos |
Independientemente del paradigma de organización de paquetes que elija, hay algunos absolutos a tener en cuenta:
- **No duplique metadatos entre paquetes**. Los metadatos necesarios para más de un paquete deben abstraerse en uno o más paquetes declarados como dependencias.
- **Aproveche las dependencias integradas de los metadatos de Salesforce Platform**. Para los generadores de aplicaciones, los servicios integrados que ofrece Salesforce Platform proporcionan una gran cantidad de funciones que se pueden configurar rápidamente. Muchos de estos servicios tienen dependencias integradas que dificultan la abstracción en unidades funcionales de bajo nivel. Para un tipo de metadatos concreto, debe comprender dónde recae en el [espectro de dependencias](https://developer.salesforce.com/blogs/2018/06/lets-talk-deployment-and-reasons-why-they-succeed-or-fail) integradas y utilizar este entendimiento para [definir sus cadenas](https://developer.salesforce.com/blogs/2018/06/working-with-modular-development-and-unlocked-packages-part-2) de dependencia de paquetes. No inicie la adopción de paquetes intentando forzar el acoplamiento suelto en un elemento de funcionalidad de plataforma estándar con muchas dependencias integradas. Agregará complejidad (no valor) a medida que alcance funciones de orden superior. También es otra forma de caer en [antipatrones](/docs/architect/es-mx/well-architected/guide/intentional#patrones-de-mantenimiento-y-antipatrones) [estándar frente a personalizados](/docs/architect/es-mx/well-architected/guide/intentional#estándar-frente-a-funciones-personalizadas). Empaquete metadatos desde abajo (menos dependencias) hacia arriba e itérelos a lo largo del tiempo.
- **Cuidado con sus cadenas de dependencias**. Evite crear cadenas de dependencia de paquetes que requerirán que los desarrolladores dividan sus cambios en muchos paquetes diferentes en cualquier momento.
- **Piense en lo que tiene sentido para el control de origen**. Existen dos formas básicas de gestionar sus paquetes en el control de origen. El primero es un _monorrepo_ único con paquetes aislados en carpetas. El segundo es múltiples representantes con paquetes aislados en sus propios representantes. Existen complejidades en la gestión de cada tipo de estrategia de origen, a largo plazo. En términos de incorporación de desarrollador, los límites verticales son más eficientes en múltiples paradigmas de repositorio. Los límites horizontales son más comprensibles en un monodepósito. De nuevo, puede mezclar y combinar estrategias a medida que madura su arquitectura.
La lista de [patrones y antipatrones](/docs/architect/es-mx/well-architected/guide/composable#patrones-de-empaquetabilidad-y-antipatrones) a continuación muestra el aspecto de la gestión de dependencias adecuada (y deficiente) con paquetes de Salesforce. Puede utilizarlos para validar sus diseños antes de construir o identificar áreas de su sistema que necesitan refactorizarse.
Para obtener más información acerca de herramientas de Salesforce para la gestión de dependencias, consulte [Herramientas relevantes para Componible](/docs/architect/es-mx/well-architected/guide/composable#herramientas-relevantes-para-componible).
### Patrones de empaquetabilidad y antipatrones
La siguiente tabla muestra una selección de patrones para buscar (o crear) en su organización y antipatrones para evitar o dirigir para su corrección.
✨ Descubra más patrones para la empaquetabilidad en el [Explorador de patrones](/docs/architect/es-mx/well-architected-tools/guide/adaptable-packageability) y antipatrones.
| Patrones | Antipatrones | |
|---|---|---|
| Acoplamiento suelto | En sus estándares de diseño:
- Las convenciones de nomenclatura tratan cómo denotar unidades de paquetes - Es posible buscar y encontrar una lista de todas las unidades de paquete definidas actualmente (y convenciones de nomenclatura relacionadas) - Existen estándares para proponer adiciones o cambios de unidades de paquete - (Opcional) Todos los casos de uso aprobados para configuraciones personalizadas están claramente enumerados (si los tiene) |
En sus estándares de diseño:
- Los estándares de diseño no existen o no tratan con unidades de paquetes y casos de uso |
| En su organización:
- Los tipos de metadatos personalizados proporcionan información dinámica en tiempo de ejecución para personalizaciones de código y declarativas - No existen configuraciones personalizadas o existen pocas configuraciones personalizadas, y ninguna está relacionada con funciones empaquetadas - No existen objetos personalizados para proporcionar información dinámica en tiempo de ejecución para personalizaciones de código o declarativas |
En su organización:
- Se utiliza la configuración personalizada - Los objetos personalizados existen con el fin de proporcionar información dinámica en tiempo de ejecución para personalizaciones de código o declarativas - Los tipos de metadatos personalizados no se utilizan (o no se utilizan de forma coherente) para proporcionar información dinámica en tiempo de ejecución para personalizaciones de código y declarativas |
|
| En Apex:
- Los servicios comunes y el código de placa de caldera se definen utilizando clases Apex abstractas o virtuales - Los métodos dependientes de información dinámica en tiempo de ejecución hacen referencia a tipos de metadatos personalizados apropiados |
En Apex:
- Los servicios comunes y el código de placa de caldera no se distinguen fácilmente de otras clases - Las referencias internas entre clases y métodos son difíciles de seguir y no son coherentes en toda la base de códigos - Los métodos no utilizan un enfoque coherente para acceder a información dinámica en tiempo de ejecución, o los métodos consultan objetos personalizados para información de comportamiento en tiempo de ejecución, o el código hace referencia a parámetros personalizados |
|
| En entornos de desarrollo y control de origen:
- los archivos package.xml solo aparecen en la etapa inicial o manifiestos de proyecto de prueba de concepto |
En entornos de desarrollo y control de origen:
- Los archivos package.xml se utilizan para controlar implementaciones de metadatos |
|
| En paquetes:
- Los paquetes desbloqueados dependientes de la organización solo se utilizan para experimentos de etapa temprana o prueba de concepto - No se definen paquetes no gestionados en entornos de producción o sandboxes |
En paquetes:
- Todos los paquetes son paquetes desbloqueados dependientes de la organización - Los paquetes no gestionados se definen en entornos de producción o sandbox |
|
| Gestión de dependencias | En sus estándares de diseño:
- Existen estándares para declarar dependencias - Existen estándares para introducir o modificar dependencias |
En sus estándares de diseño:
- Los estándares de diseño no existen o no tratan sobre cómo declarar dependencias |
| En control de origen:
- Las versiones de paquetes para paquetes desbloqueados utilizan alias ( LATEST) para declarar dependencias en manifiestos sfdx-project.json
- Los desarrolladores pueden crear organizaciones borrador e implementar metadatos de paquetes con éxito desde el control de origen |
En control de origen:
- Las versiones de paquetes para paquetes desbloqueados se declaran explícitamente (sin alias MÁS RECIENTE) en manifiestos sfdx-project.json
- Los desarrolladores no pueden trabajar con éxito con organizaciones borrador utilizando el control de origen |
|
| En sus paquetes:
- No se duplican metadatos entre paquetes - Para el desarrollo de paquetes, todo el trabajo de desarrollo en la etapa inicial se produce en organizaciones borrador |
En sus paquetes:
- Las dependencias se evitan duplicando metadatos en diferentes paquetes - El desarrollo temprano de paquetes se produce en sandboxes de desarrollador o el desarrollo temprano de paquetes no puede producirse en organizaciones borrador |
|
| Consulte también: Acoplamiento suelto | ||
| Herramienta | Descripción | Separación de preocupaciones | Interoperabilidad | Capacidad de empaquetado |
|---|---|---|---|---|
| Servicios web REST Apex | Exponer sus clases y métodos Apex a aplicaciones externas a través de REST | X | ||
| Servicios web Apex SOAP | Exponer sus clases y métodos Apex a aplicaciones externas a través de SOAP | X | ||
| Captura de datos | Publicar cambios en registros de Salesforce | X | ||
| Tipos de metadatos personalizados | Definir funciones reutilizables, personalizables y empaquetables | X | ||
| Decoradores | Exponer funciones o propiedades públicamente como una API | X | X | |
| Dev Hub | Gestione organizaciones borrador, paquetes de segunda generación y funciones Einstein. | X | X | X |
| Eventos genéricos (heredados)* | Enviar eventos personalizados que no están vinculados a cambios de datos de Salesforce | X | ||
| Servicio de datos Lightning | Almacenar en caché y compartir datos entre componentes | X | X | |
| Metadata API | Implementar personalizaciones entre entornos de Salesforce | X | ||
| Reporte de cobertura de metadatos | Determinar la cobertura de metadatos admitida entre varios canales | X | ||
| MuleSoft Composer | Crear automatización de procesos para datos utilizando clics en vez de código | X | ||
| Mensajes salientes | Enviar mensajes a extremos externos cuando se actualizan valores de campo | X | ||
| Eventos de plataforma | Enviar mensajes seguros y ampliables que contienen datos de eventos casi en tiempo real | X | ||
| API Pub/Sub | Suscribirse a eventos de plataforma, Captura de datos de cambios o Monitoreo de eventos en tiempo real | X | ||
| Eventos de temas distribuidos (heredados)* | Enviar y recibir notificaciones de cambios de datos que coinciden con una consulta SOQL definida por el usuario | X | ||
| Salesforce CLI | Desarrollar y crear automatización al trabajar con su organización de Salesforce | X | ||
| Diagramas de Salesforce | Crear diagramas para mostrar funciones de negocio y detalles técnicos | X | ||
| Extensiones de Salesforce para Visual Studio Code (ampliado) | Extensiones oficiales de VS Code para el desarrollo de Salesforce | X | ||
| Organizaciones borrador | Implementar metadatos y código de Salesforce en una organización desechable | X | ||
| Paquetes gestionados de segunda generación | Desarrollar y distribuir aplicaciones para AppExchange | X | ||
| API de herramientas | Crear herramientas de desarrollo personalizadas o aplicaciones para aplicaciones de Lightning Platform | X | ||
| Paquetes desbloqueados | Organizar metadatos, empaquetar una aplicación o ampliar una aplicación AppExchange | X | ||
| *Salesforce continuará admitiendo PushTopic y Eventos genéricos dentro de las funciones actuales, pero no tiene intención de realizar más inversiones en esta tecnología. | ||||
| Recurso | Descripción | Separación de preocupaciones | Interoperabilidad | Capacidad de empaquetado |
|---|---|---|---|---|
| Una mirada primitiva a la integración digital | Desarrollar un lenguaje común para conceptos de conectividad | X | ||
| Aplicación de diseño dirigido por dominios con Salesforce | Oriente sus soluciones alrededor de funciones de negocio | X | ||
| Mejores prácticas para paquetes de segunda generación | Comprender patrones y prácticas de empaquetado 2GP | X | ||
| Componentes disponibles en paquetes gestionados | Comprender componentes de metadatos de paquetes gestionados | X | ||
| Plantilla de estándares de diseño | Crear estándares de diseño para su organización | X | X | X |
| Guía de decisiones de arquitectura dirigida por eventos | Comparar herramientas y patrones de arquitectura dirigidos por eventos | X | ||
| Antipatrones de eventos | Identificar antipatrones a evitar al utilizar eventos | X | ||
| Cómo diseñar API dirigidas por mensajes y eventos | Lea las diferencias en una guía del desarrollador de MuleSoft | X | X | |
| Aprendizaje sobre el marco de trabajo por hacer | Explorar JTBD en Trailhead | X | ||
| Gestionar el estado global en B2C Commerce | Pasar datos fácilmente entre componentes para mantener el estado | X | ||
| Directrices de mensajería | Comunicar información relevante y crear momentos de placer | X | ||
| Tipos de mensajería | Comprender diferentes tipos de mensajería por la naturaleza de la interacción de usuario | X | ||
| Tipos de metadatos | Comprender los diferentes tipos de metadatos en su organización de Salesforce | X | X | |
| Tipos de notificación de aplicaciones móviles | Comprender tipos de notificación para aplicaciones móviles Salesforce | X | ||
| Optimización del estado de vista | Mantener el estado en una página Visualforce | X | ||
| Experiencia de desarrollador de Salesforce (DX) | Gestionar y desarrollar aplicaciones en Lightning Platform | X | X | X |
| Tipos de metadatos no admitidos | Identificar componentes que no están disponibles en la API de metadatos | X |
| Patrones | Antipatrones | |
|---|---|---|
| Privacidad de datos | En su documentación:
- Tiene un diccionario de datos actualizado que contiene nombres de nivel de campo, descripciones y clasificaciones - Tiene una matriz de seguridad actualizada que identifica qué usuarios tienen acceso a qué datos - Tiene documentación de diseño actualizada, incluyendo estándares y diagramas para cualquier automatización creada para tratar requisitos reguladores |
En su documentación:
- Un diccionario de datos no existe o no se ha mantenido actualizado - La documentación de colaboración y visibilidad no existe o no se ha mantenido actualizada - Los estándares de diseño, los diagramas y la documentación para automatizaciones que abordan requisitos reguladores no existen o no se han mantenido actualizados |
| En su organización:
- Todos los objetos y campos que contienen información confidencial o están sujetos a leyes de privacidad de datos tienen Categorización de cumplimiento, Propietario de datos, Nivel de confidencialidad de datos y Uso de campo configurados |
En su organización:
- A los objetos y campos que contienen información confidencial o están sujetos a leyes de privacidad de datos les falta configuración para Categorización de cumplimiento, Propietario de datos, Nivel de confidencialidad de datos o Uso de campo |
|
| Localización | En su documentación:
- Tiene una estrategia de organización que describe dónde se almacenarán y mantendrán los datos para cumplir con todos los requisitos de residencia de datos aplicables - Tiene una estrategia de integración que describe escenarios y procesos aceptables para replicar datos a través de fronteras - Tiene una estrategia de análisis que describe el nivel de granularidad que los reportes y tableros pueden contener a nivel regional, nacional y global |
En su documentación:
- No tiene una estrategia de organización o su estrategia de organización no trata los requisitos de residencia y localización de datos - No tiene una estrategia de integración o su estrategia de integración no trata los requisitos de residencia y localización de datos - No tiene una estrategia de análisis o su estrategia de análisis no trata los requisitos de residencia y localización de datos |
| Patrones | Antipatrones | |
|---|---|---|
| Políticas de compañía | En sus estándares de diseño:
- Los estándares incluyen directrices claras para áreas afectadas por políticas de la compañía |
En sus estándares de diseño:
- Los estándares de diseño no existen o no proporcionan directrices claras acerca de áreas sujetas a políticas de la compañía |
| En su documentación:
- La documentación para la configuración y personalizaciones incluye referencias a valores de compañía admitidos |
En su documentación:
- La documentación para la configuración y personalizaciones no hace referencia a valores o políticas de la compañía |
|
| En su organización:
- Todos los objetos y campos sujetos al cumplimiento relacionado con la política de la compañía tienen Categorización de cumplimiento, Propietario de datos, Nivel de confidencialidad de datos y Uso de campo configurados |
En su organización:
- Los objetos y que están sujetos al cumplimiento relacionado con la política de la compañía carecen de configuración para Categorización de cumplimiento, Propietario de datos, Nivel de confidencialidad de datos o Uso de campo |
|
| Inteligencia artificial | En sus estándares de diseño:
- Las políticas y los casos de uso aprobados para aplicaciones de IA son claros y fáciles de encontrar - Asegúrese de que los datos y documentos utilizados para RAG son representativos, completos, precisos y actualizados. Busque sesgo, contenido tóxico y otro contenido dañino que podría estar en sus conjuntos de datos o documentación - Las respuestas generativas siempre identifican orígenes de datos utilizados por modelos de IA - Los conjuntos de datos que se pueden/no se pueden utilizar para la ingeniería de solicitudes se han documentado - Los bots y las respuestas de IA generativa están claramente identificados para los usuarios - Estándares para cuándo y cómo utilizar renuncias de responsabilidad para la IA generativa están claramente definidos - Existen requisitos claros sobre cómo documentar puntos de implicación humana en diseños de soluciones de IA - Existen estándares para documentar rutas de comentarios directos e indirectos en diseños de soluciones de IA - Los puntos en los que se debe identificar la IA para un usuario están claramente definidos - Mantener un humano al frente, especialmente en casos de uso regulados o de alto riesgo |
En sus estándares de diseño:
- Los estándares de diseño no existen o no incluyen políticas claras y casos de uso aprobados para aplicaciones de IA - Las respuestas generativas no identifican orígenes de datos utilizados por modelos de IA - Los conjuntos de datos utilizados para la ingeniería de solicitudes no están documentados - Los bots y las respuestas de IA generativa no se identifican para los usuarios - Faltan renuncias de responsabilidad respecto a respuestas generativas - No existen requisitos para documentar puntos de implicación humana en diseños de soluciones de IA - No existen estándares para documentar rutas de comentarios directos e indirectos para diseños de soluciones de IA - Los estándares de diseño no indican los puntos en los que se debe identificar la IA a los usuarios |
| En su documentación:
- La documentación para la configuración y personalizaciones que implican funciones de IA contiene una descripción exhaustiva de toda la lógica de procesos y se almacena en una ubicación central accesible para equipos legales o auditores - Los modelos que crea o aporta a Salesforce están claramente documentados, incluyendo cualquier segmento de datos aplicable - Lógica de plática y pláticas de agentes están completamente documentadas - Existen procesos para monitorear los modelos de IA de su organización en busca de desviación de datos, cambios en puntuajes de equidad y sesgo, precisión y robustez - Las descripciones se mantienen para los datos de entrenamiento, evaluación y prueba utilizados para todos los procesos de IA - Las descripciones se mantienen para cualquier limpieza de datos relacionada con la IA junto con pruebas de sesgo, resultados asociados y puntuajes de desempeño/precisión (por ejemplo, puntuajes F1) |
En su documentación:
- La documentación para la configuración y personalizaciones que implican funciones de IA falta, está incompleta o almacenada en una ubicación inaccesible - Los modelos o sistemas de IA se implementan en su organización sin documentación de sus modelos - Los agentes se implementan en su organización sin documentación de mensajes y flujo de plática - Los procesos de monitoreo de IA no existen o no están documentados - La información sobre los datos de entrenamiento, evaluación y prueba utilizados para todos los procesos de IA no está clara o no está disponible - La información sobre la limpieza de datos relacionados con la IA, las pruebas de sesgo y los resultados no está clara o no está disponible |
| Patrones | Antipatrones | |
|---|---|---|
| Entrada de datos | En sus estándares de diseño:
- Se enumeran todos los dispositivos que se pueden utilizar para la entrada de datos más allá de un teclado y ratón estándar - Los valores de texto y sus traducciones a todos los idiomas admitidos se enumeran |
En sus estándares de diseño:
- Solo se enumeran algunos, o ninguno, de los dispositivos que se pueden utilizar para la entrada de datos más allá de un teclado y ratón estándar - Los idiomas admitidos se enumeran junto con elementos de la interfaz de usuario para traducir |
| En sus planes de prueba:
- Los pasos de prueba incluyen el uso de múltiples tipos de dispositivos de entrada para ingresar datos - Los pasos de prueba incluyen entrada de datos en múltiples idiomas |
En sus planes de prueba:
- Las pruebas de accesibilidad no están incluidas o las pruebas de entrada de datos accesibles se realizan ad hoc |
|
| En su organización:
- Las traducciones para idiomas admitidos se almacenan en Sistema de traducción |
En su organización:
- Las traducciones se almacenan en etiquetas personalizadas |
|
| Navegación | En sus estándares de diseño:
- Todos los dispositivos que se pueden utilizar para la navegación (no solo teclado y ratón estándar) están claramente enumerados - Los estándares de interfaz de usuario/UX especifican el tipo y el estilo de todos los controles de navegación - Los tipos de señales visuales aprobadas para transmitir significado o estado están claramente enumerados, y el color no es una señal principal |
En sus estándares de diseño:
- Los estándares de diseño no existen o no tienen en cuenta los requisitos de accesibilidad para controles de navegación - Los estándares de interfaz de usuario/UX para la navegación son incoherentes - Las pistas visuales para significado o estado se basan en color o no hay listas claras de pistas visuales para constructores |
| En sus planes de prueba:
- Los pasos de prueba incluyen el uso de múltiples tipos de dispositivos de entrada para navegar - Los planes de prueba incluyen el uso de pruebas de interfaz de usuario/UX para garantizar rutas de navegación coherentes |
En sus planes de prueba:
- Las pruebas de accesibilidad no están incluidas o las pruebas de navegación accesible se realizan ad hoc |
| Herramienta | Descripción | Adhesión legal | Estándares éticos | Accesibilidad |
|---|---|---|---|---|
| Agenteforce Analytics | Obtenga perspectivas sobre el desempeño de sus agentes | X | ||
| Centro de pruebas de Agentforce | Ejecute hasta 10 trabajos de prueba con hasta 1.000 casos de prueba por prueba, de modo que pueda crear y evaluar rápidamente múltiples escenarios. | X | ||
| Citas | Las citas le ayudan a identificar posibles imprecisiones o alucinaciones en las respuestas generadas, aumentando su confianza en el uso de herramientas de IA. | X | ||
| API de consentimiento | Realizar un seguimiento de preferencias de clientes para consentimiento | X | ||
| Transmisión de evento de consentimiento | Enviar notificaciones de cambios en la información de contacto o consentimiento | X | ||
| Objetos de Gestión de consentimiento | Gestionar preferencias de consentimiento y privacidad de clientes | X | ||
| Acceso y portabilidad de datos | Exportar datos relacionados con clientes bajo solicitud | X | ||
| Clasificación de datos | Registrar información de auditoría y cumplimiento de claves para campos de objeto | X | ||
| Reportes de Data 360 | Monitorear el cumplimiento de instrucciones de agentes | X | ||
| Eliminación de datos | Eliminar datos para cumplir con las leyes | X | ||
| Preferencias de privacidad de datos | Almacenar preferencias de privacidad de datos de clientes | X | X | |
| Traducción de datos | Traducir datos presentados a usuarios | X | X | |
| Detección de datos | Alinear categorías y niveles de confidencialidad con datos reales | X | ||
| Explorador de Data 360 | Gestionar permisos de objeto y proyecto para científicos de datos | X | X | |
| Einstein Data Prism | Una solución de fundamentación para aplicaciones de IA generativa en Salesforce, mejorando la precisión de soluciones de IA que utilizan sus funciones de fundamentación | X | ||
| Einstein Trust Layer | Un conjunto de funciones, procesos y políticas diseñados para salvaguardar la privacidad de los datos, mejorar la precisión de la IA y promover el uso responsable de la IA en todo el ecosistema de Salesforce | X | ||
| Registros de eventos mejorados | Los registros de eventos capturan los eventos y mensajes de usuario en una sesión de agente para revisar Adhesión de instrucciones, probar y solucionar problemas de su agente. | X | ||
| Files Connect | Examinar, buscar y compartir archivos externos desde Salesforce | X | ||
| Hyperforce | Cumplir con los requisitos de almacenamiento de datos locales | X | ||
| Traducción de metadatos | Traducir idiomas a aplicaciones de localización | X | X | |
| API de portabilidad | Compilar datos de clientes identificados en su política de portabilidad | X | X | |
| Centro de preferencias | Recopilar preferencias de comunicación de clientes | X | X | |
| Centro de privacidad | Satisfacer solicitudes de clientes y leyes de privacidad de datos | X | X | |
| Restricción del procesamiento de datos | Restringir métodos de procesamiento de datos personales | X | X | |
| Derecho al olvido | Eliminar datos de clientes individuales bajo solicitud | X | ||
| Archivos de Salesforce | Compartir y almacenar archivos de forma privada | X | ||
| Centro de seguridad | Ver parámetros de seguridad y privacidad entre múltiples organizaciones | X | ||
| Shield Platform Encryption | Cifrar datos en periodos de inactividad y tránsito | X | ||
| Traducción Workbench | Mantener valores traducidos para etiquetas de metadatos y datos | X | X |
| Recurso | Descripción | Adhesión legal | Estándares éticos | Accesibilidad |
|---|---|---|---|---|
| 5 principios para un diseño de IA responsable | Diseñar funciones de Inteligencia artificial (IA) de forma ética | X | ||
| Fundamentos de accesibilidad (Trailhead) | Aprenda por qué la accesibilidad es importante | X | ||
| Reportes de conformidad de accesibilidad (ACR) | Comprender cómo Salesforce cumple los estándares de accesibilidad | X | ||
| Descripción general de accesibilidad | Comprender la accesibilidad en Salesforce Lightning | X | ||
| Modelo de madurez de ética de IA | Desarrollar una hoja de ruta para poner en práctica principios éticos | X | ||
| AI Red Teaming: Pruebas para Trust | Descubra cómo los “hackers éticos” de Salesforce desarrollan la IA responsable a través del trabajo en equipo de color rojo. | X | ||
| Automatización del adversario: Diseño de un marco de trabajo ampliable para la IA de Red Teaming | Obtenga información acerca de cómo Salesforce automatiza la generación de solicitudes adversarias y la validación de respuestas, fuzzai ayuda a proteger interacciones de IA mientras reduce la exposición humana a contenido dañino. | X | ||
| Mejores prácticas para el diseño de pláticas | Seguir mejores prácticas al diseñar chatbots | X | X | |
| Mejores prácticas para el diseño sostenible (Trailhead) | Incorporar sostenibilidad en sus diseños | X | ||
| Gestión de consentimiento | Realizar un seguimiento y cumplir con solicitudes de consentimiento y anulación de suscripción | X | ||
| Data Policies for Einstein | Controlar el uso de datos en funciones Einstein | X | X | |
| Plantilla de estándares de diseño | Crear estándares de diseño para su organización | X | X | X |
| Las prácticas de piratería ética resultan exitosas en la creación de productos IA de confianza | Obtenga información acerca de cómo Salesforce emplea prácticas de equipo rojo para mejorar la seguridad de nuestros productos de IA mediante pruebas de uso malicioso, ataques de integridad intencionados, uso indebido benigno e identificación de problemas de IA responsables. | X | ||
| Liderazgo ético y negocios | Perspectivas sobre tecnología, igualdad y ética | X | ||
| Política de uso ético | Explorar la política de Salesforce sobre el uso ético de nuestros productos y servicios | X | ||
| Ética por diseño (Trailhead) | Incorporar el diseño ético en el desarrollo tecnológico | X | ||
| Explorar la cultura y los valores de Salesforce (Trailhead) | Explorar los valores principales de Salesforce | X | X | |
| Seguir directrices de diseño móvil accesibles | Siga las mejores prácticas para que sus diseños sean accesibles | X | X | |
| Primeros pasos con accesibilidad web (Trailhead) | Aprenda los fundamentos de cómo hacer accesibles sitios web y aplicaciones | X | ||
| Cómo Salesforce crea infraestructura de Red Teaming reproducible | Cuatro componentes que recomendamos al diseñar, implementar y ejecutar pruebas adversarias | X | ||
| Cómo ejecutar un taller de exploración de consecuencias | Considere todos los resultados posibles mientras innova | X | ||
| Implementación de la privacidad y la protección de datos | Evaluar requisitos de privacidad y protección de datos | X | ||
| Diseño inclusivo (Trailhead) | Fomentar la innovación con principios de diseño inclusivo | X | X | |
| Plantilla de hoja de cálculo KPI | Establecer indicadores clave de desempeño (KPI) para su organización | X | ||
| Información legal | Explorar el centro de información legal de Salesforce | X | ||
| Módulo de consentimiento de cookies LWC | Controlar el acceso de cookies de usuario en sitios de Experience Cloud | X | X | |
| Descripción general de privacidad | Obtenga información acerca de la privacidad de datos por región e industria | X | ||
| Promover agentes responsables y éticos | Aprenda cómo implementar estrategias éticas de creación de equipos rojos y pruebas y desarrollar principios y estándares de orientación para su organización. | X | ||
| Directrices de IA agente responsable | X | |||
| Creación responsable del módulo de IA Trailhead | Aprenda cómo eliminar el sesgo de sus datos y algoritmos para crear sistemas de IA éticos en su compañía. | X | ||
| Directrices de IA generativa responsables | Nos hemos basado en nuestros Principios IA de confianza con un nuevo conjunto de directrices centradas en el desarrollo y la aplicación responsables de la IA generativa. | X | ||
| Certificaciones de cumplimiento de Salesforce | Revisar certificados y certificaciones de cumplimiento de Salesforce | X | ||
| Diseño sostenible (Trailhead) | Fortalecer la relación entre las empresas y la sociedad | X | ||
| Pruebas de accesibilidad web (Trailhead) | Utilizar pruebas automatizadas y manuales para garantizar la accesibilidad | X | ||
| IA agente de confianza | Aprenda cómo Agentforce utiliza salvaguardas y principios de IA responsables para crear IA ética. | x |
| Seguro | ||
|---|---|---|
| Un sistema seguro protege el negocio, las partes interesadas y los datos. Las arquitecturas seguras garantizan que solo los usuarios aprobados puedan obtener acceso, restringir el acceso de usuarios a lo esencial para realizar el trabajo y proteger los datos dentro del sistema de verse comprometidos. | ||
| Seguridad organizativa | Seguridad de sesión | Seguridad de datos |
| Autenticación Autorización |
Gestión de sesiones Acceso de dispositivo Detección y respuesta ante amenazas |
Colaboración y visibilidad Uso de cifrado |
| Cumplimiento | ||
| Las soluciones compatibles siguen directrices legales y éticas. Las arquitecturas compatibles cumplen con las leyes y los estándares de la industria, mantienen políticas éticas y sirven a todos los usuarios de forma equitativa. | ||
| Adhesión legal | Normas éticas | Accesibilidad |
| Privacidad de datos Localización |
Políticas de la compañía Inteligencia artificial |
Entrada de datos Navegación |
| Fiable | ||
| Las soluciones fiables funcionan de forma eficiente y fiable, bajo una serie de condiciones. Las arquitecturas fiables están disponibles cuando y donde los usuarios esperan, tienen un desempeño coherente y se amplían con el negocio. | ||
| Disponibilidad | Desempeño | Escalabilidad |
| Gestión de riesgos Mitigación de fallos |
Rendimiento Latencia |
Modelado de datos Volumen de datos |
| Confiable | ||
|---|---|---|
| Una solución de confianza protege su negocio y a las partes interesadas. | ||
| Seguro | Cumplimiento | Fiable |
| Seguridad organizativa Seguridad de sesión Seguridad de datos |
Adhesión legal Estándares éticos Accesibilidad |
Disponibilidad Desempeño Escalabilidad |
| Fácil | ||
| Una solución sencilla entrega valor de negocio rápidamente. | ||
| Intencionado | Automatizado | Participación |
| Estrategia Mantenibilidad Legibilidad |
Eficiencia Integridad de datos |
Simplificado Útil |
| Adaptable | ||
| Una solución adaptable evoluciona con su negocio. | ||
| Resistente | Componible | |
| Gestión del ciclo de vida de aplicaciones Respuesta de incidente Planificación de continuidad |
Separación de preocupaciones Interoperabilidad Capacidad de empaquetado |
|
| Intencionado | ||
|---|---|---|
| Las soluciones intencionadas entregan valor de negocio inmediatamente y a lo largo del tiempo. Las arquitecturas intencionales se planifican y se entregan de forma estratégica, se pueden mantener de forma efectiva y son fáciles de leer y comprender para los humanos. | ||
| Estrategia | Mantenibilidad | Lectura |
| Priorización Hoja de ruta Gobernanza |
Estándar frente a Personalizado Deuda técnica |
Estándares de diseño Documentación |
| Automatizado | ||
| Las soluciones automatizadas permiten al negocio realizar el trabajo con mayor rapidez y a escala. La automatización saludable reduce el tiempo empleado en tareas manuales repetitivas o entrada de datos compleja. | ||
| Eficiencia | Integridad de datos | |
| Diseño de procesos Lógica operativa KPIs |
Gestión de datos Tratamiento de errores |
|
| Participación | ||
| Las soluciones atractivas encantan a los usuarios e impulsan la adopción. La arquitectura para la implicación significa crear experiencias de usuario útiles e intuitivas. | ||
| Simplificado | Útil | |
| Complejidad de aplicación Formularios Factor de forma |
Notificaciones y mensajería Directrices en aplicación Reconocimiento y recompensas |
|
| Clasificación/tipo de desencadenador | Mitigación |
|---|---|
| Personas | Política |
| Proceso | Libros de jugadas, planes de continuidad |
| Tecnología | Redundancia |
| Desencadenador | Mitigación | Básico | Intermedio | Maduro |
|---|---|---|---|---|
| Cambio de acceso de usuario para un empleado nuevo o saliente | Acuerdo de nivel de servicio (SLA) y requisitos para aprovisionar o desaprovisionar usuarios | Aprovisione y desaprovisione usuarios manualmente, según los SLA para cambios manuales. | Procese los cambios de usuario a través de trabajos programados, según los SLA para cambios programados. | Automatice el aprovisionamiento y desaprovisionamiento de usuarios a través de una solución de SSO/IDM. |
| Patrones | Antipatrones | |
|---|---|---|
| Gestión de riesgos | En su negocio:
- Se está utilizando un marco de trabajo de evaluación de riesgos establecido. - Los riesgos se categorizan en personas, procesos y áreas de tecnología. |
En su negocio:
- El marco de trabajo de evaluación de riesgos para Salesforce es ad hoc. - Los riesgos no están claramente identificados. |
| En su documentación:
- La gravedad del riesgo se categoriza y evalúa en base a la repercusión sobre el cliente. - Se priorizan los planes de respuesta y mitigación de riesgos. |
En su documentación:
- La perspectiva del cliente no se tiene en cuenta al evaluar la gravedad o categoría del riesgo. - Los planes de respuesta y mitigación de riesgos intentan capturar todos los riesgos imaginables. |
|
| Mitigación de fallos | En su organización:
- Los desencadenadores de puntos de fallo y sus planes de mitigación correspondientes se categorizan por personas, procesos y tecnología. - Los controles de mitigación se establecen de inmediato, maduran con el tiempo e incorporan la automatización lo antes posible. - Para garantizar una escalabilidad óptima, las pruebas y la optimización integrales se completan antes de que se publiquen los cambios en producción. - Antes de eventos críticos de negocio, se realizan pruebas de escala y optimización, según los SLA. |
En su organización:
- Los desencadenadores de punto de fallo no están clasificados. Los enfoques de mitigación no existen o solo se utilizan ad hoc. - Los controles de mitigación no se vuelven a visitar ni se mejoran. - La automatización no se utiliza en la mitigación. |
| Seguimiento y observabilidad | En su organización:
- Para comprobaciones y detección de anomalías, Proactive Monitoring está activado. - Para visibilidad continua, las alertas Proactive Monitoring están integradas con Scale Center. |
En su organización:
-Solo se realizan comprobaciones de estado manuales y no existe ningún monitoreo continuo. |
| Patrones | Antipatrones | |
|---|---|---|
| Resultado | En sus estándares de diseño:
- Directrices sobre cómo utilizar Caché de plataforma se adhiere a Mejores prácticas de Caché de plataforma |
En sus estándares de diseño:
- Si hay directrices para el uso de Caché de plataforma, no está claro o no se alinea con mejores prácticas. |
| En su organización:
- La masificación se utiliza para operaciones de datos y sistema. - Los métodos DML o de base de datos siempre operan contra recopilaciones en Apex. - Los campos utilizados durante DML para un tiempo transcurrido más corto en la base de datos están limitados. - Todos los criterios comodín se utilizan en SOSL. - Las declaraciones SOQL son selectivas.: -- No utilizan comparaciones LIKE o comparaciones de texto parcial. -- Los operadores de comparación utilizan lógica positiva (es decir, INCLUDES o IN) como su lógica principal o única lógica. -- = NULL y != NULL se utilizan solo rara vez siempre sigue un operador de comparación positivo. – Para minimizar la carga de datos y maximizar el desempeño, solo se recuperan los campos necesarios en consultas SOQL. -- No se utilizan declaraciones LIMIT 1. -- No se utiliza la palabra clave TODAS LAS FILAS. - Se favorece el procesamiento asíncrono siempre que sea posible. - Las particiones de Caché de plataforma están configuradas. |
En su organización:
- Las declaraciones DML no se masifican. - Los métodos DML o de base de datos operan con registros únicos en Apex. - SOSL rara vez o no se utiliza de forma coherente para criterios de selección de comodines. - Las declaraciones SOQL no son selectivas: -- Incluyen criterios de filtro Me gusta y Comodín. -- Las comparaciones que utilizan criterios !=, NOT o NOT IN se utilizan como el operador de comparación principal o único. -- Utiliza criterios = NULL y != NULL como operadores de comparación principales o únicos. -- Se utilizan instrucciones LIMIT 1. -- Se utiliza la palabra clave ALL ROWS. - SOQL aparece en bucles. - Se favorecen los procesos síncronos. |
|
| Latencia | En su organización:
- Los reportes tienen un único propósito específico y contienen el número mínimo de filas y columnas necesarias para tomar decisiones. - Los filtros utilizan “igual a” y “no igual a”. - Los filtros no contienen campos de fórmula. - Los modelos de colaboración se simplifican al máximo. - Los componentes personalizados de la interfaz de usuario utilizan Componentes web Lightning (LWC). - LWC utiliza Lightning Data Service para operaciones de datos. - La clasificación y filtrado de datos de lista se gestiona en el lado del cliente en JavaScript. - Salesforce Edge está activado. |
En su organización:
- Los reportes sirven para múltiples fines o contienen filas y columnas adicionales que no son necesarias para tomar decisiones. - Los filtros utilizan “contiene” y “no contiene”. - Los filtros contienen campos de fórmula. - Los modelos de colaboración son complejos. - Los componentes personalizados de la interfaz de usuario utilizan marcos que pueden dar como resultado una representación menos eficiente que LWC (por ejemplo, Aura o Visualforce). - LWC utiliza Apex para operaciones de datos. - La clasificación y filtrado de datos de lista se gestiona en el lado del servidor utilizando Apex. - Salesforce Edge no está activado. |
| Patrones | Antipatrones | |
|---|---|---|
| Modelado de datos | En sus estándares de diseño:
- Estándares y directrices para los que las justificaciones de negocio garantizan la existencia de un objeto personalizado. |
En sus estándares de diseño:
- No existen estándares para la creación de objetos personalizados. |
| En su modelo de datos:
- Los objetos estándar se utilizan cuando es posible. - Las comprobaciones de ApexGuru para antipatrones confirman que las consultas SOQL son selectivas y evitan un uso de esquemas ineficiente. - Las tablas se desnormalizan para la escala. |
En su modelo de datos:
- Tiene objetos estándar replicados. - Las tablas están normalizadas para evitar redundancias. |
|
| Dentro de su negocio:
- Los generadores de código bajo comprenden los diferentes tipos de campo admitidos por Salesforce, y evalúan los requisitos de creación de reportes y cifrado antes de seleccionar tipos de datos de campo. - Antes de decidir establecer una relación principal-detalle entre objetos, evalúa las implicaciones de colaboración y sesgo de datos de esa relación. |
Dentro de su negocio:
- Los generadores de código bajo seleccionan tipos de datos sin evaluar los requisitos de creación de reportes y cifrado descendentes. - Antes de decidir establecer relaciones principal-detalle entre objetos, no evalúa las implicaciones de colaboración y sesgo de datos de esa relación. |
|
| Volumen de datos | En sus datos:
- Ningún registro principal tiene más de 10.000 registros secundarios. - No se asigna ningún usuario a más de 10.000 registros del mismo tipo de objeto. - Ninguna instancia incluye más de 10.000 registros que tengan campos de búsqueda apuntando al mismo registro. - Las cargas de datos masivas se ordenan en lotes según los valores de campo ParentId. - Para asegurarse de que las estrategias por lotes no se interrumpen bajo concurrencia, se utiliza Prueba de escala para validar patrones de carga masiva a escala de producción. - Las cargas de datos masivas en producción no se producen durante las horas de oficina pico. - Las cargas de datos masivas incluyen solo los datos mínimos necesarios para las decisiones de negocio. |
En sus datos:
- Existen registros con más de 10.000 registros secundarios. - Los usuarios están asignados a más de 10.000 registros del mismo tipo. - Existen instancias donde más de 10.000 registros tienen campos de búsqueda que apuntan al mismo registro. - Las cargas de datos masivas no se ordenan en lotes según los valores de campo ParentId. - Las cargas de datos masivas en producción se producen durante las horas de oficina pico. - Las cargas de datos masivas no están limitadas a los datos mínimos necesarios para las decisiones de negocio. |
| En Flow y Apex:
- Existe lógica para distribuir el número de registros secundarios entre múltiples registros principales en escenarios donde el sesgo de datos es un problema. - Al importar o replicar registros a través de la integración, la lógica los asigna a los usuarios humanos apropiados. - Para recopilaciones Apex, como listas y conjuntos, existe lógica para procesar múltiples registros para minimizar consultas y optimizar el tratamiento de datos. - Se redacta e implementa código Apex eficiente que sigue los estándares y mejores prácticas para código escalable. |
En Flow y Apex:
- Los registros secundarios se asignan arbitrariamente a registros principales, independientemente del número de registros secundarios que ya están asignados. - Los registros creados a través de cargas de datos o integraciones se asignan a un "usuario de integración" genérico. - Múltiples consultas SOQL recursivas desde el mismo objeto están en transacciones síncronas, lo que lleva a un alto uso de pila. Cuando los desarrolladores redactan código Apex, introducen ineficiencias y antipatrones de desempeño. |
|
| Dentro de su negocio:
- Documentó e implementó una estrategia de archivado y purga de datos |
Dentro de su negocio:
- No tiene una estrategia de archivado y purga de datos o su estrategia se documentó pero no se implementó |
| Herramienta | Descripción | Disponibilidad | Desempeño | Escalabilidad |
|---|---|---|---|---|
| Big Objects | Almacene y gestione grandes volúmenes de datos en la plataforma. | X | ||
| Escáner de código | Explore código Apex para problemas de desempeño. | X | ||
| Índices personalizados | Mejore el desempeño de las consultas con índices personalizados. | X | ||
| Eliminación de datos | Elimine datos innecesarios para mejorar el desempeño. | X | X | |
| Divisiones | Particione datos para limitar conteos de registros en consultas y reportes. | X | ||
| Prueba de escala | Pruebe el desempeño del sistema e interprete los resultados. Antes de implementar en producción, para validar la capacidad de ampliación y el desempeño, imule cargas de trabajo de API e interfaz de usuario a gran escala utilizando secuencias de comandos de Playwright o JMeter. | X | X | |
| Centro de escala | Obtenga perspectivas de autoservicio y en tiempo real sobre el desempeño del sistema. Encuentre transacciones de larga duración, puntos críticos de excepciones y cuellos de botella de rendimiento. Diagnostique problemas de escala más temprano en su ciclo de desarrollo. | X | X | |
| ApexGuru | Utilice esta función basada en GenAI en Scale Center para detectar Apex, SOQL y probar antipatrones de clase en tiempo de ejecución. A través de la integración de ApexGuru con Salesforce Code Analyzer, obtenga recomendaciones con tecnología de IA y soluciones en línea en el flujo de trabajo de desarrollo. Utilice esas recomendaciones y soluciones para resolver puntos críticos y mejorar la selectividad de consultas, la masificación, el uso de caché y la calidad de las pruebas. | X | X | |
| Analizador de código de Salesforce | Escanee código con IDE, CLI o CI/CD para asegurarse de que se ajusta a las mejores prácticas. A través de la integración de Salesforce Code Analyzer con ApexGuru, obtenga perspectivas acerca de antipatrones de desempeño directamente en el flujo de trabajo del desarrollador. | X | ||
| Red Salesforce Edge | Mejore los tiempos de descarga y la experiencia de usuario enrutando su Mi dominio a través de Salesforce Edge Network. | X | ||
| Tablas delgadas | Evite uniones en tablas que tienen campos utilizados frecuentemente. | X | ||
| Proactive Monitoring | Monitoree continuamente anomalías en el crecimiento de registros, el sesgo de propiedad y las regresiones de desempeño. Alerta sobre problemas de escala antes de que se vuelvan críticos. | X | X |
| Recurso | Descripción | Disponibilidad | Desempeño | Escalabilidad |
|---|---|---|---|---|
| Los retos de escalada cuestan millones: así es cómo preparar su negocio para el futuro | Descubra cómo la implementación de la capacidad de ampliación lleva al crecimiento sostenible y al éxito a largo plazo. | X | X | |
| Crear e implementar aplicaciones ampliables utilizando Scale Center | Comprenda cómo evaluar y resolver de forma proactiva problemas de desempeño en sus implementaciones de Salesforce. | |||
| Analizar el desempeño y ampliar puntos de acceso en aplicaciones complejas de Salesforce | Solucione problemas de desempeño y capacidad de ampliación en su organización. | X | X | |
| Su aplicación no debería entrar en pánico en el tráfico en horas punta: a continuación le mostramos cómo prepararse | Aprenda cuatro pasos clave para realizar pruebas de escala con éxito. | |||
| El motor de IA de ApexGuru explicado | Aprenda cómo ApexGuru utiliza modelos entrenados personalizados, telemetría de organización del mundo real y filtrado inteligente para entregar perspectivas precisas, contextuales y con capacidad de acción. | X | X | |
| Optimizar su Apex para aplicaciones y Agentforce con ApexGuru | Aprenda cómo ApexGuru ayuda a los desarrolladores a detectar y solucionar antipatrones de desempeño, incluyendo SOQL, DML, depuración e ineficiencias de prueba. Utilice ApexGuru como un entrenador con tecnología de IA para el desarrollo ampliable de sus aplicaciones y su implementación de Agentforce. | X | X | |
| ApexGuru Antipatterns | Aprenda de la biblioteca oficial de antipatrones detectados por ApexGuru, que se actualiza para cada versión principal de Salesforce. | X | X | |
| Mejores prácticas para implementaciones con grandes volúmenes de datos | Comprenda la repercusión de los procesos de grandes volúmenes de datos. | X | ||
| Consideraciones sobre Salesforce Edge Network | Averigüe cómo preparar su organización para utilizar Salesforce Edge Network. | X | ||
| Plantilla de estándares de diseño | Cree estándares de diseño para su organización. | X | X | X |
| Consideraciones sobre el diseño de modelos de datos | Optimice modelos de datos para la escala y el mantenimiento. | X | X | |
| Diseño del acceso a registros para Enterprise Scale | Optimice el desempeño del control de acceso a través de la configuración. | X | ||
| Infraestructura para sistemas con grandes volúmenes de datos | Obtenga información acerca de funciones que admiten el desempeño del sistema para implementaciones con grandes volúmenes de datos. | X | ||
| Recursos de aprendizaje para Gestión por lotes | Obtenga información acerca de Gestión por lotes. | X | X | |
| Optimización del desempeño Lightning Experience | Mejore Lightning Experience en su organización para ayudar sus usuarios a trabajar más rápido. | X | ||
| Gestionar el sesgo de búsqueda en Salesforce para evitar excepciones de bloqueo de registros | Comprenda cómo minimizar los efectos de los sesgos de búsqueda. | X | X | |
| Mejores prácticas de SOQL y SOSL | Siga las mejores prácticas de SOQL y SOSL para implementaciones con grandes volúmenes de datos. | X | X | |
| Herramientas para alineaciones a gran escala | Planifique y ejecute realineaciones de forma efectiva. | X | ||
| Uso de Mashups | Mantenga grandes conjuntos de datos en una aplicación diferente. | X | X |
| Patrones | Antipatrones | |
|---|---|---|
| Complejidad de aplicación | En su organización:
- Las aplicaciones tienen menos de 10 fichas en la configuración predeterminada proporcionada por el administrador - Ninguna aplicación tiene "Desactivar la personalización de usuario final de elementos de navegación en esta aplicación" establecido como true |
En su organización:
- Las aplicaciones tienen rutinariamente más de 10 fichas en la configuración predeterminada proporcionada por el administrador - Muchas aplicaciones tienen "Desactivar la personalización de usuario final de elementos de navegación en esta aplicación" establecido como verdadero o el permiso para personalizar elementos de navegación está desactivado en toda la organización |
| Formularios | En sus aplicaciones:
- Los campos siguen agrupaciones lógicas - Los campos de entrada de datos aparecen juntos, en grupos de cinco o menos - Los errores de entrada de datos son claros y aparecen a nivel de campo, antes de que los usuarios naveguen fuera o envíen datos - Los controles de paginación permiten el movimiento entre pasos - El envío de datos se produce una vez - Las etiquetas para acciones y navegación son claras - Se proporcionan comentarios oportunos y visuales para reconocer acciones de usuario como clics de botón - Los botones de navegación (por ejemplo, "ir", "siguiente" y "atrás") se colocan de forma coherente en toda la interfaz de usuario |
En sus aplicaciones:
- Los campos de entrada de datos no están agrupados lógicamente, requiriendo una gran cantidad de cambios de contexto por parte de los usuarios que rellenan formularios - Los errores de entrada de datos contienen información críptica que solo puede interpretar alguien que comprende el funcionamiento interno del sistema - Los errores de entrada de datos solo aparecen cuando se hace clic en el botón de envío de un formulario - Los pasos y agrupaciones no están claramente definidos, dificultando la navegación - El envío de datos se produce varias veces a lo largo del proceso de entrada de datos - Las etiquetas para acciones y navegación son confusas para usuarios que no están familiarizados con funciones subyacentes del sistema - No se proporciona reconocimiento visual de acciones de usuario - Los botones de navegación aparecen en ubicaciones arbitrarias en la interfaz de usuario |
| En su lógica de formulario:
- Los campos se rellenan previamente o se rellenan automáticamente tanto como sea posible - No se requiere a los usuarios esperar que se completen acciones del lado del servidor de larga ejecución - Los componentes personalizados utilizan cacheable=true para acciones basadas en servidor que no implican operaciones de datos
- Las operaciones de datos se realizan una vez - En LWC, los adaptadores @wire gestionan todas las acciones que no implican operaciones de datos |
En su lógica de formulario:
- Los campos que se pueden rellenar previamente o rellenar automáticamente requieren ingreso manual - Los usuarios tienen que dejar de trabajar durante el proceso de envío para esperar que se completen las acciones del lado del servidor - Conjunto de componentes personalizados cacheable=false |
|
| Factor de forma | En su organización:
- Las plantillas de página Lightning proporcionadas por Salesforce se utilizan para todas o la mayoría de las páginas - Las plantillas de página Lightning personalizadas utilizan design:supportedFormFactors y design:supportedFormFactor en archivos de diseño de componentes Aura
- Los componentes LWC o Aura personalizados disponibles en el Generador de aplicaciones declaran factores de forma compatibles en sus respectivos archivos de diseño e implementan patrones de estilo que tienen en cuenta la anchura |
En su organización:
- Classic sigue activo - Las plantillas de página Lightning personalizadas no utilizan uniformemente design:supportedFormFactors y design:supportedFormFactor en archivos de diseño de componentes Aura
- Los componentes LWC o Aura personalizados disponibles en el Generador de aplicaciones no declaran coherentemente factores de forma admitidos en sus respectivos archivos de diseño - En componentes LWC o Aura personalizados, el estilo que tiene en cuenta el ancho no está implementado por interfaces proporcionadas por Salesforce - En componentes LWC o Aura personalizados, el estilo para diferentes factores de forma está dirigido puramente por valores de px o % codificados en CSS |
| En escritorio:
- Los campos de entrada de datos y los controles de navegación se ajustan a la pantalla y se puede interactuar con ellos según lo previsto - Las páginas de registro y aplicación aparecen correctamente, basándose en reglas de asignación de activación de página |
En escritorio:
- Los campos de entrada de datos y los controles de navegación no aparecen en sus ubicaciones previstas en la pantalla - Las interacciones con campos de entrada de datos y controles de navegación no coinciden con comportamientos requeridos - La falta de reglas de asignación de activación de página significa que todos los usuarios ven las mismas páginas de registro y aplicación |
|
| En dispositivos móviles y tablets:
- Las entradas de datos y los controles de navegación aparecen correctamente - Los usuarios pueden ingresar datos fácilmente - Los menús de navegación móvil, optimizados para factores de forma más pequeños, aparecen - Los formatos compactos aparecen a nivel de registro |
En dispositivos móviles y tablets:
- Las entradas de datos y los controles de navegación no se representan de forma coherente o correcta - Los usuarios no pueden ingresar datos fácilmente - Los menús de navegación móvil no se distinguen de la navegación de escritorio - Los formatos compactos no están configurados a nivel de registro |
| Patrones | Antipatrones | |
|---|---|---|
| Notificaciones y mensajes | Sus estándares de diseño incluyen:
- Casos de uso aprobados para notificaciones, saludos y notificaciones - Patrones de diseño para variantes de saludo y notificaciones - Patrones de diseño para mensajería de error |
Si los estándares de diseño están definidos, no solucionan errores y notificaciones |
| En su organización:
- Las notificaciones son el formato de mensajería predominante - Los mensajes de saludo utilizan variantes - Mensajes de saludo con modo establecido como pegajoso no existen
- Los avisos se utilizan rara vez, si es que se utilizan - Las respuestas generativas siempre identifican orígenes de datos utilizados - Los bots se identifican claramente antes de la primera interacción con los usuarios - Las renuncias de responsabilidad por riesgos asociados con la IA generativa aparecen a los usuarios antes de la primera interacción - Las renuncias de responsabilidad de IA están en un lenguaje claro y comprensible para los usuarios |
En su organización:
- Los emails son el formato de mensajería predominante - No hay un enfoque coherente para los tipos de mensajes - Los mensajes de saludo no utilizan variantes de forma coherente - Mensajes de saludo con el modo establecido como pegajoso existen
- Los avisos se utilizan ad hoc - Las respuestas generativas no identifican orígenes de datos utilizados - Los bots no se identifican claramente antes de la primera interacción con los usuarios - No aparecen renuncias de responsabilidad por riesgos de IA generativa a los usuarios - Las renuncias de responsabilidad de IA no están en un lenguaje claro y comprensible para los usuarios |
|
| En sus aplicaciones:
- No se envían respuestas generativas directamente a usuarios finales sin puntos de implicación humana |
En sus aplicaciones:
- Las respuestas generativas se envían directamente a usuarios finales sin puntos de implicación humana |
|
| Consulte también: Tratamiento de errores | ||
| Directrices en aplicación | Sus estándares de diseño y documentación incluyen:
- Casos de uso aprobados para directrices en aplicación - Patrones de diseño para solicitudes y presentaciones - Una matriz clara de usuarios, aplicaciones y directrices en aplicación activas |
Si existen estándares de diseño y documentación, estos:
- No tratar directrices en aplicación - No incluir una matriz clara mostrando usuarios, aplicaciones, directrices en aplicación activas |
| En su organización:
- La configuración para "Demora entre directrices en aplicación" utiliza el valor predeterminado o un valor personalizado que es superior al periodo predeterminado (24 horas) proporcionado por Salesforce - Ninguna aplicación tiene más de una presentación activa - Ninguna presentación tiene un parámetro "Tiempos para mostrar" que sea superior a 10 - No se activan solicitudes para "Cualquier página, cualquier aplicación" o "Esta página, cualquier aplicación" |
En su organización:
- La configuración para "Demora entre directrices en aplicación" se establece en un periodo que es más corto que el periodo predeterminado (24 horas) proporcionado por Salesforce - Las aplicaciones tienen más de una presentación activa - Muchas presentaciones tienen un parámetro "Tiempos para mostrar" que es superior a 10 (y algunas tienen el valor máximo de 30) - Las solicitudes se activan ad hoc, muchas con la configuración "Cualquier página, cualquier aplicación" o "Esta página, cualquier aplicación" |
|
| Reconocimiento y recompensas | En su organización:
- Las aplicaciones utilizan análisis integrados para mostrar a los usuarios estadísticas de productividad y progreso de objetivos relevantes - Las celebraciones de rutas solo se activan con el consentimiento del usuario - Las notificaciones y la mensajería incluyen el reconocimiento de usuarios y reflejan las preferencias de los usuarios en el diseño de quién recibe notificaciones y qué desencadena notificaciones |
En su organización:
- Analytics relacionados con el progreso de objetivos y estadísticas de productividad solo están disponibles en reportes o tableros de gestor - Las celebraciones de rutas están activadas sin comprobar el consentimiento del usuario - Las notificaciones y la mensajería no incluyen ningún tipo de reconocimiento de usuario o no reflejan las preferencias de los usuarios y se sienten ruidosas o confusas |
| Herramienta | Descripción | Simplificado | Útil |
|---|---|---|---|
| Activar su página de aplicación Lightning | Gestionar la disponibilidad, los nombres, la visibilidad y el posicionamiento de las páginas | X | |
| Tableros de adopción | Revisar el historial de inicios de sesión, la adopción de funciones y la productividad | X | X |
| Alerta | Persistir alertas sobre sesiones y mostrarlas sin inicio de usuario | X | |
| Caché del lado del cliente de resultados de métodos Apex | Evaluar el desempeño con datos del lado del cliente en caché | X | |
| Formularios dinámicos | Solo mostrar campos obligatorios y secciones de página a usuarios | X | |
| Perspectivas de implicación | Monitorear la actividad de usuarios recientes y realizar acciones según sea necesario | X | X |
| Directrices en aplicación | Utilizar solicitudes y presentaciones para capacitación e incorporación | X | |
| Rutas de aprendizaje | Personalizar experiencias de aprendizaje de usuarios | X | |
| Generador de aplicaciones Lightning | Crear páginas Lightning y móviles personalizadas sin código | X | |
| Servicio de datos Lightning | Almacenar en caché y compartir datos entre componentes | X | |
| Validador del sistema Lightning Design para VS Code | Validar el marcado con directrices SLDS | X | X |
| Plantillas de páginas Lightning | Crear páginas Lightning para diferentes factores de forma | X | |
| Filtros de búsqueda | Filtrar valores para búsqueda, principal-detalle y relaciones jerárquicas | X | |
| Gestionar varias divisas | Utilizar varias divisas en transacciones | X | |
| Mensajería | Enviar mensajes SMS, Facebook Messenger o WhatsApp | X | |
| Mobile Publisher | Crear versiones móviles de aplicaciones Lightning y sitios de Experience Cloud | X | |
| Componentes listos para dispositivos móviles | Construir componentes que tengan un buen desempeño entre experiencias móviles | X | |
| Sitios multilingües | Crear diferentes versiones de idioma de su sitio | X | X |
| Generador de notificaciones | Crear notificaciones personalizadas para presentar información | X | |
| Ruta | Guíe a los usuarios por los procesos de negocio y celebre el éxito | X | X |
| Caché de plataforma | Mejorar el desempeño y la fiabilidad al almacenar datos en caché | X | |
| Vista previa de páginas de aplicaciones móviles en Lightning App Builder | Vista previa de páginas de aplicación y registro en un dispositivo móvil | X | |
| Solicitud | Alertar a los usuarios de problemas y actualizaciones relacionados con el sistema | X | |
| Insignias de reconocimiento | Reconocer y celebrar logros de usuarios | X | |
| Reconocimiento con WDC | Aprobar habilidades y dar las gracias | X | |
| Tipos de registro | Personalizar procesos de negocio, valores de lista de selección y formatos de página | X | X |
| Descripción general de reputación | Reconocer la participación y el intercambio Knowledge | X | |
| Reglas de restricción | Evitar que los usuarios accedan a registros que pueden contener datos innecesarios | X | |
| Componentes de página estándar | Comprender los componentes estándar de Salesforce Lightning | X | |
| Traducciones | Gestionar traducciones para usuarios globales | X | X |
| Reglas de validación | Verificar que los datos cumplen los estándares especificados antes de guardar | X |
| Recurso | Descripción | Simplificado | Útil |
|---|---|---|---|
| Guía del arquitecto para la creación de formularios | Evaluar consideraciones de diseño de formularios y seleccionar la mejor herramienta | X | |
| Configurar su componente para diferentes factores de forma | Configurar componentes para representar en escritorios y teléfonos | X | |
| Personalizar contenido de ayuda | Adaptar contenido de ayuda a su implementación exclusiva | X | |
| Valores de campo predeterminados | Definir valores de campo predeterminados, dinámicos o estáticos | X | |
| Directrices de diseño | Crear interfaces de usuario coherentes con mejores prácticas | X | X |
| Plantilla de estándares de diseño | Crear estándares de diseño para su organización | X | X |
| Diseñar habilidades de prueba (Trailhead) | Planificar métodos para validar y probar diseños | X | X |
| Directrices de comentarios en aplicación | Revisar directrices para recopilar comentarios desde su sistema | X | X |
| Biblioteca estática Android del Sistema Lightning Design | Crear aplicaciones Android nativas con el aspecto de páginas Lightning | X | |
| Lightning Design System iOS Static Library | Crear aplicaciones iOS nativas con el aspecto de páginas Lightning | X | |
| Directrices de mensajería | Comunicar información relevante y crear momentos de placer | X | |
| Tipos de mensajería | Comprender los diferentes tipos de mensajería basándose en la interacción de usuarios | X | |
| Directrices de navegación | Ayudar los usuarios a moverse entre páginas y situarse en una aplicación | X | |
| Pruebas de accesibilidad web (Trailhead) | Utilizar pruebas automatizadas y manuales para garantizar la accesibilidad | X | X |
| Directrices de implicación de usuarios | Revisar directrices para la incorporación, adopción, asistencia y aprendizaje | X | X |
| Patrones | Antipatrones | |
|---|---|---|
| Priorización | En su documentación:
- Todos los nuevos elementos de trabajo tienen mediciones de valor de negocio claras (por ejemplo, aumentos de ingresos, ahorros de costos de optimizaciones de procesos, etc.) - Las hojas de ruta muestran el trabajo priorizado en base al valor de negocio |
En su documentación:
- El valor de negocio asociado con el trabajo no está claro o no existe - Las hojas de ruta no existen |
| Dentro de su compañía:
- Se han identificado los costes de implementación y mantenimiento de todos los elementos de trabajo - Las solicitudes de funciones se priorizan basándose en la repercusión de negocio, la cantidad de nuevo trabajo requerido para entregar y la cantidad de trabajo requerido para mantener |
Dentro de su compañía:
- Los costos asociados con la implementación y el mantenimiento de funciones no están claros - Las solicitudes se entregan de forma ad hoc o según el orden de llegada/primera salida |
|
| Hoja de ruta | Hojas de ruta:
- Comunicar información adaptada a su audiencia (empresarial o técnica) - Comunicar la información con el nivel de detalle correcto - Mostrar fechas de inicio y finalización - Mostrar requisitos previos y dependencias |
Hojas de ruta (si existen):
- Se utilizan como materiales de inicio de proyecto y no artefactos para entrega - No ayudar a alinear partes interesadas y equipos de entrega - Mezclar niveles de detalle (por ejemplo, incluyendo sistemas y componentes en la misma hoja de ruta) - Contener información que no está adaptada a su audiencia (por ejemplo, funciones de negocio y sistemas dentro de la misma hoja de ruta) |
| Dentro de su negocio:
- Las partes interesadas comprenden el "por qué" de los elementos de trabajo - Los equipos de entrega saben cómo evaluar elementos atrasados frente a prioridades a largo plazo - Los equipos saben quién está haciendo qué y cómo gestionar dependencias - El trabajo es intencionado, incluso cuando las prioridades tienen que cambiar rápidamente |
Dentro de su negocio:
- El trabajo se extrae de lo que haya en el atraso y no hay un “por qué” claro - Los equipos tienen problemas para coordinar el trabajo interdependiente y a menudo replican el trabajo sin darse cuenta - El trabajo es a menudo reactivo - Las partes interesadas a menudo se sienten frustradas y confundidas acerca de lo que se está haciendo y son usura cuando se entregarán nuevas funciones |
|
| Gobernanza | Dentro de su negocio:
- Los usuarios pueden reportar fácilmente fallos y solicitar funciones El proceso de priorización de los elementos de trabajo está documentado y es transparente para todas las partes interesadas - La estrategia de entorno está claramente documentada y los entornos de desarrollo coinciden con la documentación - La planificación de versiones es predecible y transparente para todos los miembros del equipo de entrega - Los miembros del equipo saben quién es responsable de qué a lo largo del ciclo de vida de la aplicación - Las versiones son claras para usuarios y equipos de entrega/mantenimiento - Los procesos de asistencia de producción son claros y las soluciones tienen una ruta clara a la producción - Los equipos y proyectos solo utilizan modelos de IA aprobados para usos de negocio |
Dentro de su negocio:
- Los reportes de fallos y las solicitudes de funciones son ad hoc - Los elementos de trabajo no tienen prioridad clara - Los entornos se proporcionan ad hoc y pueden no actualizarse de forma predecible; los desarrolladores a menudo no tienen los entornos y el acceso que necesitan - Las versiones son impredecibles para usuarios y equipos de entrega - Los equipos no saben quién es responsable de qué - Las revisiones se solucionan ad hoc - Su retraso se ha convertido en un “banco de ideas” que está obsoleto y estancado - Los órganos de gobierno actúan como una mesa de ayuda que soluciona problemas de solicitudes de asistencia - La documentación no es fácilmente accesible - Los equipos seleccionan modelos de IA ad hoc |
| Patrones | Antipatrones | |
|---|---|---|
| Estándar frente a Personalizado | En sus estándares de diseño:
- Existe un principio rector claro para evitar que las soluciones se personalicen innecesariamente - El principio rector para las soluciones utiliza la siguiente prioridad: 1. Utilice servicios de plataforma integrados, 2. Tenga en cuenta las aplicaciones AppExchange antes de crear una solución personalizada, 3. Utilizar personalizaciones de código bajo antes de redactar código |
En sus estándares de diseño:
- Los estándares de diseño no existen o no tienen una justificación clara para evitar personalizaciones y códigos innecesarios |
| En su documentación:
- Los registros de decisiones muestran el cálculo de costos a corto y largo plazo al elegir construir o comprar soluciones |
En su documentación:
- Los registros de decisiones no tienen en cuenta los costos a corto y largo plazo al elegir construir o comprar soluciones |
|
| En modelos de datos:
- Ningún objeto tiene nombres o funciones que dupliquen objetos estándar - Los objetos estándar no se utilizan para fines que están muy fuera de su ámbito previsto |
En modelos de datos:
- Los objetos duplican los nombres y/o funciones de objetos estándar - Los objetos estándar se utilizan para fines muy fuera de su ámbito previsto |
|
| En LWC, Aura o Visualforce:
- No existe código para sustituir mecanismos de vista de página estándar |
En LWC, Aura o Visualforce:
- El código existe para sustituir mecanismos de vista de página estándar, a menudo en forma de una sola aplicación de página |
|
| En LWC, Aura o Apex:
- Ningún código intenta sustituir o eludir el orden de ejecución de la plataforma |
En LWC, Aura o Apex:
- El código intenta sustituir o eludir el orden de ejecución de la plataforma |
|
| Deuda técnica | En su hoja de ruta:
- Se planifica el trabajo para abordar la deuda tecnológica - Los entregables y las fechas de inicio/finalización están claros |
En su hoja de ruta:
- No se planifica ningún trabajo para abordar la deuda tecnológica - Los entregables son vagos; las fechas de inicio/finalización no están claras |
| En sus registros de decisiones:
- Los KPI para la solución de la deuda pre/post-tecnológica están claramente documentados - Los debates de compensación para la acción y la inacción se centran en costos o beneficios de negocio |
En sus registros de decisiones:
- La solución de deudas tecnológicas no tiene indicadores clave de desempeño mensurables - La deuda tecnológica se considera en términos técnicos o centrados en TI, sin relevancia para el negocio |
|
| En su organización:
- Ninguna tecnología no compatible o heredada está activa, incluyendo: -- Todos los usuarios trabajan en Lightning Experience -- ninguno o muy pocos usos de @future en Apex (se utiliza Colocable en cola)
-- Todos los Apex externos pertenecen a paquetes AppExchange -- no hay reglas de flujo de trabajo activas (se utiliza Flujo) -- no hay procesos de Process Builder activos (se utiliza Flujo) -- Eventos de envío de temas (se utiliza Captura de datos de cambios) -- Eventos genéricos (se utilizan Eventos de plataforma) -- Versiones de API anteriores a 30.0 -- Las conexiones de organizaciones de Salesforce utilizan el adaptador entre organizaciones para Salesforce Connect |
En su organización:
- La tecnología no admitida o heredada está activa, incluyendo: -- Usuarios que trabajan en Salesforce Classic -- Uso @future en Apex
-- Apex externo desde fuentes que no son AppExchange -- Reglas de flujo de trabajo -- Procesos de Process Builder -- Eventos de PushTopic -- Eventos genéricos -- Versiones de API anteriores a 30.0 -- Conexiones de Salesforce a Salesforce |
| Patrones | Antipatrones | |
|---|---|---|
| Normas de diseño | En su organización:
- El código y las personalizaciones declarativas tienen nombres coherentes y legibles por humanos - Los modelos de datos tienen nombres uniformes y coherentes para objetos y campos - Las auditorías muestran que los campos se rellenan de forma coherente y se hace referencia a ellos en reportes, etc. |
En su organización:
- El código y las personalizaciones declarativas no tienen nombres coherentes - Los modelos de datos tienen nombres incoherentes y muchos objetos y campos parecen ser redundantes - Las auditorías muestran muchos campos no utilizados o varios niveles de uso, y no hay un vínculo coherente a la creación de reportes, etc. |
| Dentro de su negocio:
- Los equipos saben qué herramientas utilizar (y no utilizar) para realizar el trabajo - Los patrones de diseño aprobados son fáciles de encontrar e identificar por caso de uso - Los modelos de IA aprobados están claramente identificados e incluyen un propósito previsto |
Dentro de su negocio:
- Los equipos utilizan muchas herramientas diferentes para realizar un trabajo similar - No hay patrones de diseño aprobados -Lleva mucho tiempo para que los proveedores o nuevos empleados se incorporen - Los modelos de IA aprobados no están claramente identificados, y su propósito previsto no está claro |
|
| Documentación | En su organización:
- El código y las personalizaciones declarativas tienen descripciones claras |
En su organización:
- El código y las personalizaciones declarativas no tienen descripciones, tienen descripciones difíciles de comprender o tienen descripciones que no parecen coincidir con lo que la personalización está haciendo actualmente |
| Dentro de su negocio:
- Existen diagramas para funciones de negocio y detalles de implementación técnica para todas las soluciones - Clave quién/cuándo/qué registros de información existen para personalizaciones de código y declarativas - Las personas pueden buscar y encontrar documentación relevante |
Dentro de su negocio:
- El qué/cómo/por qué de las soluciones es difícil de encontrar y puede no estar disponible para la mayoría de los equipos - Las personas luchan por comprender las soluciones y el sistema con el que están trabajando -Lleva mucho tiempo para que los proveedores o nuevos empleados se incorporen |
| Herramienta | Descripción | Estrategia | Mantenibilidad | Legibilidad |
|---|---|---|---|---|
| ApexDoc | Documento Apex con páginas HTML estáticas | X | X | |
| Eliminar de forma masiva valores de lista de selección inactivos | Eliminar valores no utilizados inactivos de listas de selección | X | ||
| Validador del sistema Lightning Design | Validar marcado y ver cómo mejorar su código | X | X | |
| Migrar a flujo | Convertir reglas de flujo de trabajo y procesos de Process Builder en flujos | X | ||
| Herramienta de gestión de proyectos de Salesforce Labs | Gestionar proyectos en su organización de Salesforce | X | X | |
| Extensiones de Salesforce para Visual Studio Code (ampliado) | Analizar código de Salesforce de forma eficiente con extensiones de Visual Studio Code | X | X | |
| Comprobación de organización | Analizar rápidamente su organización y su deuda técnica | X | ||
| Analizador de código de Salesforce | Escanee código a través de IDE, CLI o CI/CD para asegurarse de que se ajusta a las mejores prácticas | X | X | |
| Explorador de hojas de ruta de Salesforce | Explorar innovaciones de productos de Salesforce | X | ||
| Configurar seguimiento de auditoría | Realizar un seguimiento de cambios de configuración e historial de auditoría | X | X |
| Recurso | Descripción | Estrategia | Mantenibilidad | Legibilidad |
|---|---|---|---|---|
| 5 estrategias de documentación para mejorar su organización de Salesforce | Mejorar la documentación de implementación de Salesforce | X | ||
| Seleccionar convenciones de nomenclatura (Trailhead) | Aprenda cómo aplicar convenciones de nomenclatura | X | ||
| Definición, identificación y medición de deuda técnica | Definir, identificar y medir la deuda técnica | X | X | |
| Plantilla de estándares de diseño | Crear estándares de diseño para su organización | X | X | X |
| Primeros pasos con diagramas de Salesforce | Aprenda cómo crear el diagrama correcto para su caso de uso | X | ||
| Primeros pasos con convenciones de codificación (Trailhead) | Definir y seguir convenciones de codificación | X | ||
| Cómo abordar la deuda técnica (Trailhead) | Gestionar deudas técnicas en su organización de Salesforce | X | X | |
| Mejorar su código Apex (Trailhead) | Aplicar principios básicos de desarrollo dirigido por pruebas | X | ||
| Alineación organizativa (Trailhead) | Aprender el proceso V2MOM para la alineación | X | ||
| Priorización y planificación de una salida a la deuda técnica | Formular un plan para reducir y eliminar la deuda técnica | X | X | |
| Plantilla Convenciones de nomenclatura de Salesforce | Empezar a trabajar con convenciones de nomenclatura | X | X | |
| Deuda técnica: ¿Qué es y por qué debería importarle? | Comprender el impacto de la deuda técnica en su organización | X | ||
| Uso del lienzo de modelo de negocio en Arquitectura de negocio | Crear, entregar y ver valor en un modelo de negocio | X |
| Organización borrador | Developer Sandbox | Sandbox de Developer Pro | Sandbox de copia parcial | Sandbox completo | |
|---|---|---|---|---|---|
| Admite forma de organización | Sí | No | No | No | No |
| Admite el seguimiento de origen | Sí | Sí | Sí | No | No |
| Lifespan | 1-30 días | Controlado manualmente | Controlado manualmente | Controlado manualmente | Controlado manualmente |
| Intervalo de actualización | No disponible | 1 día | 1 día | 5 días | 29 días |
| Compatibilidad de vista previa de versión | Controlado por desarrollador | Basado en instancia de sandbox | Basado en instancia de sandbox | Basado en instancia de sandbox | Basado en instancia de sandbox |
| Tiempo de aprovisionamiento | > 5 minutos | Horas o días | Horas o días | Horas o días | Horas o días |
| Metadatos determinados por | Control de origen | Producción | Producción | Producción | Producción |
| Datos determinados por | Carga de datos manual | Carga de datos manual | Carga de datos manual | Plantilla de sandbox | Producción |
| Límite de datos | 200 MB | 200 MB | 1 GB | 5 GB | Igual que en producción |
| Tarea | Forma de organización | Seguimiento de origen | Actualizaciones frecuentes | Compatibilidad de vista previa de versión | Todos los metadatos de producción | Metadatos parciales de producción | Conjuntos de datos de gran tamaño desde producción | Conjuntos de datos parciales desde producción | Entornos compatibles |
|---|---|---|---|---|---|---|---|---|---|
| Prototipado | X | X | X | X | X | X | X | Sandboxes de organizaciones borrador, Developer y Developer Pro | |
| Investigaciones de nuevas funciones o desarrollo de pruebas de concepto | X | X | X | X | X | X | X | Sandboxes de organizaciones borrador, Developer y Developer Pro | |
| Pruebas de aceptación de usuarios | X | X | X | X | X | X | Sandboxes de Developer, Developer Pro y Copia parcial | ||
| Pruebas de desempeño y escala | X | X | X | Sandbox completo | |||||
| Formación de usuarios | X | X | X | X | X* | X | Developer Pro, copia parcial y sandboxes completos | ||
| *Si es necesario para completar un tipo de trabajo específico, utilice un entorno con menos recursos | |||||||||
| Patrones | Antipatrones | |
|---|---|---|
| Gestión de versiones | En producción:
- Los metadatos muestran el uso de mecanismos de versión estables, como: -- Metadatos organizados en paquetes desbloqueados -- DevOps Center activo e instalado -- Implementaciones a través de la API de metadatos utilizando el formato de origen - Los registros de implementación no muestran implementaciones con fallos en el historial disponible. - El historial de implementación muestra cadencias de versión claras y clústeres de implementación bastante uniformes en plazos de versión. |
En producción:
- Los metadatos indican el uso de mecanismos de versión basados en organizaciones, como: -- Uso activo de conjuntos de cambios -- Las implementaciones a través de la API de metadatos utilizan el formato package.xml - Los registros de implementación muestran instancias repetidas de implementaciones fallidas en el historial disponible. - Las implementaciones no tienen una cadencia discernible o muestran agrupaciones desiguales de implementaciones, que son signos de soluciones rápidas y reversiones ad hoc). - DevOps Center no está activado e instalado. |
| En su hoja de ruta y documentación:
Los nombres de versión están claros. - Las funciones están claramente vinculadas a una versión nombrada específica. - Los nombres de versión tienen capacidad de búsqueda y descubrimiento. - Los equipos pueden encontrar y seguir directrices claras para etiquetar artefactos, elementos de desarrollo y otro trabajo con los nombres de versión correctos. - Es posible obtener una vista clara de un manifiesto de versión por un nombre de versión. - Los umbrales de calidad para aplicaciones de IA generativa se definen para diferentes etapas de desarrollo. |
En su hoja de ruta y documentación:
- Los nombres de versión no están incluidos. - Las funciones no están claramente vinculadas a una versión específica. - Los nombres de versión se utilizan ad hoc o no existen. - Los equipos hacen referencia a artefactos, elementos de desarrollo y otros trabajos de diferentes formas. - No es posible obtener una vista clara de un manifiesto de versión utilizando un nombre de versión. - Los umbrales de calidad para aplicaciones de IA generativa no están definidos, o si lo están, no están definidos para diferentes etapas de desarrollo. | |
| Estrategia medioambiental | En sus organizaciones:
- Se adopta un modelo de desarrollo y versión dirigido por origen. - El seguimiento de origen está activado para sandboxes Developer y Developer Pro. - Los metadatos en un entorno concreto son independientes de los artefactos de versión. - Los entornos no se corresponden directamente con una ruta de versión. - Las rutas de lanzamiento para un cambio dependen del tipo de cambio (riesgo alto, riesgo medio o riesgo bajo). - Los entornos superpoblados no existen. - Los cambios de configuración arriesgados nunca se realizan directamente en producción. - No se producen liberaciones durante el horario laboral pico. - Los sandboxes de Data 360 se utilizan para probar correctamente casos de uso de agentes que requieren Biblioteca de datos Einstein, artículos Knowledge y datos no estructurados |
En sus organizaciones:
- Se adopta un modelo de desarrollo y versión basado en organización. - El seguimiento de origen no está activado para sandboxes Developer y Developer Pro. - Los metadatos en un entorno concreto son un artefacto de versión. - Los entornos corresponden directamente a una ruta de versión. - La ruta de liberación para cada cambio es la misma, independientemente del tipo de cambio. - Existen entornos superpoblados. - Los cambios de configuración arriesgados se realizan directamente en producción. - Las liberaciones se producen durante las horas de oficina pico. - Los agentes Agentforce que requieren Biblioteca de datos Einstein, artículos Knowledge y datos no estructurados no se prueban utilizando sandboxes de Data 360 |
| Estrategia de señalización | En sus organizaciones:
- Los equipos colaboran en la definición y estandarización de API y SLO de comprobación de estado. El examen periódico y el perfeccionamiento de las estrategias de señalización forman parte de los exámenes post mortem y de la preparación operacional. En producción: - Se implementan comprobaciones de estado para todas las aplicaciones. - Las aplicaciones proporcionan señales explícitas acerca de su estado, como su carga y capacidades. - Las aplicaciones están diseñadas para degradarse con gracia cuando las dependencias no son saludables. - El desprendimiento de carga se utiliza para evitar fallos en cascada. En su diseño: - La contrapresión y los mecanismos de eliminación de carga evitan que los servicios se vean desbordados por el tráfico. Se supone que las dependencias fallan. Los controladores de señales están creados para mejorar los fallos. |
En sus organizaciones:
- Los equipos operan en silos, creando mecanismos de señalización sanitaria incoherentes e incompatibles. - Las estrategias de señalización son un pensamiento posterior, solo se solucionan cuando se produce un incidente. En producción: - Los componentes fallan silenciosamente sin señalar su estado de salud. - Las solicitudes reintentan solicitudes en servicios no saludables indefinidamente. - Todas las solicitudes son tratadas con la misma prioridad, independientemente de su importancia. - Para identificar problemas, los operadores se basan únicamente en medidas reactivas, como quejas de usuarios o fallos críticos del sistema. En su diseño: - Se supone que todas las dependencias estarán siempre disponibles, y las particiones de red, los picos de latencia u otros problemas comunes no se tienen en cuenta. - Las aplicaciones aceptan todas las solicitudes entrantes, incluso cuando están sobrecargadas, lo que lleva a un aumento de la latencia y una mayor probabilidad de fallo |
| Estrategia de prueba | En su negocio:
- Las pruebas de capacidad de uso emplean una variedad de dispositivos y tecnología de asistencia. - Los simuladores se utilizan para replicar condiciones similares a producción para pruebas de escalabilidad y desempeño. - Las pruebas están automatizadas para ejecutarse cuando los cambios entran en control de origen. - Las pruebas de resistencia, estrés, desempeño y escala se ejecutan en varios intervalos en el ciclo de desarrollo de la aplicación y se consideran tareas en curso. - Incluye pruebas de escala como parte de su proceso de control de calidad cuando tiene aplicaciones a escala B2C, grandes volúmenes de usuarios o grandes volúmenes de datos. - Sus pruebas de escala se centran en aspectos de alta prioridad del sistema. - Sus pruebas de escala tienen criterios bien definidos. - Realiza pruebas de escala en un Sandbox completo. - La ingeniería de solicitudes incluye una revisión de calidad por un humano. - Centro de pruebas de Agentforce se utiliza para pruebas de agentes sólidas. |
En su negocio:
- Las pruebas de capacidad de uso no se realizan, o si lo son, se realizan en un conjunto limitado de dispositivos. - Los volúmenes similares a producción de solicitudes de usuario, el tráfico de API y las variaciones en la velocidad de red no se prueban. - La automatización de pruebas no está establecida. - Las pruebas de resistencia, estrés, desempeño, escala se consideran una fase o etapa de desarrollo. - No realiza pruebas de escala como parte de su proceso de control de calidad y tiene aplicaciones a escala B2C, grandes volúmenes de usuarios o grandes volúmenes de datos. Sus pruebas de escala no tienen prioridad. - Sus pruebas de escala no tienen criterios bien definidos. - Realiza pruebas de escala en un sandbox de copia parcial o Developer Sandbox. - La ingeniería de solicitudes no incluye una revisión de calidad por un humano. - Los agentes Agentforce no se prueban, o si lo están, solo se prueban ad hoc utilizando Agent Builder. |
| En su organización:
- Todos los datos de prueba se depuran con datos confidenciales e identificativos. |
En su organización:
- Los datos de prueba son idénticos a los datos de producción. | |
| En Apex:
- Los patrones de fábrica de datos se utilizan para pruebas de unidades - Las simulaciones y los stubs se utilizan para simular respuestas de API. |
En Apex:
- Las pruebas de unidad se basan en datos de organización. No se usan simulacros y albaranes. | |
| En sus estándares de diseño y documentación:
- Los entornos se clasifican por los tipos de pruebas que pueden admitir. - Los regímenes de prueba apropiados se especifican según el riesgo, el caso de uso o la complejidad. |
En sus estándares de diseño y documentación:
- No está claro qué tipos de pruebas admite cada entorno. - Los regímenes de prueba no están categorizados por riesgo, caso de uso o complejidad. |
| Tipo de incidente | Desencadenador aparente | Tácticas de recuperación |
|---|---|---|
| Apagones del sistema | Inicios de sesión dañados o problemas con el acceso a la cuenta | Una política de recuperación de cuentas |
| Indisponibilidad de servicio | Activación de servicio de copia de seguridad redundante; soluciones manuales | |
| Bug de producción | Un cambio reciente | Reversión de implementación o implementación de la versión anterior |
| Un fallo emergente e inexplicable | Soluciones manuales, desactivación de funciones no esenciales, distribución a PYME |
| Patrones | Antipatrones | |
|---|---|---|
| Tiempo de recuperación | En su negocio:
- Los protocolos de recuperación se practican a intervalos regulares. - Los equipos saben de qué servicios en producción son propietarios y responsables. - Los equipos comprenden herramientas relevantes para apoyar el diagnóstico de problemas. |
En su negocio:
- Los protocolos de recuperación no existen o no se practican a intervalos regulares. - No está claro qué equipos poseen y son responsables de los diferentes servicios en producción. - Los equipos no tienen directrices o estándares sobre herramientas para apoyar el diagnóstico de problemas. |
| En su documentación:
- Las tácticas de recuperación se definen y clasifican por tipo de incidente y desencadenador. - Los criterios de salida para respuestas de incidentes están incluidos en los SLO y son claros. - Los criterios de activación y la lógica de asignación para permisos elevados durante incidentes son claros. - Los conjuntos de permisos y autorizaciones de respuesta ante incidentes se muestran claramente. - Existe una guía de solución de problemas para ayudar con la identificación y el diagnóstico de problemas comunes. |
En su documentación:
- La respuesta al incidente se realiza ad hoc. - Los criterios de salida para respuestas de incidentes no existen. - Los permisos elevados no están asignados, o si lo están, están asignados ad hoc. - Los conjuntos de permisos y autorizaciones de respuesta ante incidentes no se muestran. |
|
| En su organización:
- Los conjuntos de permisos basados en sesión para la respuesta ante incidentes existen y se pueden asignar al personal de asistencia durante la recuperación. - Configuración del seguimiento de auditoría muestra que los probadores de recuperación designados iniciaron sesión en el entorno de pruebas a la hora acordada y siguieron secuencias de comandos de pruebas de recuperación. |
En su organización:
- Los conjuntos de permisos basados en sesión no existen para la respuesta ante incidentes, o si lo hacen, el personal de asistencia no está autorizado para utilizarlos. - Configuración Seguimiento de auditoría muestra que los probadores de recuperación designados no iniciaron sesión en el entorno de pruebas o no siguieron secuencias de comandos de pruebas de recuperación | |
| En sus planes de prueba:
- Las secuencias de comandos de prueba para pruebas de recuperación existen y son repetibles. - Los entornos para simulaciones de incidentes están claramente enumerados. |
En sus planes de prueba:
- Las secuencias de comandos de prueba para pruebas de recuperación no existen. - Los entornos para simulaciones de incidentes no están establecidos. |
|
| Capacidad de Triage | En su negocio:
– Las PYME o partes interesadas a las que se debe alertar para que presten apoyo a cuestiones complejas se identifican antes de que se produzca un incidente. - La transferencia entre equipos de entrega y asistencia forma parte del lanzamiento. - Si se le consulta, los arquitectos de Salesforce responden rápidamente y ayudan al equipo a permanecer centrado en la recuperación. |
En su negocio:
- Las PYME o partes interesadas que deben ser alertadas no se identifican hasta que se produzca un incidente. - La transferencia entre equipos de entrega y equipos de asistencia no forma parte del proceso de versión. - Los arquitectos de Salesforce consideran que la respuesta ante incidentes está fuera de su ámbito de trabajo. |
| En su documentación:
- Los patrones de diseño y sistema utilizados en una solución concreta son detectables y legibles por el personal de asistencia. |
En su documentación:
- Los patrones de diseño y sistema utilizados en una solución concreta no están disponibles para el personal de asistencia. |
|
| En su organización:
- El registro y los mensajes de error personalizados se incorporan en rutas de ejecución en todo el sistema. |
En su organización: - El registro y los mensajes de error personalizados no se utilizan. | |
| Monitoreo y alerta | En su organización:
- Las alertas solo se utilizan para informar a los usuarios de escenarios que requieren intervención humana; otros fallos se registran y se notifican. - Las alertas se envían a usuarios capaces de responder a ellas. - Cuando sea posible, las alertas se entregan antes de un posible fallo. |
En su organización:
- Las alertas se envían cuando se produce cualquier tipo de fallo, independientemente de si se requieren acciones de seguimiento. - Las alertas sobre problemas que requieren soluciones técnicas se entregan a usuarios de negocio. - Las alertas solo se entregan en respuesta a fallos que ya se produjeron. |
| En su documentación:
- Los criterios de entrada para alertas de ajuste de solicitudes se definen basándose en mediciones de comentarios de IA generativa directa e indirecta. |
En su documentación:
- No hay criterios definidos para desencadenar alertas de ajuste de solicitudes para aplicaciones de IA generativa. |
| Patrones | Antipatrones | Continuidad de negocio | En su negocio:
- Se adopta una mentalidad de “recuperación primero” con un enfoque en poner las funciones y capacidades de negocio de mayor prioridad fuera de impacto lo antes posible. - Existe una programación de mantenimiento para la revisión de planes de prueba de BCP. |
En su negocio:
- Una mentalidad de "solucionar el problema" es el único enfoque para la gestión de incidentes. - Los planes de prueba de BCP no se actualizan a intervalos regulares. |
|---|---|---|
| En su documentación:
- Existe un BCP que contiene pasos para continuar procesando o triajeando datos si Salesforce deja de estar disponible, una lista de eventos que desencadenan el uso del BCP y pasos e intervalos para pruebas de BCP. - El BCP incluye dependencias y sistemas ascendentes y descendentes. |
En su documentación:
- Un BCP no existe, no está completo o solo incluye Salesforce. |
|
| En sus planes de prueba:
- Se tienen en cuenta las áreas de su BCP relacionadas con procesos y personas. |
En sus planes de prueba:
- Las áreas de su BCP relacionadas con procesos y personas no se tienen en cuenta. | |
| Continuidad tecnológica | En su negocio:
- Ha evaluado si necesita construir sistemas de redundancia o conmutación por error intencionados - Las tácticas de recuperación de incidentes están automatizadas siempre que sea posible. |
En su negocio:
- No ha evaluado la necesidad de redundancia intencionada o sistemas de conmutación por error - Las tácticas de recuperación de incidentes son todas manuales. |
| En su documentación:
- El BCP tiene en cuenta recursos adicionales o procedimientos de ruptura de vidrio que los equipos podrían necesitar para responder a incidentes de forma efectiva. |
En su documentación:
- El BCP no incluye necesidades de asistencia operativa. |
|
| Copia de seguridad y restauración | En su documentación:
- Existe una estrategia de copia de seguridad y restauración para datos y metadatos. |
En su documentación:
- Una estrategia de copia de seguridad y restauración no existe, o si lo hace, está incompleta, aplicándose solo a datos o solo metadatos, no a ambos. |
| En su compañía:
- Las copias de seguridad se almacenan en una ubicación segura a la que solo los usuarios autorizados pueden acceder. - Los planes de prueba y los registros de prueba muestran que las restauraciones de datos se prueban en un entorno sandbox de copia completa o parcial al menos dos veces al año. |
En su compañía:
Las copias de seguridad no son legibles. - Las copias de seguridad se almacenan en ubicaciones a las que los usuarios de negocio no autorizados pueden acceder. - No hay ningún proceso de restauración de datos o el proceso de restauración de datos no está probado. |
| Herramienta | Descripción | Gestión del ciclo de vida de aplicaciones | Respuesta de incidente | Planificación de continuidad |
|---|---|---|---|---|
| Pruebas de Apex Hammer | Obtenga información acerca de las pruebas de Salesforce Apex en versiones actuales y nuevas. | X | ||
| API de código auxiliar Apex | Cree un marco de trabajo simulado para simplificar las pruebas. | X | ||
| Copia de seguridad y recuperación | Genere copias de seguridad automáticamente para evitar la pérdida de datos. | X | ||
| Big Objects | Almacene y gestione grandes volúmenes de datos en la plataforma. | X | ||
| Seguimiento del historial de campos | Realice un seguimiento y muestre el historial de campos. | X | ||
| Obtener perspectivas de adopción y seguridad para su organizaciónAbrir vínculo en una nueva ventana | Monitoree la adopción y el uso de Lightning Experience en su organización. | X | ||
| Gestionar trabajos de carga de datos masiva | Cree actualizaciones o elimine grandes volúmenes de registros con la API masiva. | X | ||
| Gestionar eventos de monitoreo de eventos en tiempo real | Gestione la configuración de almacenamiento y transmisión de monitoreo de eventos. | X | ||
| Recursos de datos y almacenamiento | Vea los límites de almacenamiento y el uso de su organización de Salesforce. | X | ||
| Monitorizar registros de depuración | Monitoree los registros y establezca indicadores para desencadenar el registro. | X | ||
| Monitorear la actividad de inicio de sesión con análisis forense de inicio de sesión | Identifique el comportamiento que puede indicar fraude de identidad. | X | ||
| Monitorear cambios de configuración con Configuración Seguimiento de auditoría | Realice un seguimiento de los cambios de configuración recientes realizados por los administradores. | X | ||
| Monitorizar historial de entrenamiento | Vea las clases de capacitación de Salesforce que tomaron sus usuarios. | X | ||
| Monitoreo de trabajos en segundo plano | Monitoree trabajos en segundo plano en su organización. | X | ||
| Monitoreo de trabajos programados | Vea instantáneas de reportes, trabajos Apex programados y actualizaciones de tableros. | X | ||
| Prueba de escala | Pruebe el desempeño del sistema e interprete los resultados. | X | ||
| Proactive Monitoring | Minimice las interrupciones utilizando servicios de monitoreo de Salesforce. | X | ||
| Salesforce Data Mask | Enmascare automáticamente datos en un entorno sandbox. | X | ||
| La página Descripción general del sistema | Vea datos de uso y límites para su organización. | X | ||
| Utilizar force:lightning:lint | Analice y valide código a través de Salesforce CLI. | X |
| Recurso | Descripción | Gestión del ciclo de vida de aplicaciones | Respuesta de incidente | Planificación de continuidad |
|---|---|---|---|---|
| 7 Antipatrones en pruebas de desempeño y escala | Evite antipatrones comunes en pruebas de desempeño y escala. | X | ||
| Analizar el desempeño y ampliar puntos de acceso en aplicaciones complejas de Salesforce | Aprenda un enfoque para solucionar problemas de desempeño y capacidad de ampliación en su organización. | X | ||
| Crear un plan de recuperación de desastres (Trailhead) | Cree un plan de recuperación de desastres. | X | ||
| Continuidad de negocio es más que copia de seguridad y restauración | Obtenga una vista integral de BCP. | X | ||
| Plantilla de estándares de diseño | Cree estándares de diseño para su organización. | X | ||
| Herramientas de diagnóstico y monitoreo en Salesforce | Aprenda cómo mejorar la calidad y el desempeño de sus implementaciones. | X | ||
| Principios rectores para la planificación de la continuidad del negocio | Revise los principios básicos subyacentes al BCP efectivo. | X | ||
| Cómo realizar una Prueba de escala en Salesforce | Conozca las cinco fases del ciclo de vida de las pruebas de escala. | X | ||
| Introducción a las pruebas de desempeño | Aprenda cómo desarrollar un método de prueba de desempeño. | X | ||
| Monitorear su organización | Obtenga información acerca de opciones de monitoreo de autoservicio. | X | ||
| Plantilla de estrategia de prueba | Cree y personalice planes de prueba de escala y desempeño. | X | ||
| Plantilla de estrategia de prueba | Asegúrese de que su estrategia de prueba está completa. | X | ||
| Comprender el desarrollo dirigido por origen (Trailhead) | Obtenga información acerca del desarrollo de paquetes y organizaciones borrador. | X |
| Patrones | Antipatrones | |
|---|---|---|
| Autenticación | En sus estándares de diseño y documentación:
- Las personas de seguridad aprobadas están claramente definidas y enumeradas - La asignación entre personas de seguridad y esquemas de autenticación permitidos (UI, API) existen en una matriz de seguridad |
Si existen estándares de diseño y documentación, estos:
- No incluir personas de seguridad - No incluir una matriz de seguridad con asignaciones claras para personas de seguridad y esquemas de autenticación permitidos |
| En su organización:
- Las configuraciones de inicio de sesión se alinean con la Comprobación de Salesforce MFA - La relación entre usuarios y entidades que inician sesión en Salesforce es 1:1 (sin usuarios compartidos) - Control de acceso de API evita que los usuarios se autentiquen a través de una aplicación conectada no autorizada - Si SSO está activado, los usuarios administradores aprobados tienen acceso de inicio de sesión directo |
En su organización:
- Las configuraciones de inicio de sesión no se alinean con la Comprobación de Salesforce MFA - La relación entre usuarios y entidades que inician sesión en Salesforce no es 1:1 (hay cuentas de usuario compartidas) - Si los usuarios acceden a Salesforce desde detrás de un cortafuegos, el cortafuegos utiliza direcciones IP codificadas para proteger las comunicaciones a/desde Salesforce - Control de acceso de API no está activado - Si SSO está activado, ningún usuario administrador aprobado tiene acceso de inicio de sesión directo |
|
| In LWC, Apex, Aura:
- Los métodos que ejecutan la autenticación utilizan credenciales nombradas para gestionar flujos de nombre de usuario/contraseña - No aparecen nombres de usuario o contraseñas en código en formatos legibles (sin valores codificados o cadenas) - Si existen flujos de inicio de sesión personalizados, todo el código personalizado relacionado utiliza métodos de SessionManagement apropiados |
In LWC, Apex, Aura:
- La autenticación se gestiona ad hoc - Los nombres de usuario y contraseñas aparecen en código |
|
| Autorización | En sus estándares de diseño y documentación:
- Cada usuario y sistema con acceso a Salesforce asigna a una o más personas en una matriz de seguridad - La matriz de seguridad enumera claramente permisos de metadatos y personas de usuario asignadas - Los casos de uso para otorgar privilegios elevados se enumeran claramente, incluyendo: -- Modificar todos los permisos de datos -- Ver todos los permisos de datos |
Si existen estándares de diseño y documentación, estos:
- No incluir una matriz de seguridad - No enumerar claramente permisos - No enumerar claramente casos de uso para otorgar privilegios elevados |
| En su organización:
- Los conjuntos de permisos y los grupos de conjuntos de permisos se utilizan para controlar el acceso a metadatos - Los conjuntos de permisos y los grupos de conjuntos de permisos se alinean con funciones de negocio - Los permisos asignados a usuarios siguen definiciones de matriz de seguridad - Los perfiles se utilizan mínimamente y solo para controlar intervalos de direcciones IP de inicio de sesión y horas de inicio de sesión - Un usuario de integración solo de API exclusivo está configurado para cada integración |
En su organización:
- Los grupos de conjuntos de permisos no están configurados para permitir el acceso basándose en funciones de negocio - Los conjuntos de permisos están configurados ad hoc - Los conjuntos de permisos son redundantes o están muy duplicados; es difícil comprender una lógica funcional clara y diferencias entre conjuntos - Los permisos asignados a usuarios no siguen definiciones de matriz de seguridad - Los perfiles contienen controles de acceso para metadatos - Los usuarios solo de API no están configurados o están compartidos entre más de una integración |
|
| En Apex:
- Las operaciones de base de datos realizan comprobaciones de acceso a nivel de campo y objeto de forma apropiada, incluyendo: -- Las declaraciones DML y DML de base de datos declaran el modo usuario o sistema para operaciones de datos Y/O -- Las declaraciones DML y DML de base de datos utilizan métodos stripInaccessible antes de operaciones de datos
-- Las declaraciones SOQL y SOSL utilizan las palabras clave WITH USER_MODE y WITH SYSTEM_MODE AND/OR
-- Los métodos stripInaccessible se utilizan para filtrar resultados de consultas y subconsultas
-- Los métodos de resultados de descripción de sObject (es decir, isAccessible, isCreateable, isUpdateable y/o isDeletable) se utilizan con moderación |
En Apex:
- DML, métodos de Clase de base de datos, SOQL y SOSL se ejecutan en modo de sistema predeterminado - Las operaciones de la base de datos no realizan comprobaciones de acceso de forma apropiada, incluyendo: -- Los métodos DML o Clase de base de datos utilizan exclusivamente comprobaciones isAccessible, isCreateable, isUpdateable y/o isDeletable para el acceso a nivel de campo y sObject
-- Las consultas SOQL utilizan exclusivamente palabras clave WITH SECURITY_ENFORCED para restricciones de acceso |
|
| En flujos (Consideraciones de seguridad para diseño de flujos):
- Los flujos utilizan el Contexto de ejecución más restrictivo posible, idealmente Modo de usuario - El acceso a datos confidenciales o privilegiados de seguridad se realiza por Subflujos para minimizar el contexto de ejecución - Limitar la lógica realizada en flujos desencadenados por registros - Las entradas de flujo se validan para garantizar que solo se pasan las cargas permitidas como entrada |
En Flujos:
- Los flujos se ejecutan en Modo sistema o Modo sistema sin colaboración, independientemente de las acciones que realice el flujo - Toda la lógica de flujo se realiza dentro de un único flujo grande - Las entradas de flujo no se validan y se pasan a consumidores sin verificación |
| Patrones | Antipatrones | |
|---|---|---|
| Gestión de sesiones | En sus estándares de diseño y documentación:
- Las personas de seguridad enumeran claramente los tipos de sesión aprobados y la configuración de tiempo de espera/duración para cada persona - Las horas de inicio de sesión se han especificado (o identificado como no necesarias) - Las operaciones que requieren permisos o seguridad a nivel de sesión elevada son claras y detectables - El ámbito de la aplicación conectada y las políticas de gestión de tokens son claras y detectables |
En sus estándares de diseño y documentación:
- Las personas de seguridad no existen o carecen de información sobre tipos de sesión y configuración de tiempo de espera/duración - Las políticas de seguridad no contienen información acerca de ámbitos de aplicaciones conectadas o gestión de tokens |
| En su organización:
- Las auditorías de sesión muestran que los usuarios solo acceden a Salesforce a través de tipos de sesión esperados - Existe un conjunto de permisos claro y activo para el acceso de "Usuario solo de API" (con el permiso "Solo de API" establecido como TRUE) y todos los usuarios de integración y automatizados están asignados - Si los usuarios acceden a Salesforce desde detrás de un cortafuegos, el cortafuegos utiliza una lista de admisión de dominios obligatorios en vez de direcciones IP para proteger las comunicaciones a/desde Salesforce - Los intervalos de tiempo de espera de sesión inactivos no superan el valor predeterminado (2 horas) - Todos los siguientes parámetros están activados: -- Protección contra secuestro de clics para páginas de Configuración -- Protección contra secuestro de clics para páginas de Salesforce que no sean de Configuración -- Protección contra la falsificación de solicitudes de sitio cruzado (CSRF) -- Protección de secuencias de comandos de sitio cruzadas (XSS) -- Activar la protección contra el rastreo de contenido -- Protección de URL de referencia -- Advertir a los usuarios antes de que se les redirija fuera de Salesforce |
En su organización:
- No hay auditoría de sesión regular - No hay definiciones de qué tipos de sesión deben tener los usuarios - Los permisos "Solo API" no están claros o faltan en la integración y los usuarios automatizados - Si los usuarios acceden a Salesforce desde detrás de un cortafuegos, el cortafuegos utiliza direcciones IP codificadas para proteger las comunicaciones a/desde Salesforce - Los intervalos de tiempo de espera de sesión inactivos superan el valor predeterminado (2 horas) - Cualquiera de los siguientes parámetros está desactivado: -- Protección contra secuestro de clics para páginas de Configuración -- Protección contra secuestro de clics para páginas de Salesforce que no sean de Configuración -- Protección contra la falsificación de solicitudes de sitio cruzado (CSRF) -- Protección de secuencias de comandos de sitio cruzadas (XSS) -- Activar la protección contra el rastreo de contenido -- Protección de URL de referencia -- Advertir a los usuarios antes de que se les redirija fuera de Salesforce |
|
| In LWC, Apex, Aura:
- Si existen flujos de inicio de sesión personalizados, todo el código personalizado relacionado utiliza métodos de SessionManagement apropiados para asignar seguridad a nivel de sesión |
In LWC, Apex, Aura:
- Si existen flujos de inicio de sesión personalizados, no hay lógica para asignar seguridad a nivel de sesión |
|
| Acceso a dispositivos | En sus estándares de diseño y documentación:
- Las políticas de dispositivos son claras y detectables - Las personas de seguridad están claramente asignadas a usos y políticas de dispositivos apropiados |
En sus estándares de diseño y documentación:
- Las políticas de seguridad no existen o no contienen información sobre el acceso a dispositivos |
| En su organización:
- La configuración de la aplicación conectada móvil Salesforce requiere el desbloqueo de PIN/contraseña después de la inactividad - Si las necesidades de negocio requieren un control estricto de los usuarios que pueden acceder a Salesforce Mobile, el Control de acceso de API está activado y los conjuntos de permisos están asignados a todos los usuarios de aplicaciones móviles Salesforce |
En su organización:
- La aplicación conectada móvil Salesforce no está configurada para requerir desbloqueo de PIN/contraseña por inactividad – Las necesidades de negocio requieren un control estricto de los usuarios que pueden acceder a Salesforce Mobile, pero el Control de acceso de API no está activado o los conjuntos de permisos no se utilizan para controlar el acceso a aplicaciones móviles Salesforce |
|
| Detección y respuesta ante amenazas | En sus estándares de diseño y documentación:
- Las políticas de seguridad contienen una lista de eventos que deben desencadenar una respuesta junto con el tipo de respuesta apropiado - Se han especificado niveles de auditoría para todos los objetos en su modelo de datos - Los pasos para revisar registros disponibles en Salesforce están documentados - Todas las respuestas automatizadas están documentadas claramente |
En sus estándares de diseño y documentación:
- Las políticas de seguridad no existen o no incluyen información sobre la detección y alerta de amenazas - La documentación para respuestas automatizadas no existe o no está clara |
| Dentro de su compañía:
- Los datos de auditoría están disponibles en reportes que las partes interesadas de negocio pueden comprender y acceder - Se realizan revisiones regulares del historial y los reportes de auditoría |
Dentro de su compañía:
- Los datos de auditoría solo están disponibles a través de archivos de registro que requieren experiencia en la materia para acceder e interpretar - No existen procesos para revisar la información de auditoría |
|
| En su organización:
- Existen automatizaciones para responder a amenazas desactivando cuentas de usuario o bloqueando el acceso a recursos en tiempo real si se detecta un uso anormal - Las notificaciones y alertas están configuradas para notificar a los usuarios apropiados sobre actividad anómala - El seguimiento del historial de campos está activado para todos los campos que contienen datos privados o confidenciales |
En su organización:
- No existen automatizaciones para responder a amenazas - Las notificaciones y alertas no están configuradas para notificar a los usuarios apropiados sobre actividad anómala, o existen algunas notificaciones y alertas relacionadas con actividad anómala, pero son ad hoc - El seguimiento del Historial de campos no está activado de forma coherente para campos que contienen datos privados o confidenciales |
| Patrones | Antipatrones | |
|---|---|---|
| Compartición y visibilidad | En sus estándares de diseño y documentación:
- Una matriz de seguridad describe los datos a los que cada persona de usuario está autorizada a acceder - Se utilizan diferentes estándares de acceso a datos para usuarios externos y usuarios internos, si procede |
En sus estándares de diseño y documentación:
- Los estándares de diseño y la documentación no existen o no contienen una matriz de seguridad - Si existe una matriz de seguridad, no describe el acceso a datos para personas de usuario |
| En su organización:
- Los valores predeterminados de toda la organización (OWD) para usuarios internos es Lectura pública, o OWD para usuarios internos es Privado, debido a requisitos de cumplimiento - OWDs para usuarios externos es Privado - La IA generativa solo funciona en modo de usuario, o bien seleccionar usos para el acceso al sistema tiene una justificación de negocio clara |
En su organización:
- OWDs para usuarios internos se establece como Privado sin justificación de negocio o OWDs para usuarios internos se establece como Lectura/escritura pública - Los OWD para usuarios externos se establecen en cualquier cosa que no sea Privado sin justificación de negocio - La IA generativa funciona en modo sistema sin justificación de negocio |
|
| En Apex:
- Todos los códigos que acceden a datos (SOQL/SOSL) o realizan operaciones de datos (métodos DML/Clase de base de datos) se utilizan con compartir palabras clave |
En Apex:
- con colaboración las palabras clave se utilizan de forma incoherente |
|
| Uso del cifrado | En sus estándares de diseño y documentación:
- Los casos de uso para cifrado de datos en tránsito y (si es necesario) en periodos de inactividad son claros y detectables - Los protocolos de cifrado aprobados están claramente enumerados - La documentación del código indica claramente dónde se utiliza el cifrado y qué protocolos se utilizan |
En sus estándares de diseño y documentación:
- Los protocolos de cifrado aprobados no están claros o no se enumeran - El código no está documentado o la documentación no es clara sobre dónde y cómo se utiliza el cifrado en el código |
| En su organización:
- Si se identifican riesgos de seguridad que requieren una mayor protección de datos en periodos de inactividad, ya sea Hyperforce o Salesforce Shield proporcionan cifrado en periodos de inactividad |
En su organización:
- Las necesidades de negocio requieren una mayor protección de datos en periodos de inactividad, pero no se utiliza Hyperforce ni Salesforce Shield |
|
| En Apex:
- Si las necesidades de negocio requieren una mayor protección de datos en tránsito, todo el código implicado en la integración lleva a cabo lógica utilizando métodos de criptoclase para cifrar datos antes de la transmisión o descifrar datos tras la recepción |
En Apex:
- Las necesidades de negocio requieren una mayor protección de datos en tránsito, pero el código implicado en la integración lleva a cabo lógica sin cifrar datos antes de la transmisión o en el momento de la recepción, o los métodos de Clase criptográfica se utilizan ad hoc |
| Herramienta | Descripción | Seguridad organizativa | Seguridad de sesión | Seguridad de datos |
|---|---|---|---|---|
| Clase criptográfica Apex | Cifrar y descifrar datos en Apex | X | ||
| Control de acceso API | Gestionar el acceso a sus API de Salesforce y aplicaciones conectadas | X | X | X |
| Evento de anomalía de API | Realizar un seguimiento de anomalías en cómo realizan los usuarios llamadas de API | X | ||
| Configuración de seguridad del navegador | Proteger datos confidenciales y monitorear certificados SSL | X | ||
| Autenticación basada en certificado | Autenticar individuos con certificados digitales exclusivos | X | X | |
| Certificados y claves | Verificar solicitudes a sitios web externos desde Salesforce | X | X | |
| Escáner de código | Analizar código Apex para vulnerabilidades de seguridad | X | X | |
| Aplicaciones conectadas | Integrar a través de API y protocolos estándar | X | X | |
| Evento de relleno de credenciales | Realizar un seguimiento de intentos de inicio de sesión que utilizan credenciales de usuario robadas | X | ||
| Sitio de confianza de CSP | Evitar ataques de inyección de código (por ejemplo, secuencias de comandos de sitio cruzadas) | X | ||
| Flujos de inicio de sesión personalizados | Controlar procesos de negocio de inicio de sesión para usuarios | X | ||
| Identidad de cliente | Controlar los inicios de sesión y la verificación de sitios web y aplicaciones | X | ||
| Data Mask | Enmascarar automáticamente datos confidenciales en entornos sandbox | X | ||
| Registros de depuración | Realizar un seguimiento de eventos que se producen en su organización | X | ||
| Administración delegada | Asignar privilegios de administrador limitados a usuarios no administradores | X | X | |
| Activación de dispositivo | Verificar inicios de sesión desde navegadores, dispositivos o intervalos de IP que no sean de confianza | X | ||
| Seguridad de transacciones mejorada | Interceptar eventos, monitorear y controlar la actividad de los usuarios | X | ||
| Acceso de campo | Controlar el acceso a los datos a nivel de campo | X | ||
| Seguimiento de auditoría de campo | Definir una política para retener datos de historial de campos archivados | X | ||
| Seguimiento del historial de campos | Realizar seguimiento y mostrar historial de campos | X | ||
| Frontdoor.jsp | Permitir el acceso con un Id. de sesión y URL de servidor existentes | X | ||
| Heroku Connect | Sincronización bidireccional entre Heroku y Salesforce | X | ||
| Heroku Shield | Crear aplicaciones compatibles con HIPAA o PCI | X | ||
| Seguridad de sesión de alta seguridad | Requerir seguridad adicional para operaciones confidenciales | X | ||
| Identity Connect | Asignar registros de usuario a cuentas de Active Directory | X | ||
| Historial de verificación de identidad | Auditar intentos de verificación de identidad de usuario | X | ||
| Licencia de usuario de integración | Otorgue acceso a datos y funciones solo a través de API. | X | X | |
| Lightning Login | Evitar contraseñas débiles u olvidadas y cuentas bloqueadas | X | ||
| Acceso de inicio de sesión | Permitir a los usuarios de asistencia iniciar sesión como otro usuario | X | ||
| Iniciar sesión forense | Identificar comportamientos que pueden indicar fraude de identidad | X | ||
| Historial de inicios de sesión | Monitorear intentos de inicio de sesión de sitio de Experience Cloud y organización | X | ||
| Seguimiento de dispositivos móviles | Realizar un seguimiento y monitorear el acceso de dispositivos móviles a su organización | X | ||
| SDK móvil | Conectar con Salesforce Platform en aplicaciones móviles independientes | X | X | X |
| Monitorizar permisos de usuario (Shield) | Cambios de conjuntos de permisos y grupos de conjuntos de permisos | X | X | |
| Autenticación de múltiples factores | Requerir dos o más métodos de verificación para iniciar sesión | X | X | |
| Autenticación mutua | Aplicar autenticación mutua SSL o TLS | |||
| Mi dominio | Configurar políticas y páginas de inicio de sesión, inicios de sesión de SSO y redes sociales | X | ||
| Credenciales nombradas | Especificar direcciones URL de extremo y parámetros de autenticación | X | ||
| Autorización de OAuth | Autorizar el acceso a la aplicación cliente a través del intercambio de tokens | X | ||
| Políticas de contraseña | Establecer el historial, la longitud y la complejidad de la contraseña | X | ||
| Caducidades de asignación de conjuntos de permisos | Establecer vencimientos para asignaciones de conjuntos de permisos y grupos de conjuntos de permisos | X | X | |
| Evento de conjunto de permisos | Monitorear cambios realizados en conjuntos de permisos y grupos de conjuntos de permisos | X | X | |
| Grupos de conjuntos de permisos | Conjuntos de permisos de paquete para admitir requisitos de acceso complejos | X | ||
| Conjuntos de permisos | Controlar cómo acceden los usuarios a metadatos, funciones y aplicaciones | X | ||
| Conexión privada | Integraciones seguras entre Salesforce y Amazon Web Services | X | ||
| Perfiles | Controlar intervalos de direcciones IP de inicio de sesión y horas de inicio de sesión | X | ||
| Monitoreo de eventos en tiempo real | Monitorear y detectar eventos estándar en Salesforce | X | ||
| Configuración de sitio remoto | Registrar sitios externos para llamadas Apex o JavaScript | X | ||
| Evento de anomalía de reporte | Realizar un seguimiento de anomalías en el modo en que los usuarios ejecutan o exportan reportes | X | ||
| Reglas de restricción | Evitar que los usuarios accedan a registros innecesarios | X | ||
| Analizador de código de Salesforce | Escanee código a través de IDE, CLI o CI/CD para asegurarse de que se ajusta a las mejores prácticas | X | X | |
| Reglas de ámbito | Controlar los registros predeterminados que pueden ver sus usuarios | X | ||
| Centro de seguridad | Visualice parámetros de seguridad en todas sus organizaciones y configure alertas para cambios de postura | X | X | |
| Comprobación de estado de seguridad | Identificar vulnerabilidades en su configuración de seguridad | X | ||
| Evento de secuestro de sesión | Identificar acceso no autorizado a través de identificadores de sesión robados | X | ||
| Clase de gestión de sesiones | Personalizar la configuración de seguridad para una sesión activa | X | ||
| Configuración de seguridad de sesión | Configurar sesiones para proteger frente a ataques malintencionados | X | ||
| Configurar seguimiento de auditoría | Realizar un seguimiento de cambios de configuración recientes realizados por administradores | X | ||
| Configuración de colaboración | Controlar el acceso a datos a nivel de registro | X | ||
| Shield Platform Encryption | Cifrar datos confidenciales en periodos de inactividad y tránsito | X | ||
| Inicio de sesión único | Proporcionar acceso a múltiples aplicaciones a través de un único inicio de sesión | X | X | |
| Sistema para Gestión de identidad entre dominios (SCIM) | Gestionar identidades entre sistemas a través de API de REST | X | ||
| Detección de amenazas | Utilizar estadísticas y aprendizaje automático para detectar amenazas | X | ||
| Intervalos de IP de confianza | Definir direcciones IP que no requieren verificación adicional | X | ||
| Reporte de acceso de usuario | Obtener una vista unificada del objeto, el registro y el acceso de permisos de sus usuarios | X | X |
| Recurso | Descripción | Seguridad organizativa | Seguridad de sesión | Seguridad de datos |
|---|---|---|---|---|
| Una guía para compartir arquitectura | Obtenga más información acerca de herramientas de acceso, modelos de colaboración y casos de uso | X | ||
| Plantilla de estándares de diseño | Crear estándares de diseño para su organización | X | X | X |
| Cómo construir un modelo de seguridad de usuario | Obtener una mejor comprensión de modelos de seguridad de usuario | X | X | |
| Cómo implementar el principio de menor privilegio en Salesforce | Aprenda a aplicar controles de acceso a datos de PoLP en Salesforce | X | X | |
| Monitorizar sesiones de usuario | Revisar sesiones activas y finalizar sesiones sospechosas | X | ||
| Autenticación de múltiples factores | Acceder a recursos oficiales de MFA desde Salesforce | X | ||
| Grupos de conjuntos de permisos (Trailhead) | Ponerse manos a la obra con grupos de conjuntos de permisos | X | X | |
| Arquitectura de API REST | Comprender términos y conceptos de API de REST | X | X | X |
| Seguridad y API de SOAP | Comprender términos y conceptos de API de SOAP | X | X | X |
| Mejores prácticas de seguridad para usuarios de API y del sistema interno | Acceso seguro a Salesforce por usuarios de API y usuarios de sistema internos seguros | X | ||
| Guía de implementación de seguridad | Echar un vistazo integral a Seguridad de Salesforce | X | X | X |
| Plantilla de política de seguridad | Establecer políticas de seguridad para su organización | X | X | X |
| Tipos de sesión | Identificar los tipos de sesiones utilizadas para acceder a su organización | X | ||
| Fundamentos de modelado de amenazas (Trailhead) | Obtenga información acerca de amenazas de seguridad y cómo evitarlas. | X |