# architect Bem arquitetado (well-architected) - Full Documentation
> Leia sobre nossas agendas de atualização [aqui](/docs/architect/pt-br/well-architected/guide/contributors).
## Introdução
Uma solução do Salesforce que é **adaptável** evolui com os negócios. Uma solução bem projetada para ser **adaptável** é resiliente e composta.
Soluções **resilientes** lidam bem com as mudanças.
As soluções **compostables** ajustam-se rapidamente e com maior estabilidade.
A necessidade de mudança de negócio pode vir de muitas fontes: solicitações do cliente, interrupção de mercado ou setor ou oportunidades de transformação digital. Às vezes, as alterações são pequenas. Às vezes, as alterações são profundas. Nos níveis mais profundos, uma mudança pode exigir que as empresas repensem e mudem os principais motivos para operar e reavaliem o que, como e onde oferecer aos clientes. Arquiteturas que são **adaptáveis** não apenas ajudam as empresas a sobreviver e recuperar da interrupção, elas criam o potencial para as empresas inovarem e prosperarem em tempos de profunda mudança.
Criar sistemas que sejam **Adaptáveis** requer pensamento arquitetônico profundamente criativo e preciso. Você precisa começar com uma compreensão precisa da trajetória de curto e longo prazo dos negócios. Conforme você avalia os detalhes individuais da implementação, é preciso considerar os impactos em várias dimensões e níveis de detalhes. Você precisa pensar em termos de pessoas, processos e tecnologia. Você precisa prever simultaneamente os impactos nos níveis de macro e micro, para o estado atual e para qualquer estado futuro.
As seções a seguir fornecem orientação mais aprofundada para cada um dos comportamentos centrais de uma arquitetura de soluções **adaptável**.
## Visão geral adaptável
| Resistente | ||
|---|---|---|
| Soluções resilientes lidam bem com as mudanças. Arquiteturas resilientes podem retornar ao comportamento e operações esperados de maneira rápida e previsível. | ||
| Gerenciamento de ciclo de vida do aplicativo | Resposta de incidente | Planejamento de continuidade |
| Gerenciamento de versão Estratégia ambiental Estratégia de teste |
Tempo para recuperar Capacidade de triagem Monitoramento e alerta |
Continuidade dos negócios Continuidade da tecnologia |
| Composto | ||
| As soluções compostables são ajustadas rapidamente e com maior estabilidade. As arquiteturas compostables são criadas em unidades que funcionam perfeitamente entre si e podem ser trocadas entre entrar e sair do serviço. | ||
| Separação de preocupações | Interoperabilidade | Capacidade de empacotamento |
| Unidades funcionais Gerenciamento de estado |
Mensagens e eventos Gerenciamento de API |
Acoplamento solto Gerenciamento de dependência |
| Padrões | Antipadrões | |
|---|---|---|
| Projeto de processo | Em sua organização:
- Cada fluxo atende a uma única finalidade específica - Cada etapa realiza uma tarefa granular específica - Os fluxos são organizados em uma estrutura hierárquica que consiste em um fluxo principal e subfluxos de suporte - Todas as entradas do usuário têm um propósito claro no fluxo - Os usuários são solicitados a fornecer dados apenas quando os dados do sistema existentes não puderem ser usados |
Em sua organização:
- Os fluxos atendem a vários fins e exigem entradas adicionais para fornecer contexto - Os fluxos exigem entradas cujos dados não são usados - Grupos de etapas relacionadas contêm funcionalidades que se sobrepõem a grupos de etapas em outros fluxos - Os fluxos solicitam entradas do usuário quando os dados armazenados podem ser usados |
| No Apex:
- Cada classe atende a um único propósito específico - Cada método realiza uma tarefa granular específica - Todas as variáveis de entrada têm um propósito claro dentro da classe - A execução de código requer um número mínimo de recursos |
No Apex:
- As classes têm várias finalidades - Os métodos realizam várias tarefas ou realizam tarefas que não estão alinhadas à finalidade declarada da classe da qual fazem parte - As variáveis de entrada não são, na verdade, usadas em métodos - Métodos que recuperam dados desnecessariamente do banco de dados ou de sistemas externos |
|
| Lógica operacional | Em fluxo:
- Nenhuma variável se refere a valores embutidos em código (para tipos de registro, usuários etc.) - Todos os fluxos e processos iniciados automaticamente usam elementos de decisão e/ou pausa para avaliar critérios de entrada e evitar loops ou execuções infinitas em grandes volumes de dados - Fluxos (incluindo processos) lógica de mão para Apex em contextos de grande volume de dados - Os subfluxos são usados para as seções de um processo que precisam ser reutilizados em todo o negócio |
Em fluxo:
- As variáveis têm valores embutidos em código - Os fluxos (incluindo processos) devem ser desativados manualmente antes do carregamento de dados em massa - Fluxos (incluindo processos) acionam avisos de "exceção não tratada" - Mesmo fluxos simples geralmente causam erros relacionados a limites do regulador - Partes de um fluxo são repetidas entre fluxos em vez de usar subfluxos |
| No Apex:
- Nenhuma variável se refere a valores embutidos em código (para tipos de registro, usuários etc.) - Todos os critérios curingas aparecem em SOSL - SOQL é envolvido em try-catch
- Nenhum SOQL aparece em um loop - As instruções SOQL são seletivas, incluindo: -- sem uso de comparações LIKE ou comparações parciais de texto
-- operadores de comparação usam lógica positiva (ou seja, INCLUDES, IN) como lógica primária ou única
-- uso de = NULL, != NULL é raro e/ou sempre segue um operador de comparação positivo
-- nenhuma instrução LIMIT 1 é exibida
-- nenhum uso da palavra-chave ALL ROWS
| No Apex:
- As variáveis têm valores embutidos em código - SOSL raramente é usado ou não é usado de modo consistente para critérios de seleção de curinga - SOQL não está envolvido em try-catch
- SOQL aparece dentro de loops - As instruções SOQL não são seletivas, incluindo: -- Aparecem os critérios de filtro LIKE e curinga
-- comparações usando critérios NÃO, NÃO IN são usados como o operador de comparação principal ou único
-- = NULL, != NULL critérios são usados como o principal ou único operador de comparação
As instruções -- LIMIT 1 são exibidas
-- A palavra-chave ALL ROWS é usada
| |
| Em suas normas de design e documentação:
- Os caminhos de execução planejados e potenciais para automações são descritos claramente - Os casos de uso para operações síncronas e assíncronas em automações são descritos claramente como parte dos padrões de design |
Em suas normas de design e documentação:
- A invocação de automação não está documentada - Casos de uso para operações síncronas e assíncronas não são tratados |
|
| KPIs | Na sua documentação:
- As saídas para cada automação são mensuráveis e temporizadas - As partes interessadas responsáveis são listadas para cada KPI |
Na sua documentação:
- Os KPIs não existem para automações ou têm períodos de tempo imprecisos para medidas - Existem KPIs sem partes interessadas responsáveis |
| Dentro dos relatórios e painéis:
- Todas as métricas relacionadas a KPIs são incluídas em pelo menos um relatório ou painel |
Dentro dos relatórios e painéis:
- Não existe relatório de KPI ou os relatórios estão sem métricas relacionadas a alguns KPIs |
| Padrões | Antipadrões | |
|---|---|---|
| Manuseio de dados | No seu dicionário de dados:
- Há dados em nível de campo e lógica de priorização para todas as fontes de dados e objetos de data lake - O mapeamento de campo do objeto de data lake para o objeto de modelo de dados existe |
No seu dicionário de dados:
- Dados em nível de campo e lógica de priorização para origens de dados e objetos de data lake não são incluídos - O mapeamento de campo de objetos de data lake para objetos de modelo de dados não está incluído |
| No Apex:
- Todas as instruções DML síncronas ou métodos de classe de banco de dados são executados em contextos antes da execução do acionador - As invocações assíncronas do Apex usam enfileiráveis para DML complexo 'chain' entre transações - O Apex em lote é usado exclusivamente para grandes volumes de dados - O Apex @future não é usado ou usado com moderação, para chamadas ou DML de objeto do sistema |
No Apex:
- As instruções DML aparecem regularmente em código que será invocado em contextos de acionador depois - O Apex assíncrono é raramente usado - Recursos assíncronos do Apex são usados arbitrariamente, incluindo: -- Métodos futuros e Apex enfileirável são usados de forma inconsistente ou intercambiável -- As operações de banco de dados não têm lógica clara e consistente para passar a execução para o Apex em lote quando necessário |
|
| Em fluxo:
- Todos os fluxos iniciados no contexto do usuário resumem todas as transações de contexto do sistema para subfluxos, que são colocados consistentemente após um elemento Pausar, para criar uma nova transação - Sequências complexas de operações de dados relacionadas são criadas com o Orquestrador (em vez de invocar vários subfluxos em um fluxo monolítico) - Todos os fluxos acionados por registro têm valores de ordem de acionador preenchidos - Fluxos que envolvem chamadas do sistema externo ou processos de execução longa usam caminhos assíncronos |
Em fluxo:
- Fluxos grandes e monolíticos tentam coordenar sequências complexas de operações de dados relacionadas (com ou sem subfluxos) - Fluxos acionados por registro não usam atributos de ordem do acionador nem usam valores de ordem do acionador de modo consistente - Os caminhos assíncronos não são usados de modo consistente ou não são usados de modo algum |
|
| Em sua organização:
- As regras de reconciliação de resolução de identidade seguem a lógica de priorização em seu dicionário de dados |
Em sua organização:
- As regras de reconciliação de resolução de identidade não seguem a lógica de priorização no dicionário de dados |
|
| Tratamento de erros | No Apex:
- O código engloba todos os DML, SOQL, chamadas e outras etapas críticas do processo em blocos de try-catch
- Exceções personalizadas são usadas para criar mensagens de erro avançadas e lógica - Em contextos assíncronos e em massa, os métodos de classe de banco de dados são usados em vez de DML - Os métodos de classe do banco de dados podem ser usados exclusivamente para todas as operações de dados (em vez de DML) |
No Apex:
- DML, SOQL, chamadas ou outras etapas críticas do processo não são consistentemente agrupadas em blocos de try-catch
- As instruções System.debug aparecem no código de produção (e não são comentadas)
- Nenhum método de classe de banco de dados é usado - As operações de dados são feitas exclusivamente com DML |
| Em Componentes da Web Lightning (LWC):
- JavaScript engloba todas as operações de dados e etapas críticas do processo em se () / outro se () bloqueia
- Todas as funções @wire usam propriedades de dados e erros fornecidas pela API
- Todas as instruções se (erro) / else se (erro) contêm lógica para processar erros e fornecer mensagens informativas |
In LWC:
- O JavaScript não é usado consistentemente se ()/outro se () bloqueia com operações de dados ou etapas críticas do processo
- As funções @wire não usam propriedades de dados e erros fornecidas pela API (ou não as usam de maneira consistente)
- Se usado, se (erro) / outro se (erro) as instruções não realmente contêm lógica para processar erros e fornecer mensagens úteis de erro |
|
| Em Aura:
- JavaScript engloba todas as operações de dados e etapas críticas do processo em blocos de try-catch
- Dentro de blocos de try-catch, erro JavaScript nativo é usado em instruções de lançamento (sem uso de $A.error())
- Todas as lógicas de erro recuperáveis aparecem nas instruções de captura e fornecem mensagens claras do usuário |
Em Aura:
- O JavaScript não engloba consistentemente operações de dados e etapas críticas do processo em blocos de try-catch
- Os componentes usam $A.error()
- Lógica de erro recuperável não aparece consistentemente nas instruções de captura, e as mensagens de erro aos usuários não são claras |
|
| Em fluxo:
- Fluxos de tela usam consistentemente conectores de falha para mostrar erros aos usuários - Mensagens de erro personalizadas são configuradas para erros que aparecerão na tela - Fluxos com operações de dados, chamadas e outra lógica de processamento crítica têm caminhos de falha para todas as ações-chave |
Em fluxo:
- Os fluxos não usam caminhos de falha de modo consistente ou de modo algum - As mensagens de erro personalizadas não são usadas, portanto, os usuários veem a mensagem padrão "Uma falha não tratada ocorreu nesse fluxo" |
| Ferramenta | Descrição | Eficiência | Integridade de dados | Valor de negócios |
|---|---|---|---|---|
| Apex Lote | Reúna registros em lote e processe-os em partes manipuláveis | X | X | |
| Métodos futuros do Apex | Executar métodos do Apex de modo assíncrono em segundo plano | X | X | |
| Enfileiramento Apex | Adicionar trabalhos do Apex a uma fila e monitorá-los | X | X | |
| Apex Scheduler | Executar classes do Apex de modo assíncrono em horários especificados | X | X | |
| Homologações | Especifique as etapas necessárias para aprovar registros | X | X | |
| Apex assíncrono | Executar Apex code de maneira assíncrona | X | X | |
| Ações automatizadas | Realizar atualizações de campo, envios de email e outras ações em segundo plano | X | X | |
| Einstein Next Best Action | Exiba as recomendações certas para as pessoas certas na hora certa | X | X | |
| Alerta por email | Criar e enviar emails automatizados | X | X | |
| Ações de escalação | Especificar ações automatizadas para escalonamentos de caso | X | X | |
| Atualização de campo | Atualizar valores de campo com base em automação | X | X | |
| Flow Builder | Crie automações com uma interface do tipo apontar e clicar | X | X | |
| Extensões de fluxo | Acessar variáveis armazenadas como entradas de componente em fluxos | X | ||
| Biblioteca de modelos de fluxo | Usar modelos para projetar fluxos específicos do setor | X | X | |
| Acionador de fluxo | Automatizar processos comerciais complexos | X | ||
| Ações invocáveis | Adicionar funcionalidade do Apex a fluxos | X | X | |
| Orquestrador | Criar e gerenciar automações de várias etapas | X | X | |
| Mensagem de saída | Enviar informações de um processo automatizado com recibos e novas tentativas | X | ||
| Publicar eventos de plataforma com fluxo | Publicar eventos por meio de interações e automações do usuário | X | ||
| Otimizador de consulta | Usar seletividade e índices para melhorar o desempenho de consulta, relatório e modo de exibição de lista | X | X | |
| Fluxo do Salesforce | Criar automações de processo declarativas com o Flow Builder | X | X | |
| Enviar notificações com fluxos | Enviar mensagens por SMS, WhatsApp ou Facebook Messenger | X | X | |
| Enviar notificações com processos | Enviar mensagens por SMS, WhatsApp ou Facebook Messenger | X | X | |
| SOQL para modificador de atualização | Bloqueie registros para evitar condições de corrida e problemas de segurança de thread | X | ||
| Strategy Builder | Identifique recomendações para exibir em páginas de registro | X | X | |
| Subfluxos | Reduza a complexidade do fluxo por meio da reutilização | X | ||
| Assinar eventos de plataforma com fluxo | Receber mensagens publicadas por meio de automações | X | ||
| Ações de tarefa | Determine os detalhes de atribuição fornecidos a um usuário por uma automação | X |
| Recurso | Descrição | Eficiência | Integridade de dados | Valor de negócios |
|---|---|---|---|---|
| Controladores e limites de execução do Apex | Saiba como o mecanismo de tempo de execução do Apex aplica limites | X | X | |
| Recursos de gerenciamento em lote | Criar, gerenciar, agendar e monitorar trabalhos em lote | X | X | |
| Práticas recomendadas para SOQL e SOSL | Melhore o desempenho da consulta de aplicativos com grandes volumes de dados | X | ||
| Modelo de padrões de design | Criar padrões de design para sua organização | X | X | X |
| Multiplicação de fluxo em transações | Projetar fluxos para operar em relação a coleções | X | X | |
| Considerações sobre fluxos de dados | Aprenda sobre fluxos acionados por agenda para dados em lote | X | X | |
| Depuração de fluxo | Testar e solucionar problemas de fluxos | X | ||
| Como as solicitações são processadas | Saiba como o Salesforce processa trabalhos rapidamente e minimiza falhas | X | X | |
| Modelo de planilha de KPI | Determinar o valor comercial de uma determinada métrica | X | X | |
| Fazendo chamadas a sistemas externos de ações invocáveis | Chamar sistemas externos de um fluxo usando o Apex | X | ||
| Operações de DML mistas | Saiba quais sObjects podem ser usados juntos para DML na mesma transação | X | X | |
| Ordem de Execução | Entenda a ordem dos eventos para inserções, atualizações e inserções e atualizações | X | X | |
| Páginas frequentes do plano de consulta | Otimizar consultas envolvendo grandes volumes de dados | X | X | |
| Considerações sobre fluxo acionado por agenda | Entenda os comportamentos especiais de fluxos acionados por agenda | X | ||
| Controle de transação | Gere um ponto de salvamento que especifique o estado atual do banco de dados | X | X | |
| O que acontece quando um fluxo falha? | Entender o tratamento de erros em fluxos | X | X | |
| Guia de melhores práticas de Automação de fluxo de trabalho | Introdução à automação do Salesforce | X | X | X |
| Trabalhando com consultas SOQL muito grandes | Escreva consultas SOQL mais eficientes | X |
Um sistema composto:
## Separação de preocupações
Um conceito fundamental na engenharia de software e arquitetura de sistemas, a _separação de preocupações_ implica identificar várias preocupações dentro de um sistema maior que pode ser separado em unidades modulares. Para realizar uma forte separação de preocupações em um sistema, é necessário criar unidades significativas para lógica de aplicativos e funções em todo o sistema. As unidades menores tornam mais fácil para as equipes de entrega e manutenção de aplicativos entenderem como e onde fazer alterações, com interrupções mínimas no sistema maior. As unidades menores também tornam mais claro como e onde focar o trabalho ao lidar com a [débeda técnica](/docs/architect/pt-br/well-architected/guide/intentional#dívido-técnico) e contribuem para a [leitura](/docs/architect/pt-br/well-architected/guide/intentional#legibilidade) geral do seu sistema.
Você pode criar uma melhor separação de preocupações em sua organização do Salesforce orientando-a para a funcionalidade de negócios e o estado de gerenciamento.
### Unidades funcionais
Para sistemas do Salesforce, a melhor abordagem para a separação de preocupações aplica uma perspectiva orientada para os negócios para identificar e organizar unidades modulares (ou recursos) no sistema. Isso é diferente de uma visualização focada em engenharia, que identifica unidades com base em sua função técnica. Uma perspectiva orientada para os negócios em separação de preocupações exige organizar o código e as personalizações em seu sistema com base no serviço que eles fornecem aos usuários comerciais e comerciais. Adotar essa abordagem não significa ignorar o potencial de funções técnicas redundantes ou duplicadas em um sistema. Em vez disso, isso significa que os serviços técnicos são mapeados claramente para um princípio de organização que seja, por fim, transparente para os negócios.
Orientar-se para as funcionalidades de negócios ajuda a garantir que as transferências entre a análise de negócios e as equipes de descoberta para as equipes de entrega sejam o mais simples possível. Se os criadores de aplicativo não tiverem ideia de onde suas unidades de trabalho serão mapeadas para sua arquitetura composível, você terá uma bagunça, não uma paisagem de aplicativo composível. Mapeamentos pouco claros entre o estado final exigido pela empresa e as unidades modulares em uma organização também aumentam as chances de equipes de desenvolvimento ou fornecedores criarem funções redundantes no sistema.
Considere o seguinte para orientar as unidades funcionais para a funcionalidade dos negócios:
- **Comece com trabalhos a serem feitos**. Concentre-se nos trabalhos a serem feitos (JTBD) dos usuários e na empresa em si. Iniciada por Tony Ulwick, a abordagem do JTBD se concentra na compreensão do "trabalho", ou verdadeiro propósito, que as pessoas estão tentando alcançar usando um produto ou serviço. É um nível mais alto de abstração do que as tarefas relacionadas ao papel dos usuários ou as etapas individuais em um processo de negócios. Por exemplo, tarefas como verificações de duplicados e validações de endereço podem se enquadrar em uma função de ordem superior de "estabelecer uma única visualização do cliente". Depois de ter uma ideia clara desses recursos de negócios de ordem superior, você pode começar a mapear partes do seu sistema para eles.
- **Oriente-se às capacidades, não às estruturas de relatórios**. A hierarquia interna de suas unidades de negócios não é um proxy para funcionalidades ou trabalhos significativos a serem feitos. A hierarquia interna de seus negócios tem impacto material em processos e estruturas de equipe (para não mencionar orçamentos). Essas são considerações logísticas importantes. Porém, as necessidades funcionais dos negócios operam em um nível mais alto de abstração do que a logística. Se você estiver criando um módulo para apresentar uma estrutura de relatórios em vez de uma função de ordem superior, esteja ciente de que talvez seja necessário realizar etapas adicionais para identificar como esse módulo se relaciona às funcionalidades de negócios.
- **Seja iterativo**. Comece fazendo parceria com a empresa para identificar qual funcionalidade poderia funcionar para um produto mínimo viável (MVP). Ao identificar uma funcionalidade, comece a criar esse MVP. Conforme você cria, identifique os processos, metadados e [eventos ou mensagens](/docs/architect/pt-br/well-architected/guide/composable#mensagens-e-eventos) que são centrais para a unidade funcional que você está criando. Identifique quaisquer processos, metadados e eventos ou mensagens que sejam dependências externas. À medida que unidades mais funcionais são projetadas, implemente o [Gerenciamento de API](/docs/architect/pt-br/well-architected/guide/composable#gerenciamento-de-api) e o [Gerenciamento de dependência](/docs/architect/pt-br/well-architected/guide/composable#gerenciamento-de-dependência) para criar unidades que funcionem bem umas com as outras (em vez de criar unidades isoladas).
A lista de [padrões e antipadrões](/docs/architect/pt-br/well-architected/guide/composable#separação-de-padrões-de-preocupações-e-antipadrões) abaixo mostra qual é a orientação correta (e ruim) para funções de negócios em uma solução do Salesforce. Você pode usá-los para validar seus designs antes de criar ou identificar áreas do seu sistema que precisam ser refatoradas.
Para saber mais sobre as ferramentas disponíveis do Salesforce para ajudá-lo a se orientar melhor para as funcionalidades de negócios, consulte [Ferramentas relevantes para composáveis](/docs/architect/pt-br/well-architected/guide/composable#ferramentas-relevantes-para-composáveis).
### Gerenciamento de estado
O gerenciamento de estado se concentra na movimentação de informações em um sistema em vários pontos no tempo. O gerenciamento de estado eficaz permite que os aplicativos lidem com fluxos complexos de dados ou interações com um mínimo de resultados não planejados ou indeterminados. Gerenciar o estado em uma organização do Salesforce modular significa criar caminhos claros para fluxos de lógica dentro e entre unidades, bem como caminhos elegantes para comportamentos de execução não planejados. O gerenciamento de estado permite formar fluxos de lógica coerentes de unidades de aplicativo do Salesforce modulares. Na maioria dos casos, isso exige [interoperabilidade](/docs/architect/pt-br/well-architected/guide/composable#interoperabilidade) para estruturar o fluxo de informações entre unidades.
Dificuldades no gerenciamento de estado entre unidades soltas geralmente levam ao desenvolvimento de aplicativos monolítico no Salesforce. Você pode ver isso em grandes "monofluxos", que são criados em uma tentativa de orquestrar um processo complexo em um fluxo singular. Outro exemplo são classes Apex maciças, que orquestram processos complexos por meio de _código espaguete_, ou uma longa série de métodos de uso único. Esses tipos de arquiteturas de aplicativo dificultam o refator e a depuração e aumentam os tempos de integração para novos membros da equipe ou fornecedores. Eles também reduzem o valor dos aplicativos entregues à empresa, pois a funcionalidade não é reutilizável.
Considere o seguinte para gerenciar o estado em uma organização do Salesforce modular:
- **Decida quando usar padrões stateful versus stateless**. Os padrões com estado retêm informações em todo o caminho de execução, os padrões sem estado não. Em um sistema solto, padrões sem estado permitem que os componentes sejam refatorados mais rapidamente e com menos efeitos colaterais. No entanto, padrões sem estado não são adequados para todos os casos de uso. Se você estiver criando componentes para operações de dados, os padrões de estado poderão ajudar na integridade e consistência dos dados em todos os seus sistemas. Use um padrão de estado se seu componente atender a qualquer um dos seguintes critérios:
- Conhecer o posicionamento em um caminho de execução maior é essencial para o comportamento do componente
- O comportamento do componente precisa mudar com base nos resultados de uma ação downstream (por exemplo, ele precisa alterar a execução com base em mensagens de reversão/erro/sucesso de componentes downstream)
- O componente precisa aguardar respostas de um sistema externo ou downstream para concluir seu trabalho
- **Criar categorias significativas para informações de estado**. _Estado_ é um termo ambíguo que pode ser aplicado a um conjunto tão profundo e amplo de informações dentro (e além) de uma organização do Salesforce que por si só o termo é quase sem significado. Uma primeira etapa necessária para criar padrões de estado, portanto, é criar categorias _significativas_ para os caminhos de execução de estado mais importantes (ou tipos de comportamentos de estado) em seu sistema. Algumas categorias a considerar:
- Navegação e formulários
- Operações de banco de dados
- Operações em lote e em massa
- Erros
- **Definir estados relacionados a dados em termos de [transações de banco de dados](/docs/architect/pt-br/fundamentals/guide/architecture-basics#manipulação-de-banco-de-dados)**. Os comportamentos integrados da plataforma limitarão a maioria das considerações de estado para dados no Salesforce. Não tente lidar com ou contra esse comportamento. Projetar para e com isso. Projete soluções que minimizam ou eliminam a lógica de transação distribuída. (Consulte [tratamento de dados](/docs/architect/pt-br/well-architected/guide/automated#tratamento-de-dados) para obter mais detalhes).
- **Identifique estados que ocorrem dentro (e entre) unidades funcionais**. Conforme você monta unidades funcionais em sistemas maiores, esteja ciente de quando estiver misturando o comportamento do componente sem estado e com estado e evite combinações que possam criar loops ou lacunas infinitas no processamento.
- **Definir transferências**. Considere que padrões de [mensagens ou de envio](/docs/architect/pt-br/well-architected/guide/composable#mensagens-e-eventos) os componentes usarão para transmitir dados relacionados a estado para outra parte do sistema. Certifique-se de que você está criando consciência sobre transações e [tratamento](/docs/architect/pt-br/well-architected/guide/automated#tratamento-de-dados) em seus componentes. Não inclua nenhuma lógica de transação distribuída em suas transferências.
- **Criar mapeamentos entre seus diagramas de processo e estados**. Os diagramas de processo detalham as etapas que movem as informações pelo seu sistema em vários pontos no tempo. Um diagrama de estado mostra as alterações reais nas informações (o estado). Use a parte do rodapé de metadados dos [Diagramas do Salesforce](/docs/architect/pt-br/reference-diagrams/guide/kit-of-parts) para capturar o estado de alteração das informações em cada etapa do processo. Se você separar diagramas de processo e diagramas de estado, lembre-se de vinculá-los. Esse conceito não deve ser confundido com capturar o estado atual e futuro dos processos ou paisagens do sistema durante o design e a implementação, pois isso não se refere às informações que passam pelo sistema.
A lista de [padrões e antipadrões](/docs/architect/pt-br/well-architected/guide/composable#separação-de-padrões-de-preocupações-e-antipadrões) abaixo mostra como é o gerenciamento de estado adequado (e ruim) em uma solução do Salesforce. Você pode usá-los para validar seus designs antes de criar ou identificar locais em seu sistema que precisam ser refatorados.
Para aprender mais sobre ferramentas do Salesforce para gerenciar o estado, consulte [Ferramentas relevantes para composível](/docs/architect/pt-br/well-architected/guide/composable#ferramentas-relevantes-para-composáveis).
### Separação de padrões de preocupações e antipadrões
A tabela a seguir mostra uma seleção de padrões para procurar (ou criar) em sua organização e antipadrões para evitar ou direcionar para remediação.
✨ Descubra mais padrões para separação de preocupações no [Padrão & Anti-Padrão Explorador](/docs/architect/pt-br/well-architected-tools/guide/adaptable-separation-of-concerns).
| Padrões | Antipadrões | |
|---|---|---|
| Unidades funcionais | Em seus padrões de design:
- Convenções de nomenclatura identificam como denotar uma unidade funcional - Existe uma lista de todas as unidades funcionais definidas no momento (e convenções de nomenclatura relacionadas) - Existem padrões para propor alterações ou adições de unidades funcionais |
Em seus padrões de design:
- Os padrões de design não existem ou não lidam com unidades funcionais e casos de uso |
| Na sua documentação:
- Os diagramas de paisagem do sistema mostram claramente as unidades funcionais em uma organização - Todos os diagramas de implementação e documentação mostram claramente as unidades funcionais para componentes - A documentação para componentes individuais inclui mapeamento de unidade funcional para o componente - Todos os componentes em uma unidade funcional são pesquisáveis e fáceis de localizar |
Na sua documentação:
- A documentação do componente não existe - A documentação do componente descreve a unidade funcional à qual um componente pertence, mas esse é o único lugar em que a definição dessa unidade funcional aparece - Você não pode pesquisar uma unidade funcional específica e/ou as pesquisas não ajudam a identificar todos os componentes em uma unidade funcional |
|
| Em sua organização:
- É possível identificar rapidamente o alinhamento da unidade funcional para um determinado pedaço de metadados (por exemplo, um fluxo, classe do Apex ou página do Lightning) - As unidades funcionais são rotuladas em termos adequados aos negócios |
Em sua organização:
- Não é possível identificar o alinhamento da unidade funcional para nenhum metadado - As informações da unidade funcional são inconsistentes ou imprecisas - As informações da unidade funcional são rotuladas em termos focados em engenharia que são sem significado para usuários de negócios |
|
| Gestão do Estado | Em seus padrões de design:
- Os casos de uso para designs stateful vs. stateless estão claros - Existem padrões aprovados para comunicação sem estado - Existem padrões aprovados para comunicação de estado - Limpe as categorias de estado existentes |
Em seus padrões de design:
- Os padrões de design não existem ou não lidam com padrões e casos de uso de estado/sem estado |
| Na sua documentação:
- Cada componente que lida com comunicação de estado e/ou sem estado indica qual padrão foi implementado - É possível pesquisar e localizar todos os componentes que implementaram um padrão stateful/sem estado específico - Os diagramas de processo e interação fornecem detalhes sobre categorias de estado e transferências |
Na sua documentação:
- A documentação do componente não existe - A documentação do componente descreve o padrão stateful/sem estado implementado, mas esse é o único lugar em que a definição aparece - Não é possível pesquisar um padrão específico e/ou as pesquisas não ajudam a identificar todos os componentes usando esse padrão |
|
| No Apex: - Os pontos de salvamento e os comportamentos de reversão são usados em todas as operações de dados |
No Apex: - Os pontos de salvamento e os comportamentos de reversão não são usados |
|
| Em fluxo: - Caminhos de falha e o elemento Reverter registros é usado |
Em fluxo: - O elemento Reverter registros não é usado |
| Padrões | Antipadrões | |
|---|---|---|
| Mensagens e Eventos | Em seus padrões de design:
- Existem padrões claros para quando usar padrões síncronos (messaging) e padrões assíncronos (eventing) - Existem padrões claros para estruturas de eventos e mensagens |
Em seus padrões de design:
- Não existem padrões de design ou eles não têm padrões claros para padrões de sincronização vs. assíncronos e padrões claros para estruturas de mensagem ou evento |
| Em sua organização:
- Eventos de plataforma usados para mensagens internas do sistema são rotulados claramente - Ferramentas do Salesforce Flow fazem referência a serviços de mensagens ou compromissos de todo o sistema - Padrões consistentes de mensagens e compromissos aparecem em fluxos e códigos |
Em sua organização:
- Eventos de plataforma usados para mensagens internas do sistema não são rotulados claramente ou não existem - Diferentes estratégias para padrões de mensagens e compromissos aparecem em fluxo e código |
|
| No Apex ou LWC:
- Definições de evento personalizadas têm escopo limitado (nenhum evento ou mensagem de todo o sistema é definido em código) - Serviços de mensagens ou eventos em todo o sistema no Apex são anotados de maneiras que os tornam disponíveis nas ferramentas do Salesforce Flow |
No Apex ou LWC:
- Estruturas de mensagens e/ou eventos de todo o sistema são definidas no Apex ou JavaScript - As estruturas de eventos ou mensagens definidas no Apex não estão disponíveis em ferramentas como o fluxo |
|
| Gerenciamento de API | Em seus padrões de design:
- Existem protocolos claros para comunicação entre componentes (ou seja, APIs) - Os protocolos/APIs são descritos em grupos lógicos que os criadores podem pesquisar e localizar - Os protocolos/APIs definem tipos de dados variáveis, nomes de variáveis, o que é obrigatório ou opcional e fornecem uma descrição clara de quando usar |
Em seus padrões de design:
- Os padrões de design não existem ou não definem APIs e casos de uso |
| Na sua documentação:
- A documentação de cada componente lista claramente qual protocolo de API/comunicação foi implementado - É possível pesquisar uma API ou protocolo específico e identificar componentes em que ele é implementado |
Na sua documentação:
- A documentação do componente não existe - A documentação do componente descreve a API implementada em um componente, mas esse é o único lugar em que a definição da API aparece - Não é possível pesquisar uma API ou protocolo específico e/ou as pesquisas não ajudam a identificar componentes em que uma API ou protocolo foi implementado |
|
| Em sua organização:
- Formatos de mensagem de API e variáveis para comunicação interna são definidos com tipos de metadados personalizados - Formatos de mensagem de API e variáveis para comunicação interna são definidos com eventos de plataforma - Personalizações declarativas e de código fazem referência ao tipo de metadados personalizados apropriado (ou evento de plataforma) para enviar ou receber informações |
Em sua organização:
- A comunicação entre componentes do sistema (código e personalizações declarativas) é ad hoc - As APIs são definidas exclusivamente para comunicação entre o Salesforce e sistemas externos |
Independentemente do paradigma de organização de pacote que você escolher, há alguns absolutos a serem considerados:
- **Não duplique metadados entre pacotes**. Os metadados necessários para mais de um pacote devem ser extraídos para um ou mais pacotes declarados como dependências.
- **Use as dependências integradas dos metadados da Salesforce Platform**. Para criadores de aplicativos, os serviços integrados oferecidos pela Salesforce Platform fornecem uma grande quantidade de funcionalidades que podem ser configuradas rapidamente. Muitos desses serviços têm dependências integradas que os tornam difíceis de abstrair em unidades funcionais de baixo nível. Para um determinado tipo de metadados, você precisa entender onde ele se enquadra no [espectro de dependências integradas](https://developer.salesforce.com/blogs/2018/06/lets-talk-deployment-and-reasons-why-they-succeed-or-fail) e usar esse entendimento para [definição de cadeias de dependências de pacote](https://developer.salesforce.com/blogs/2018/06/working-with-modular-development-and-unlocked-packages-part-2). Não comece a adoção do pacote tentando forçar o acoplamento solto em uma funcionalidade de plataforma padrão com muitas dependências integradas. Ele aumentará a complexidade (não o valor) à medida que você alcança funcionalidades de ordem superior. É também outra maneira de cair em [padrão vs. custom](/docs/architect/pt-br/well-architected/guide/intentional#funcionalidade-padrão-versus-personalizada) [anti-padrões](/docs/architect/pt-br/well-architected/guide/intentional#padrões-de-capacidade-de-manutenção-e-antipadrões). Empacote metadados de baixo para cima (menos dependências) e itere ao longo do tempo.
- **Cuidado com suas cadeias de dependência**. Evite criar cadeias de dependência de pacote que exigem que os desenvolvedores dividam suas alterações em muitos pacotes diferentes a qualquer momento.
- **Pense sobre o que faz sentido para o controle de origem**. Há duas maneiras básicas de gerenciar seus pacotes no controle de origem. O primeiro é um único _monorepo_ com pacotes isolados dentro de pastas. A segunda é de vários repositórios com pacotes isolados em seu próprio repositório. Há complexidades para gerenciar cada tipo de estratégia de origem a longo prazo. Em termos de integração do desenvolvedor, os limites verticais são mais eficientes em vários paradigmas de repositório. Os limites horizontais são mais compreensíveis em um monorrepo. Novamente, você pode combinar e combinar estratégias conforme sua arquitetura amadurece.
A lista de [padrões e antipadrões](/docs/architect/pt-br/well-architected/guide/composable#padrões-de-capacidade-de-empacotamento-e-antipadrões) abaixo mostra como é o gerenciamento de dependência adequado (e ruim) com pacotes do Salesforce. Você pode usá-los para validar seus designs antes de criar ou identificar áreas do seu sistema que precisam ser refatoradas.
Para aprender mais sobre ferramentas do Salesforce para gerenciamento de dependência, consulte [Ferramentas relevantes para componíveis](/docs/architect/pt-br/well-architected/guide/composable#ferramentas-relevantes-para-composáveis).
### Padrões de capacidade de empacotamento e antipadrões
A tabela a seguir mostra uma seleção de padrões para procurar (ou criar) em sua organização e antipadrões para evitar ou direcionar para remediação.
✨ Descubra mais padrões para empacotamento no [Padrão & Anti-Padrão Explorador](/docs/architect/pt-br/well-architected-tools/guide/adaptable-packageability).
| Padrões | Antipadrões | |
|---|---|---|
| Acoplamento solto | Em seus padrões de design:
- Convenções de nomenclatura endereçam como denotar unidades de pacote - É possível pesquisar e localizar uma lista de todas as unidades de pacote definidas no momento (e convenções de nomenclatura relacionadas) - Existem padrões para propor alterações ou adições à unidade do pacote - (Opcional) Todos os casos de uso aprovados para configurações personalizadas são listados claramente (se houver) |
Em seus padrões de design:
- Os padrões de design não existem ou não lidam com unidades de pacote e casos de uso |
| Em sua organização:
- Os tipos de metadados personalizados fornecem informações dinâmicas de tempo de execução para personalizações declarativas e de código - Não há configurações personalizadas ou poucas configurações personalizadas e nenhuma está relacionada à funcionalidade do pacote - Não existem objetos personalizados para fornecer informações dinâmicas de tempo de execução para personalizações declarativas ou de código |
Em sua organização:
- As configurações personalizadas são usadas - Existem objetos personalizados para fornecer informações dinâmicas de tempo de execução para personalizações declarativas ou de código - Os tipos de metadados personalizados não são usados (ou não são usados de maneira consistente) para fornecer informações dinâmicas de tempo de execução para personalizações declarativas e de código |
|
| No Apex:
- Serviços comuns e código de caldeira são definidos usando classes abstratas ou virtuais do Apex - Métodos dependentes de informações dinâmicas de tempo de execução fazem referência a tipos de metadados personalizados apropriados |
No Apex:
- Serviços comuns e código de caldeira não são facilmente distinguidos de outras classes - Referências internas entre classes e métodos são difíceis de seguir e são inconsistentes em toda a base de códigos - Os métodos não usam uma abordagem consistente para acessar informações dinâmicas de tempo de execução ou consultam objetos personalizados para informações de comportamento de tempo de execução, ou o código faz referência a configurações personalizadas |
|
| Em ambientes de controle e desenvolvimento de origem:
- arquivos package.xml aparecem apenas em manifestos de projeto de prova de conceito ou estágio inicial |
Em ambientes de controle e desenvolvimento de origem:
- arquivos package.xml são usados para controlar implantações de metadados |
|
| Em embalagens:
- Pacotes desbloqueados dependentes da organização são usados apenas para experiências de estágio inicial ou de prova de conceito - Nenhum pacote não gerenciado é definido em produção ou sandboxes |
Em embalagens:
- Todos os pacotes são pacotes desbloqueados dependentes da organização - Os pacotes não gerenciados são definidos em produção ou sandboxes |
|
| Gerenciamento de dependência | Em seus padrões de design:
- Existem padrões para declarar dependências - Existem padrões para introduzir ou modificar dependências |
Em seus padrões de design:
- Os padrões de design não existem ou não tratam de como declarar dependências |
| No controle de origem:
- Versões de pacote para pacotes desbloqueados usam alias ( LATEST) para declarar dependências em manifestos sfdx-project.json
- Os desenvolvedores podem criar organizações teste e implementar metadados de pacote com sucesso a partir do controle de origem |
No controle de origem:
- Versões de pacote para pacotes desbloqueados são declaradas explicitamente (sem alias ÚLTIMO) nos manifestos sfdx-project.json
- Os desenvolvedores não podem trabalhar com sucesso com organizações teste usando o controle de origem |
|
| Em seus pacotes:
- Nenhum metadado é duplicado entre pacotes - Para desenvolvimento de pacote, todo o trabalho de desenvolvimento de estágio inicial acontece em organizações teste |
Em seus pacotes:
- As dependências são contornadas duplicando metadados em diferentes pacotes - O desenvolvimento de pacotes iniciais acontece em sandboxes do desenvolvedor ou o desenvolvimento de pacotes iniciais não pode acontecer em organizações teste |
|
| Consulte também: Acoplamento solto | ||
| Ferramenta | Descrição | Separação de preocupações | Interoperabilidade | Capacidade de empacotamento |
|---|---|---|---|---|
| Serviços da Web REST do Apex | Exponha suas classes e métodos do Apex a aplicativos externos por meio do REST | X | ||
| Serviços da Web SOAP do Apex | Exponha suas classes e métodos do Apex a aplicativos externos por meio do SOAP | X | ||
| Captura de dados de alteração | Publicar alterações em registros do Salesforce | X | ||
| Tipo de metadados personalizados | Definir a funcionalidade reutilizável, personalizável e empacotável | X | ||
| Decorações | Expor funções ou propriedades publicamente como uma API | X | X | |
| Dev Hub | Gerencie organizações teste, pacotes de segunda geração e recursos do Einstein. | X | X | X |
| Eventos genéricos (legado)* | Enviar eventos personalizados que não estejam vinculados a alterações de dados do Salesforce | X | ||
| Lightning Data Service | Armazenar em cache e compartilhar dados entre componentes | X | X | |
| Metadata API | Implementar personalizações entre ambientes do Salesforce | X | ||
| Relatório de cobertura de metadados | Determine a cobertura de metadados com suporte em vários canais | X | ||
| MuleSoft Composer | Crie automação de processo para dados usando cliques em vez de código | X | ||
| Mensagens de saída | Envie mensagens para pontos de extremidade externos quando os valores de campo forem atualizados | X | ||
| Eventos de plataforma | Envie mensagens seguras e escalonáveis que contenham dados de evento quase em tempo real | X | ||
| Pub/Sub API | Assine eventos de plataforma, Captura de dados de alteração ou Monitoramento de evento em tempo real | X | ||
| Eventos PushTopic (Legado)* | Enviar e receber notificações de alteração de data que correspondem a uma consulta SOQL definida pelo usuário | X | ||
| Salesforce CLI | Desenvolva e crie automação ao trabalhar com sua organização do Salesforce | X | ||
| Diagramas do Salesforce | Criar diagramas para mostrar funcionalidades de negócios e detalhes técnicos | X | ||
| Extensões do Salesforce para Visual Studio Code (expandido) | Extensões oficiais do VS Code para desenvolvimento do Salesforce | X | ||
| Organizações de rascunho | Implemente o código e os metadados do Salesforce em uma organização descartável | X | ||
| Pacotes gerenciados de segunda geração | Desenvolver e distribuir aplicativos para o AppExchange | X | ||
| API do conjunto de ferramentas | Criar ferramentas ou aplicativos de desenvolvimento personalizados para aplicativos da Plataforma do Lightning | X | ||
| Pacotes desbloqueados | Organizar metadados, empacotar um aplicativo ou estender um aplicativo AppExchange | X | ||
| *A Salesforce continuará oferecendo suporte a eventos PushTopic e genéricos nos recursos funcionais atuais, mas não planeja fazer mais investimentos nessa tecnologia. | ||||
| Recurso | Descrição | Separação de preocupações | Interoperabilidade | Capacidade de empacotamento |
|---|---|---|---|---|
| Uma visão primitiva da Integração Digital | Desenvolver uma linguagem comum para conceitos de conectividade | X | ||
| Aplicar design baseado em domínio com o Salesforce | Oriente suas soluções em torno de funcionalidades de negócios | X | ||
| Práticas recomendadas para pacotes de segunda geração | Entender os padrões e práticas de empacotamento 2GP | X | ||
| Componentes disponíveis em pacotes gerenciados | Entender os componentes de metadados de pacote gerenciado | X | ||
| Modelo de padrões de design | Criar padrões de design para sua organização | X | X | X |
| Guia de decisão de arquitetura orientada por evento | Comparar padrões e ferramentas de arquitetura conduzida por evento | X | ||
| Anti-padrões de eventos | Identifique antipadrões para evitar ao usar eventos | X | ||
| Como projetar APIs orientadas por mensagem e por evento | Leia sobre as diferenças em um guia de desenvolvimento do MuleSoft | X | X | |
| Conheça a estrutura de trabalhos a serem feitos | Explore JTBD no Trailhead | X | ||
| Gerenciar estado global no B2C Commerce | Passe facilmente dados entre componentes para manter o estado | X | ||
| Directivas de mensagens | Comunique informações relevantes e crie momentos de prazer | X | ||
| Tipo de mensagens | Entenda diferentes tipos de mensagens pela natureza da interação do usuário | X | ||
| Tipo de metadados | Entenda os diferentes tipos de metadados em sua organização do Salesforce | X | X | |
| Tipo de notificação de aplicativo móvel | Entenda os tipos de notificação para aplicativos Salesforce móvel | X | ||
| Otimização do estado de visualização | Manter o estado em uma página do Visualforce | X | ||
| Experiência do desenvolvedor do Salesforce (DX) | Gerenciar e desenvolver aplicativos na Plataforma do Lightning | X | X | X |
| Tipo de metadados sem suporte | Identifique componentes que não estão disponíveis na API de metadados | X |
| Classificação/Tipo do acionador | Mitigação |
|---|---|
| Pessoas | Política |
| Processo | Playbooks, planos de continuidade |
| Tecnologia | Redundância |
| Acionador | Mitigação | Básico | Intermediário | Maduro |
|---|---|---|---|---|
| Alteração de acesso do usuário para um funcionário novo ou que saiu | Contrato de nível de serviço (SLA) e requisitos para provisionamento ou desprovisionamento de usuários | Provisione e desprovisione usuários manualmente, de acordo com os SLAs para alterações manuais. | Processe as alterações do usuário por meio de trabalhos agendados, de acordo com os SLAs para alterações agendadas. | Automatize o provisionamento e o desprovisionamento de usuários por meio de uma solução de SSO/IDM. |
| Padrões | Antipadrões | |
|---|---|---|
| Gerenciamento de riscos | No seu negócio:
- Uma estrutura de avaliação de risco estabelecida está em uso. - Os riscos são categorizados em áreas de pessoas, processos e tecnologia. |
No seu negócio:
- A estrutura de avaliação de risco para o Salesforce é ad hoc. - Os riscos não são claramente identificados. |
| Na sua documentação:
- A gravidade do risco é categorizada e avaliada com base no impacto do cliente. - A mitigação de risco e os planos de resposta são priorizados. |
Na sua documentação:
- A perspectiva do cliente não é considerada ao avaliar a gravidade do risco ou a categoria. - Os planos de mitigação e resposta de risco tentam capturar todos os riscos imagináveis. |
|
| Limitação de falhas | Em sua organização:
- Os acionadores de ponto de falha e seus planos de mitigação correspondentes são categorizados por pessoas, processos e tecnologia. - Os controles de mitigação são implementados imediatamente, amadurecem ao longo do tempo e incorporam automação assim que possível. - Para garantir a escalabilidade ideal, os testes e otimizações abrangentes são concluídos antes da liberação das alterações para produção. - Antes de eventos críticos para os negócios, o teste e a otimização de escala são realizados conforme os SLAs. |
Em sua organização:
- Os acionadores de ponto de falha não são classificados. Abordagens de mitigação não existem ou são usadas apenas ad hoc. - Os controles de mitigação não são revisitados nem aprimorados. - A automação não é usada na mitigação. |
| Monitoramento e observabilidade | Em sua organização:
- Para verificações e detecção de anomalias, o Proactive Monitoring está habilitado. - Para uma visibilidade contínua, os alertas Proactive Monitoring são integrados ao Centro de escala. |
Em sua organização:
- Somente verificações manuais de integridade são realizadas e nenhum monitoramento contínuo está em vigor. |
| Padrões | Antipadrões | |
|---|---|---|
| Transferência | Em seus padrões de design:
- Orientação sobre como usar o Cache da plataforma adere às Práticas recomendadas de cache da plataforma |
Em seus padrões de design:
- Se houver orientação para o uso do Cache da plataforma, ela não estará clara ou não está alinhada às práticas recomendadas. |
| Em sua organização:
- A massificação é usada para operações de dados e do sistema. - Métodos de DML ou banco de dados sempre operam em relação a coleções no Apex. - Os campos usados durante DML para elapsedTime mais curto no banco de dados são limitados. - Todos os critérios curingas são usados em SOSL. - As instruções SOQL são seletivas.: -- Eles não usam comparações LIKE nem comparações de texto parcial. -- Operadores de comparação usam lógica positiva (em outras palavras, INCLUDES ou IN) como lógica principal ou única. -- = NULL e != NULL são usados apenas raramente sempre segue um operador de comparação positivo. – Para minimizar a carga de dados e maximizar o desempenho, somente os campos necessários em consultas SOQL são recuperados. -- Nenhuma instrução LIMIT 1 é usada. -- A palavra-chave TODAS as linhas não é usada. - O processamento assíncrono é favorecido quando possível. - As partições de Cache da plataforma são configuradas. |
Em sua organização:
- As instruções DML não são massificadas. - Métodos de DML ou banco de dados operam em registros únicos no Apex. - SOSL raramente é usado ou não é usado de modo consistente para critérios de seleção de curinga. - As instruções SOQL não são seletivas: -- Eles incluem critérios de filtro curinga e LIKE. -- Comparações usando critérios !=, NOT ou NOT IN são usadas como o operador de comparação principal ou único. -- Usos = critérios NULL e != NULL como os operadores de comparação primários ou únicos. As instruções -- LIMIT 1 são usadas. -- A palavra-chave TODAS as linhas é usada. - SOQL aparece dentro de loops. - Processos síncronos são favorecidos. |
|
| Latency | Em sua organização:
- Os relatórios atendem a uma única finalidade específica e contêm o número mínimo de linhas e colunas necessárias para tomar decisões. - Os filtros usam "igual a" e "não igual a". - Os filtros não contêm campos de fórmula. - Os modelos de compartilhamento são simplificados ao máximo possível. - Os componentes personalizados da IU usam Componentes da Web Lightning (LWC). - O LWC usa o Lightning Data Service para operações de dados. - A classificação e filtragem de dados de lista são tratadas no lado do cliente em JavaScript. - O Salesforce Edge está habilitado. |
Em sua organização:
- Os relatórios atendem a vários fins ou contêm linhas e colunas extras que não são necessárias para tomar decisões. - Os filtros usam "contém" e "não contém". - Os filtros contêm campos de fórmula. - Os modelos de compartilhamento são complexos. - Os componentes personalizados da IU usam estruturas que podem resultar em renderização menos eficiente do que o LWC (por exemplo, Aura ou Visualforce). - O LWC usa Apex para operações de dados. - A classificação e filtragem de dados de lista é tratada no lado do servidor usando o Apex. - O Salesforce Edge não está habilitado. |
| Padrões | Antipadrões | |
|---|---|---|
| Modelagem de dados | Em seus padrões de design:
- Padrões e diretrizes para as quais justificativas de negócios justificam a existência de um objeto personalizado. |
Em seus padrões de design:
- Não há padrões para criar objetos personalizados. |
| No modelo de dados:
- Objetos padrão são usados quando possível. - As verificações do ApexGuru para antipadrões confirmam que as consultas SOQL são seletivas e evitam o uso de esquema ineficiente. - As tabelas são não normalizadas para escala. |
No modelo de dados:
- Você tem objetos padrão replicados. - As tabelas são normalizadas para evitar redundância. |
|
| Dentro do seu negócio:
- Os criadores de código baixo entendem os diferentes tipos de campo compatíveis com o Salesforce e avaliam os requisitos de relatórios e criptografia antes de selecionar os tipos de dados de campo. - Antes de decidir estabelecer um relacionamento entre mestre e detalhes entre objetos, você avalia as implicações de compartilhamento e desvio de dados desse relacionamento. |
Dentro do seu negócio:
- Os criadores de código baixo selecionam tipos de dados sem avaliar os requisitos de relatórios e criptografia a jusante. - Antes de decidir estabelecer relacionamentos entre mestre e detalhes entre objetos, você não avalia as implicações de compartilhamento e desvio de dados desse relacionamento. |
|
| Data Volume | Em seus dados:
- Nenhum registro pai tem mais de 10 mil registros filhos. - Nenhum usuário é atribuído a mais de 10 mil registros do mesmo tipo de objeto. - Nenhuma instância inclui mais de 10 mil registros que têm campos de pesquisa apontando para o mesmo registro. - Os carregamentos de dados em massa são classificados em lotes de acordo com os valores do campo ParentId. - Para garantir que as estratégias de lote não quebrem em simultâneo, o Teste de escala é usado para validar padrões de carga em massa em escala de produção. - Os carregamentos de dados em massa na produção não ocorrem durante o horário comercial de pico. - As cargas de dados em massa incluem apenas os dados mínimos necessários para decisões de negócios. |
Em seus dados:
- Existem registros com mais de 10 mil registros filho. - Os usuários são atribuídos a mais de 10 mil registros do mesmo tipo. - Existem instâncias em que mais de 10 mil registros têm campos de pesquisa que apontam para o mesmo registro. - Os carregamentos de dados em massa não são classificados em lotes de acordo com os valores de campo ParentId. - Carregamentos de dados em massa em produção ocorrem durante o horário comercial de pico. - As cargas de dados em massa não estão limitadas ao mínimo de dados necessários para decisões de negócios. |
| No Fluxo e no Apex:
- Há lógica para distribuir o número de registros filho entre vários registros pai em cenários em que o desvio de dados é uma preocupação. - Ao importar ou replicar registros por meio de integração, a lógica os atribui aos usuários humanos adequados. - Para coleções do Apex, como listas e conjuntos, existe lógica para processar vários registros para minimizar consultas e otimizar o tratamento de dados. - Código eficiente do Apex que segue os padrões e as melhores práticas para código escalável é escrito e implementado. |
No Fluxo e no Apex:
- Os registros filho são atribuídos arbitrariamente aos registros pai, independentemente do número de registros filho já atribuídos. - Os registros criados por meio de carregamentos de dados ou integrações são atribuídos a um "usuário de integração" genérico. - Várias consultas SOQL recursivas do mesmo objeto estão em transações síncronas, levando a alto uso de heap. - Quando os desenvolvedores escrevem Apex code, eles introduzem ineficiências e antipadrões de desempenho. |
|
| Dentro do seu negócio:
- Você documentou e implementou uma estratégia de depuração e arquivamento de dados |
Dentro do seu negócio:
- Você não tem uma estratégia de depuração e arquivamento de dados ou sua estratégia foi documentada, mas não implementada |
| Ferramenta | Descrição | Disponibilidade | Desempenho | Escalabilidade |
|---|---|---|---|---|
| Objetos grandes | Armazene e gerencie grandes volumes de dados na plataforma. | X | ||
| Scanner de código | Verifique o Apex code quanto a problemas de desempenho. | X | ||
| Índices personalizados | Melhore o desempenho da consulta com índices personalizados. | X | ||
| Exclusão de dados | Remova dados desnecessários para melhorar o desempenho. | X | X | |
| Divisões | Particione dados para limitar contagens de registros em consultas e relatórios. | X | ||
| Teste de escala | Teste o desempenho do sistema e interprete os resultados. Antes de implantar na produção, para validar a escalabilidade e o desempenho, simule as cargas de trabalho de API e UI em grande escala usando scripts do Playwright ou do JMeter. | X | X | |
| Centro de escala | Obtenha percepções em tempo real e por autoatendimento sobre o desempenho do sistema. Encontre transações de execução longa, hotspots de exceção e gargalos de taxa de transferência. Diagnosticar problemas de escala anteriormente em seu ciclo de desenvolvimento. | X | X | |
| ApexGuru | Use esse recurso baseado em GenAI no Centro de escala para detectar antipadrões do Apex, SOQL e classe de teste em tempo de execução. Por meio da integração do ApexGuru com o Salesforce Code Analyzer, obtenha recomendações habilitadas por IA e correções em linha no fluxo de trabalho de desenvolvimento. Use essas recomendações e correções para resolver hotspots e melhorar a seletividade da consulta, a massificação, o uso de cache e a qualidade de testes. | X | X | |
| Analisador de código do Salesforce | Verifique o código com IDE, CLI ou CI/CD para garantir que ele cumpra as práticas recomendadas. Por meio da integração do Salesforce Code Analyzer com o ApexGuru, obtenha percepções sobre antipadrões de desempenho diretamente no fluxo de trabalho do desenvolvedor. | X | ||
| Salesforce Edge Network | Melhore os tempos de download e a experiência do usuário roteando seu Meu domínio pela Salesforce Edge Network. | X | ||
| Tabelas Skinny | Evite junções em tabelas que tenham campos usados com frequência. | X | ||
| Monitoramento proativo | Monitore continuamente anomalias em crescimento de registro, distorção de propriedade e regressões de desempenho. Alerte sobre problemas de escala antes que eles se tornem críticos. | X | X |
| Recurso | Descrição | Disponibilidade | Desempenho | Escalabilidade |
|---|---|---|---|---|
| Os desafios de escala custam milhões — Veja como promover seu negócio no futuro | Descubra como a implementação da escalabilidade leva ao crescimento sustentável e ao sucesso de longo prazo. | X | X | |
| Criar e implementar aplicativos dimensionáveis usando o Centro de escala | Entenda como avaliar e resolver de modo proativo problemas de desempenho em suas implementações do Salesforce. | |||
| Analisar hotspots de desempenho e escala em aplicativos Salesforce complexos | Lide com problemas de desempenho e escalabilidade na sua organização. | X | X | |
| Seu aplicativo não deve entrar em pânico no tráfego de horário rápido - Aqui está como se preparar | Aprenda quatro etapas importantes para testes de escala bem-sucedidos. | |||
| O mecanismo de IA do ApexGuru explicado | Saiba como o ApexGuru usa modelos treinados personalizados, telemetria da organização do mundo real e filtragem inteligente para fornecer percepções precisas, contextuais e acionáveis. | X | X | |
| Otimize seu Apex para aplicativos e Agentforce com o ApexGuru | Saiba como o ApexGuru ajuda os desenvolvedores a detectar e corrigir antipadrões de desempenho, incluindo SOQL, DML, depuração e ineficiências de teste. Use o ApexGuru como um instrutor baseado em IA para o desenvolvimento escalonável de seus aplicativos e sua implementação do Agentforce. | X | X | |
| ApexGuru Antipatterns | Aprenda na biblioteca oficial de antipadrões detectados pelo ApexGuru, que é atualizada para cada versão principal do Salesforce. | X | X | |
| Práticas recomendadas para implantações com grandes volumes de dados | Entenda os impactos do processo de grandes volumes de dados. | X | ||
| Considerações sobre a Salesforce Edge Network | Descubra como preparar sua organização para usar a Salesforce Edge Network. | X | ||
| Modelo de padrões de design | Crie padrões de design para sua organização. | X | X | X |
| Considerações sobre o projeto de modelo de dados | Otimize modelos de dados para escala e manutenção. | X | X | |
| Construindo o acesso ao registro em escala corporativa | Otimize o desempenho do controle de acesso por meio da configuração. | X | ||
| Infraestrutura para sistemas com grandes volumes de dados | Aprenda sobre os recursos que dão suporte ao desempenho do sistema para implantações com grandes volumes de dados. | X | ||
| Recursos de aprendizado para gerenciamento em lote | Aprenda mais sobre o Gerenciamento em lote. | X | X | |
| Otimização de desempenho do Lightning Experience | Melhore o Lightning Experience em sua organização para ajudar seus usuários a trabalhar mais rapidamente. | X | ||
| Gerenciar o seletor de pesquisa no Salesforce para evitar exceções de bloqueio de registro | Entenda como minimizar os efeitos de discrepâncias de pesquisa. | X | X | |
| Práticas recomendadas de SOQL e SOSL | Siga as práticas recomendadas de SOQL e SOSL para implantações com grandes volumes de dados. | X | X | |
| Ferramentas para realinhamentos em grande escala | Planeje e execute realinhamentos de modo eficaz. | X | ||
| Usando Mashups | Mantenha conjuntos de dados grandes em um aplicativo diferente. | X | X |
| Seguro | ||
|---|---|---|
| Um sistema seguro protege a empresa, as partes interessadas e os dados. Arquiteturas seguras garantem que apenas usuários aprovados possam obter acesso, restringir o acesso do usuário ao que é essencial para o trabalho e proteger os dados no sistema contra compromissos. | ||
| Segurança organizacional | Segurança da sessão | Segurança de dados |
| Autenticação Autorização |
Gerenciamento de sessão Acesso ao dispositivo Detecção e resposta a ameaças |
Compartilhamento e visibilidade Uso da criptografia |
| Conformidade | ||
| As soluções em conformidade seguem diretrizes legais e éticas. Arquiteturas em conformidade seguem os regulamentos legais e os padrões do setor, respeitam políticas éticas e atendem a todos os usuários de modo justo. | ||
| Atenção jurídica | Padrões Éticos | Acessibilidade |
| Privacidade de dados Localização |
Políticas da empresa Inteligência artificial |
Entrada de dados Navegação |
| Confiável | ||
| Soluções confiáveis operam de modo eficiente e confiável sob uma variedade de condições. Arquiteturas confiáveis estão disponíveis quando e onde os usuários esperam, têm um desempenho consistente e têm escala com os negócios. | ||
| Disponibilidade | Desempenho | Escalabilidade |
| Gerenciamento de risco Mitigação de falha |
Transmissão Latência |
Modelagem de dados Volume de dados |
| Padrões | Antipadrões | |
|---|---|---|
| Privacidade dos dados | Na sua documentação:
- Você tem um dicionário de dados atualizado contendo nomes de nível de campo, descrições e classificações - Você tem uma matriz de segurança atualizada que identifica quais usuários têm acesso a quais dados - Você tem a documentação de design atualizada, incluindo padrões e diagramas para qualquer automação criada para atender aos requisitos regulatórios |
Na sua documentação:
- Um dicionário de dados não existe ou não foi mantido atualizado - A documentação de compartilhamento e visibilidade não existe ou não foi mantida atualizada - Projetar padrões, diagramas e documentação para automações que atendem aos requisitos regulatórios não existe ou não foi mantido atualizado |
| Em sua organização:
- Todos os objetos e campos que contêm informações confidenciais ou estão sujeitos a normas de privacidade de dados têm Categorização de conformidade, Proprietário de dados, Nível de confidencialidade de dados e Uso de campo configurados |
Em sua organização:
- Objetos e campos que contêm informações confidenciais ou estão sujeitos a normas de privacidade de dados estão sem configuração para Categorização de conformidade, Proprietário de dados, Nível de confidencialidade de dados ou Uso de campo |
|
| Localização | Na sua documentação:
- Você tem uma estratégia da organização que descreve onde os dados serão armazenados e mantidos para cumprir todos os requisitos de residência de dados aplicáveis - Você tem uma estratégia de integração que descreve cenários e processos aceitáveis para replicar dados entre fronteiras - Você tem uma estratégia de análise que descreve o nível de granularidade que os relatórios e painéis podem conter em níveis regional, nacional e global |
Na sua documentação:
- Você não tem uma estratégia da organização ou sua estratégia da organização não lida com localização de dados e requisitos de residência - Você não tem uma estratégia de integração ou sua estratégia de integração não lida com localização de dados e requisitos de residência - Você não tem uma estratégia de análise ou sua estratégia de análise não lida com localização de dados e requisitos de residência |
| Padrões | Antipadrões | |
|---|---|---|
| Políticas da empresa | Em seus padrões de design:
- Os padrões incluem diretrizes claras para áreas afetadas por políticas da empresa |
Em seus padrões de design:
- Não existem padrões de design ou não fornecem diretrizes claras sobre áreas sujeitas às políticas da empresa |
| Na sua documentação:
- A documentação para configuração e personalizações inclui referências aos valores da empresa com suporte |
Na sua documentação:
- A documentação para configuração e personalizações não faz referência a valores ou políticas da empresa |
|
| Em sua organização:
- Todos os objetos e campos que estão sujeitos à conformidade relacionada à política da empresa têm Categorização de conformidade, Proprietário de dados, Nível de confidencialidade de dados e Uso de campo configurados |
Em sua organização:
- Objetos e que estão sujeitos à conformidade relacionada à política da empresa estão sem configuração para Categorização de conformidade, Proprietário de dados, Nível de confidencialidade de dados ou Uso de campo |
|
| Inteligência Artificial | Em seus padrões de design:
- As políticas e os casos de uso aprovados para aplicativos de IA são claros e fáceis de encontrar - Garanta que os dados e documentos usados para RAG sejam representativos, completos, precisos e atualizados. Procure conteúdo com viés, tóxico e outro conteúdo prejudicial que possa estar em seus conjuntos de dados ou documentação - Respostas generativas sempre identificam fontes de dados usadas por modelos de IA - Os conjuntos de dados que podem/não podem ser usados para engenharia de prompts foram documentados - Os bots e as respostas de IA generativa são claramente identificados para os usuários - Os padrões para quando e como usar isenções de responsabilidade para IA generativa são definidos claramente - Existem requisitos claros para como documentar pontos de envolvimento humano em designs de soluções de IA - Existem padrões para documentar caminhos de feedback direto e indireto em designs de soluções de IA - Os pontos em que a IA deve ser identificada para um usuário são definidos claramente - Mantenha uma pessoa no comando, especialmente em casos de uso regulados ou de alto risco |
Em seus padrões de design:
- Não existem padrões de design ou não incluem políticas claras e casos de uso aprovados para aplicativos de IA - As respostas generativas não identificam fontes de dados usadas por modelos de IA - Os conjuntos de dados usados para engenharia de prompts não são documentados - Os bots e as respostas de IA generativa não são identificados para os usuários - Não há isenções de responsabilidade sobre respostas generativas - Não há requisitos para documentar pontos de envolvimento humano em designs de soluções de IA - Não há padrões para documentar caminhos de feedback direto e indireto para designs de soluções de IA - Os padrões de design não indicam pontos em que a IA deve ser identificada para os usuários |
| Na sua documentação:
- A documentação para configuração e personalizações envolvendo a funcionalidade de IA contém uma descrição completa de toda a lógica do processo e é armazenada em um local central acessível por equipes jurídicas ou auditores - Os modelos que você cria ou leva para o Salesforce são claramente documentados, incluindo todos os segmentos de dados aplicáveis - A lógica da conversa e as conversas agentes são fundamentalmente documentadas - Processos estão em vigor para monitorar os modelos de IA da sua organização quanto ao desvio de dados, alterações nas pontuações de fairness e viés, precisão e robustez - As descrições são mantidas para os dados de treinamento, avaliação e teste usados para todos os processos de IA - As descrições são mantidas para qualquer limpeza de dados relacionada à IA junto com testes de viés, resultados associados e pontuações de desempenho/precisão (por exemplo, pontuações F1) |
Na sua documentação:
- A documentação para ajustes e personalizações envolvendo a funcionalidade de IA está ausente, incompleta ou armazenada em um local inacessível - Modelos ou sistemas de IA são implementados em sua organização sem documentação de seus modelos - Os agentes são implementados em sua organização sem documentação de mensagens e fluxo de conversa - Os processos de monitoramento de IA não existem ou não estão documentados - As informações sobre dados de treinamento, avaliação e teste usados para todos os processos de IA não estão claras ou estão indisponíveis - As informações sobre limpeza de dados, testes de viés e resultados relacionados a IA estão indisponíveis ou não estão claras |
| Padrões | Antipadrões | |
|---|---|---|
| Entrada de dados | Em seus padrões de design:
- Todos os dispositivos que podem ser usados para entrada de dados além de um teclado e um mouse padrão são listados - Os valores de texto e suas traduções para todos os idiomas com suporte são listados |
Em seus padrões de design:
- Somente alguns, ou nenhum, dos dispositivos que podem ser usados para entrada de dados além de um teclado e um mouse padrão são listados - Os idiomas com suporte são listados junto com os elementos da IU a serem traduzidos |
| Em seus planos de teste:
- As etapas de teste incluem o uso de vários tipos de dispositivos de entrada para inserir dados - As etapas de teste incluem entrada de dados em vários idiomas |
Em seus planos de teste:
- O teste de acessibilidade não está incluído ou o teste para entrada de dados acessível é feito ad hoc |
|
| Em sua organização:
- As traduções para idiomas com suporte são armazenadas no Workbench de tradução |
Em sua organização:
- As traduções são armazenadas em rótulos personalizados |
|
| Navegação | Em seus padrões de design:
- Todos os dispositivos que podem ser usados para navegação (não apenas teclado e mouse padrão) são listados claramente - Os padrões de UI/UX especificam o tipo e o estilo de todos os controles de navegação - Os tipos de dicas visuais aprovados para transmitir significado ou estado são listados claramente e a cor não é uma dica principal |
Em seus padrões de design:
- Os padrões de design não existem ou não consideram os requisitos de acessibilidade para controles de navegação - Os padrões de UI/UX para navegação são inconsistentes - As dicas visuais para significado ou estado dependem da cor ou não há listas claras de dicas visuais para criadores |
| Em seus planos de teste:
- As etapas de teste incluem o uso de vários tipos de dispositivos de entrada para navegar - Os planos de teste incluem o uso de testes de UI/UX para garantir caminhos de navegação consistentes |
Em seus planos de teste:
- O teste de acessibilidade não está incluído ou o teste para navegação acessível é feito ad hoc |
| Ferramenta | Descrição | Adesão legal | Padrões éticos | Acessibilidade |
|---|---|---|---|---|
| Agentforce Analytics | Obtenha percepções sobre o desempenho dos seus agentes | X | ||
| Central de testes do Agentforce | Execute até 10 trabalhos de teste com até 1.000 casos de teste por teste para que você possa rapidamente criar e avaliar vários cenários. | X | ||
| Citações | As citações ajudam a identificar possíveis imprecisões ou alucinações nas respostas geradas, aumentando sua confiança no uso de ferramentas de IA. | X | ||
| API de consentimento | Rastrear as preferências do cliente para consentimento | X | ||
| Fluxo de eventos de consentimento | Enviar notificações sobre alterações a informações de consentimento ou contato | X | ||
| Objetos de gerenciamento de consentimento | Gerenciar as preferências de consentimento e privacidade do cliente | X | ||
| Acesso a dados e portabilidade | Exportar dados relacionados ao cliente mediante solicitação | X | ||
| Classificação de dados | Informações de auditoria e conformidade da chave de registro para campos de objeto | X | ||
| Relatórios do Data 360 | Monitorar a adesão às instruções do agente | X | ||
| Exclusão de dados | Excluir dados para cumprir normas legais | X | ||
| Preferências de privacidade de dados | Armazenar as preferências de privacidade de dados do cliente | X | X | |
| Tradução de dados | Traduzir dados apresentados aos usuários | X | X | |
| Detecção de dados | Alinhar categorias e níveis de confidencialidade aos dados reais | X | ||
| Explorador do Data 360 | Gerenciar permissões de projeto e objeto para cientistas de dados | X | X | |
| Einstein Data Prism | Uma solução de fundamentação para aplicativos de IA generativa no Salesforce, melhorando a precisão das soluções de IA que usam seus recursos de fundamentação | X | ||
| Camada Einstein Trust | Uma coleção de recursos, processos e políticas projetados para proteger a privacidade dos dados, aprimorar a precisão da IA e promover o uso responsável da IA em todo o ecossistema do Salesforce | X | ||
| Registros de evento aprimorados | Os registros de evento capturam os eventos e as mensagens do usuário em uma sessão do agente para revisar a adesão à instrução, testar e solucionar problemas do agente. | X | ||
| Files Connect | Procurar, pesquisar e compartilhar arquivos externos no Salesforce | X | ||
| Hyperforce | Conformidade com os requisitos de armazenamento de dados locais | X | ||
| Tradução de metadados | Traduzir idiomas para localizar aplicativos | X | X | |
| API de portabilidade | Compilar dados do cliente identificados em sua política de portabilidade | X | X | |
| Centro de preferências | Coletar preferências de comunicação do cliente | X | X | |
| Centro de Privacidade | Atenda a solicitações do cliente e leis de privacidade de dados | X | X | |
| Restruturação do processamento de dados | Restringir métodos de processamento de dados pessoais | X | X | |
| Direito de ser esquecido | Excluir dados individuais do cliente mediante solicitação | X | ||
| Arquivos do Salesforce | Compartilhar e armazenar arquivos de modo privado | X | ||
| Centro de Segurança | Visualizar configurações de segurança e privacidade em várias organizações | X | ||
| Shield Platform Encryption | Criptografe dados em repouso e em trânsito | X | ||
| Workbench de tradução | Manter valores traduzidos para rótulos de metadados e dados | X | X |
| Recurso | Descrição | Adesão legal | Padrões éticos | Acessibilidade |
|---|---|---|---|---|
| 5 Princípios para Design de IA Responsável | Projete a funcionalidade de Inteligência Artificial (IA) de modo ético | X | ||
| Princípios de acessibilidade (Trailhead) | Saiba por que a acessibilidade é importante | X | ||
| Relatórios de conformidade de acessibilidade (ACRs) | Entenda como o Salesforce atende aos padrões de acessibilidade | X | ||
| Visão geral de acessibilidade | Entender a acessibilidade no Salesforce Lightning | X | ||
| Modelo de maturidade de ética de IA | Desenvolva um roteiro para operacionalizar princípios éticos | X | ||
| AI Red Teaming: Testando para Trust | Descubra como os "hackers éticos" do Salesforce desenvolvem IA responsável por meio da equipe vermelha. | X | ||
| Automando o Adversário: Projetando uma estrutura escalável para a IA da equipe vermelha | Aprenda como o Salesforce automatiza a geração de prompts adversários e a validação de respostas. Fuzzai ajuda a proteger interações de IA enquanto reduz a exposição humana a conteúdo prejudicial. | X | ||
| Práticas recomendadas para design de conversa | Siga as práticas recomendadas ao projetar chatbots | X | X | |
| Práticas recomendadas para design sustentável (Trailhead) | Incorpore a sustentabilidade aos seus designs | X | ||
| Gerenciamento de consentimento | Rastrear e cumprir solicitações de consentimento e recusa | X | ||
| Políticas de dados do Einstein | Controle o uso de dados em todas as funcionalidades do Einstein | X | X | |
| Modelo de padrões de design | Criar padrões de design para sua organização | X | X | X |
| Práticas éticas de hacking demonstram sucesso na criação de produtos IA confiáveis | Saiba como a Salesforce utiliza práticas de equipe vermelha para melhorar a segurança de nossos produtos de IA testando uso mal-intencionado, ataques intencionais de integridade, uso indevido benigno e identificando problemas de IA responsável. | X | ||
| Liderança Ética e Negócios | Percepções sobre tecnologia, igualdade e ética | X | ||
| Política de Uso Ético | Explorar a política do Salesforce sobre o uso ético de nossos produtos e serviços | X | ||
| Ética por Design (Trailhead) | Incorporar design ético ao desenvolvimento de tecnologia | X | ||
| Explore a cultura e os valores do Salesforce (Trailhead) | Explorar os valores centrais do Salesforce | X | X | |
| Seguir Diretrizes de design móvel acessível | Siga as práticas recomendadas para tornar seus designs acessíveis | X | X | |
| Introdução ao Web Accessibility (Trailhead) | Aprenda as noções básicas de como tornar sites e aplicativos acessíveis | X | ||
| Como a Salesforce cria uma infraestrutura red teaming reprodutível | Quatro componentes que recomendamos ao projetar, implementar e executar testes adversários | X | ||
| Como executar uma oficina de digitalização de consequência | Considere todos os resultados possíveis durante a inovação | X | ||
| Implementação da Proteção de Dados e Privacidade | Avaliar requisitos de proteção de dados e privacidade | X | ||
| Design inclusivo (Trailhead) | Promover a inovação com princípios de design inclusivos | X | X | |
| Modelo de planilha de KPI | Definir indicadores-chave de desempenho (KPIs) para sua organização | X | ||
| Informação jurídica | Explorar o Centro de informações legais do Salesforce | X | ||
| LWC Cookie Consent Module | Controlar o acesso a cookies do usuário em sites do Experience Cloud | X | X | |
| Visão geral de privacidade | Saiba mais sobre privacidade de dados por região e setor | X | ||
| Promover agentes responsáveis e éticos | Saiba como implementar estratégias de teste e equipe ética e desenvolver princípios e padrões de orientação para sua organização. | X | ||
| Directivas de IA agente responsável | X | |||
| Criação responsável do módulo Trailhead de IA | Saiba como remover viés de seus dados e algoritmos para criar sistemas de IA éticos em sua empresa. | X | ||
| Directivas de IA generativa responsável | Construímos nossos Princípios IA confiáveis com um novo conjunto de diretrizes focadas no desenvolvimento e implementação responsáveis de IA generativa. | X | ||
| Certificações de conformidade da Salesforce | Revisar as certificações e atestados de conformidade da Salesforce | X | ||
| Design sustentável (Trailhead) | Reforce o relacionamento entre negócios e sociedade | X | ||
| Teste para acessibilidade na Web (Trailhead) | Utilizar testes automatizados e manuais para garantir a acessibilidade | X | ||
| IA agente confiável | Saiba como a Agentforce usa salvaguardas e princípios de IA responsável para criar IA ética. | x |
| Padrões | Antipadrões | |
|---|---|---|
| Complexidade do aplicativo | Em sua organização:
- Os aplicativos têm menos de 10 guias na configuração padrão fornecida pelo administrador - Nenhum aplicativo tem "Desabilitar personalização do usuário final de itens de navegação neste aplicativo" definido como true |
Em sua organização:
- Os aplicativos normalmente têm mais de 10 guias na configuração padrão fornecida pelo administrador - Muitos aplicativos têm "Desabilitar personalização do usuário final de itens de navegação neste aplicativo" definido como verdadeiro ou a permissão para personalizar itens de navegação está desabilitada em toda a organização |
| Formulários | Em seus aplicativos:
- Campos seguem agrupamentos lógicos - Campos de entrada de dados aparecem juntos, em grupos de cinco ou menos - Os erros de entrada de dados são claros e aparecem no nível do campo antes de os usuários sairem ou enviarem dados - Os controles de paginação permitem a movimentação entre as etapas - O envio de dados acontece uma vez - Rótulos para ações e navegação são claros - Feedback oportuno e visual é fornecido para confirmar ações do usuário, como cliques em botões - Os botões de navegação (por exemplo, "Ir", "Avançar" e "Voltar") são colocados de modo consistente em toda a IU |
Em seus aplicativos:
- Os campos de entrada de dados não são agrupados de modo lógico, exigindo uma grande quantidade de alternância de contexto pelos usuários que preenchem formulários - Os erros de entrada de dados contêm informações cretinas que só podem ser interpretadas por alguém que entende o funcionamento interno do sistema - Erros de entrada de dados aparecem apenas quando o botão de envio de um formulário é clicado - Etapas e agrupamentos não são definidos claramente, dificultando a navegação - O envio de dados ocorre várias vezes ao longo do processo de entrada de dados - Rótulos para ações e navegação estão confusos para usuários que não estão familiarizados com a funcionalidade do sistema subjacente - A confirmação visual de ações do usuário não é fornecida - Os botões de navegação aparecem em locais arbitrários em toda a IU |
| Na sua lógica de forma:
- Os campos são pré-preenchidos ou preenchidos automaticamente o máximo possível - Os usuários não precisam esperar a conclusão de ações no lado do servidor de execução longa - Componentes personalizados usam cacheable=true para ações baseadas em servidor que não envolvem operações de dados
- As operações de dados são realizadas uma vez - Os adaptadores LWC @wire lidam com todas as ações que não envolvem operações de dados |
Na sua lógica de forma:
- Campos que podem ser pré-preenchidos ou preenchidos automaticamente exigem entrada manual - Os usuários precisam parar de trabalhar durante o processo de envio para aguardar a conclusão das ações no lado do servidor - Componentes personalizados definidos cacheable=false |
|
| Fator de forma | Em sua organização:
- Modelos de página do Lightning fornecidos pelo Salesforce são usados para todas ou a maioria das páginas - Modelos de página personalizados do Lightning usam design:supportedFormFactors e design:supportedFormFactor em arquivos de design de componente do Aura
- Componentes personalizados do LWC ou do Aura disponíveis no Criador de aplicativo declaram formatos com suporte em seus respectivos arquivos de design e implementam padrões de estilo sensíveis à largura |
Em sua organização:
- O Classic ainda está ativo - Modelos de página personalizados do Lightning não usam uniformemente design:supportedFormFactors e design:supportedFormFactor em arquivos de design de componente do Aura
- Componentes personalizados do LWC ou do Aura disponíveis no Criador de aplicativo não declaram consistentemente formatos com suporte em seus respectivos arquivos de design - Em componentes personalizados do LWC ou do Aura, o estilo sensível à largura não é implementado por interfaces fornecidas pelo Salesforce - Em componentes personalizados do LWC ou do Aura, o estilo para diferentes fatores de forma é conduzido puramente por valores de px ou % embutidos em código no CSS |
| No desktop:
- Campos de entrada de dados e controles de navegação se encaixam na tela e podem ser interagidos conforme o desejado - As páginas de registro e aplicativo aparecem corretamente com base nas regras de atribuição de ativação de página |
No desktop:
- Campos de entrada de dados e controles de navegação não aparecem em seus locais desejados na tela - Interações com campos de entrada de dados e controles de navegação não correspondem aos comportamentos obrigatórios - A ausência de regras de atribuição de ativação de página significa que todos os usuários veem as mesmas páginas de registro e aplicativo |
|
| Em celulares e tablets:
- Entradas de dados e controles de navegação aparecem corretamente - Os usuários podem inserir dados facilmente - Aparecem menus de navegação móveis, otimizados para formatos menores - Layouts compactos aparecem no nível do registro |
Em celulares e tablets:
- Entradas de dados e controles de navegação não são renderizados de maneira consistente ou correta - Os usuários não podem inserir dados facilmente - Menus de navegação móveis não podem ser distinguidos da navegação em desktop - Layouts compactos não são configurados no nível do registro |
| Padrões | Antipadrões | |
|---|---|---|
| Notificações e Mensagens | Os seus padrões de design incluem:
- Casos de uso aprovados para notificações, toasts e avisos - Padrões de design para notificações e variantes de toast - Padrões de design para mensagens de erro |
Se padrões de design forem definidos, eles não abordarão erros e notificações |
| Em sua organização:
- As notificações são o formato de mensagens predominante - Mensagens de toast usam variantes - Mensagens de toast com o modo definido como colado não existem
- Os avisos são usados raramente, se houver - As respostas generativas sempre identificam as fontes de dados usadas - Os bots identificam-se claramente antes da primeira interação com os usuários - Avisos de isenção de responsabilidade por riscos associados à IA generativa aparecem para os usuários antes da primeira interação - As isenções de responsabilidade por IA estão em linguagem clara e compreensível para os usuários |
Em sua organização:
- Emails são o formato de mensagens predominante - Não há abordagem consistente para tipos de mensagem - As mensagens de toast não usam variantes de modo consistente - Mensagens de toast com o modo definido para existir colado
- Os avisos são usados ad hoc - As respostas generativas não identificam as fontes de dados usadas - Os bots não identificam-se claramente antes da primeira interação com os usuários - Nenhum aviso de isenção de responsabilidade por riscos de IA generativa aparece para os usuários - As isenções de responsabilidade por IA não estão em linguagem clara e compreensível para os usuários |
|
| Em seus aplicativos:
- Nenhuma resposta generativa é enviada diretamente aos usuários finais sem pontos de engajamento humano |
Em seus aplicativos:
- As respostas generativas são enviadas diretamente aos usuários finais sem pontos de engajamento humano |
|
| Consulte também: Tratamento de erros | ||
| Orientação no aplicativo | Suas normas de design e documentação incluem:
- Casos de uso aprovados para orientação no aplicativo - Padrões de design para avisos e guias passo a passo - Uma matriz clara de usuários, aplicativos e orientação no aplicativo ativa |
Se houver padrões de design e documentação, eles:
- Não abordar a orientação no aplicativo - Não inclua uma matriz clara mostrando usuários, aplicativos e orientação no aplicativo ativa |
| Em sua organização:
- A configuração para "Atraso entre orientação no aplicativo" usa o valor padrão ou um valor personalizado que seja maior que o período padrão (24 horas) fornecido pelo Salesforce - Nenhum aplicativo tem mais de um guia passo a passo ativo - Nenhum guia passo a passo tem uma configuração "Hora para mostrar" maior que 10 - Nenhum aviso é ativado para "Qualquer página, qualquer aplicativo" ou "Esta página, qualquer aplicativo" |
Em sua organização:
- A configuração para "Atraso entre orientação no aplicativo" é definida para um período menor que o período padrão (24 horas) fornecido pelo Salesforce - Os aplicativos têm mais de um guia passo a passo ativo - Muitos guias passo a passo têm uma configuração "Hora para mostrar" maior que 10 (e alguns têm o valor máximo de 30) - Os avisos são ativados ad hoc, muitos com a configuração "Qualquer página, qualquer aplicativo" ou "Esta página, qualquer aplicativo" |
|
| Reconhecimento e recompensas | Em sua organização:
- Os aplicativos usam análise integrada para mostrar aos usuários estatísticas de produtividade e progresso da meta relevantes - As celebrações de caminho são habilitadas apenas com o consentimento do usuário - Notificações e mensagens incluem reconhecimento do usuário e refletem as preferências do usuário no design de quem é notificado e o que aciona as notificações |
Em sua organização:
- A análise relacionada ao progresso da meta e às estatísticas de produtividade está disponível apenas em relatórios ou painéis do gerente - As celebrações de caminho são habilitadas sem verificar o consentimento do usuário - As notificações e as mensagens não incluem nenhum tipo de reconhecimento de usuário ou não refletem as preferências dos usuários e se sentem ruidosas ou irritantes |
| Ferramenta | Descrição | Simplificado | Útil |
|---|---|---|---|
| Ativar sua página do aplicativo Lightning | Gerenciar a disponibilidade, o nome, a visibilidade e o posicionamento da página | X | |
| Painéis de adoção | Revise o histórico de login, a adoção de recursos e a produtividade | X | X |
| Alerta | Manter alertas em sessões e exibi-los sem início do usuário | X | |
| Armazenamento em cache no lado do cliente dos resultados do método do Apex | Avaliar o desempenho com dados em cache do lado do cliente | X | |
| Formulários dinâmicos | Exibir apenas campos obrigatórios e seções de página para os usuários | X | |
| Insights de engajamento | Monitorar atividades recentes do usuário e agir conforme necessário | X | X |
| Orientação no aplicativo | Use avisos e guias passo a passo para treinamento e integração | X | |
| Caminhos de aprendizagem | Personalizar experiências de aprendizado do usuário | X | |
| Criador de aplicativo Lightning | Crie páginas móveis e do Lightning personalizadas sem código | X | |
| Lightning Data Service | Armazenar em cache e compartilhar dados entre componentes | X | |
| Validador do sistema de design do Lightning para VS Code | Validar marcação em relação às diretrizes SLDS | X | X |
| Modelos de página do Lightning | Criar páginas do Lightning para diferentes formatos | X | |
| Filtros de pesquisa | Filtrar valores para relacionamentos de pesquisa, entre mestre e detalhes e hierárquicos | X | |
| Gerenciar várias moedas | Usar várias moedas em transações | X | |
| Mensagens | Enviar mensagens SMS, Facebook Messenger ou WhatsApp | X | |
| Mobile Publisher | Criar versões móveis de aplicativos Lightning e sites do Experience Cloud | X | |
| Componentes prontos para dispositivos móveis | Crie componentes com bom desempenho em experiências móveis | X | |
| Sites multilíngues | Criar versões de seu site em diferentes idiomas | X | X |
| Criador de notificações | Criar notificações personalizadas para apresentar informações | X | |
| Caminho | Guie os usuários pelos processos de negócios e celebre o sucesso | X | X |
| Cache da plataforma | Melhore o desempenho e a confiabilidade ao armazenar em cache os dados | X | |
| Visualizar páginas de aplicativo móvel no Lightning App Builder | Visualizar páginas de registro e aplicativo em um dispositivo móvel | X | |
| Aviso | Alerta os usuários sobre atualizações e problemas relacionados ao sistema | X | |
| Emblemas de reconhecimento | Reconhecer e celebrar as realizações do usuário | X | |
| Reconhecimento com WDC | Aprovar habilidades e agradecer | X | |
| Tipo de registro | Personalize processos de negócios, valores de lista de opções e layouts de página | X | X |
| Visão geral de reputação | Reconhecer participação e compartilhamento de Knowledge | X | |
| Regras de restrição | Impedir que usuários acessem registros que possam conter dados desnecessários | X | |
| Componentes de página padrão | Entenda os componentes padrão do Salesforce Lightning | X | |
| Traduções | Gerenciar traduções para usuários globais | X | X |
| Regras de validação | Verifique se os dados atendem aos padrões especificados antes de salvar | X |
| Recurso | Descrição | Simplificado | Útil |
|---|---|---|---|
| Guia do arquiteto para formulários de construção | Avaliar as considerações de design de formulário e selecionar a melhor ferramenta | X | |
| Configurar seu componente para diferentes formatos | Configure componentes para renderizar em desktops e telefones | X | |
| Personalizar conteúdo da Ajuda | Personalizar o conteúdo da ajuda para sua implementação exclusiva | X | |
| Valores de campo padrão | Definir valores de campo padrão, dinâmico ou estático | X | |
| Directivas de design | Criar interfaces de usuário consistentes com as melhores práticas | X | X |
| Modelo de padrões de design | Criar padrões de design para sua organização | X | X |
| Habilidades de teste de design (Trailhead) | Métodos de planejamento para validar e testar um design | X | X |
| Diretrizes de feedback no aplicativo | Revise as diretrizes para coletar feedback de dentro do seu sistema | X | X |
| Biblioteca estática do Lightning Design System para Android | Crie aplicativos nativos para Android com a aparência das páginas do Lightning | X | |
| Biblioteca estática do Lightning Design System para iOS | Crie aplicativos nativos para iOS com a aparência das páginas do Lightning | X | |
| Directivas de mensagens | Comunique informações relevantes e crie momentos de prazer | X | |
| Tipo de mensagens | Entenda os diferentes tipos de mensagens com base na interação do usuário | X | |
| Directivas de navegação | Ajude os usuários a alternar entre páginas e se situarem em um aplicativo | X | |
| Teste para acessibilidade na Web (Trailhead) | Utilizar testes automatizados e manuais para garantir a acessibilidade | X | X |
| Directivas de engajamento do usuário | Revise as diretrizes para integração, adoção, assistência e aprendizado | X | X |
| Intencional | ||
|---|---|---|
| As soluções intencionais proporcionam valor de negócios imediatamente e ao longo do tempo. As arquiteturas intencionais são planejadas e entregues estrategicamente, podem ser mantidas de modo eficaz e são fáceis de ler e entender pelos humanos. | ||
| Estratégia | Manutenção | Lerabilidade |
| Priorização Roteiro Governança |
Padrão vs. personalizado Dívido técnico |
Padrões de design Documentação |
| Automatizado | ||
| As soluções automatizadas permitem que a empresa faça o trabalho de forma mais rápida e em escala. Automação saudável reduz o tempo gasto em tarefas manuais repetitivas ou entrada de dados complexo. | ||
| Eficiência | Integridade dos dados | |
| Design de processos Lógica operacional KPIs |
Tratamento de dados Manipulação de erros |
|
| Engajamento | ||
| As soluções com engajamento encantarão os usuários e promoverão a adoção. Arquivar para engajamento significa criar experiências de usuário intuitivas e úteis. | ||
| Simplificado | Útil | |
| Complexidade do aplicativo Formulários Fator de forma |
Notificações e mensagens Orientação no aplicativo Reconhecimento e recompensas |
|
| Padrões | Antipadrões | |
|---|---|---|
| Prioridade | Na sua documentação:
- Todos os novos itens de trabalho têm métricas de valor comercial claras (por exemplo, aumentos de receita, poupança de custos de otimizações de processos etc.) - Os roteiros mostram o trabalho priorizado com base no valor dos negócios |
Na sua documentação:
- O valor comercial associado ao trabalho não está claro ou não existe - Não existem roteiros |
| Dentro da sua empresa:
- Os custos de implementação e manutenção foram identificados para todos os itens de trabalho - As solicitações de recursos são priorizadas com base no impacto dos negócios, na quantidade de novo trabalho necessário para entregar e na quantidade de trabalho necessário para manter |
Dentro da sua empresa:
- Os custos associados à implementação e manutenção de recursos não estão claros - As solicitações são entregues ad hoc ou primeiro a entrar/primeiro a sair |
|
| Roteiro | Roadmaps:
- Comunicar informações personalizadas para seu público (negócios ou técnicos) - Comunicar informações no nível correto de detalhes - Mostrar datas de início e término - Mostrar pré-requisitos e dependências |
Caminhos (se houver):
- São usados como materiais de início do projeto e não artefatos para entrega - Não ajude a alinhar partes interessadas e equipes de entrega - Misture níveis de detalhes (por exemplo, incluindo sistemas e componentes no mesmo roteiro) - Contém informações que não são personalizadas para o público (por exemplo, funcionalidades de negócios e sistemas no mesmo roteiro) |
| Dentro do seu negócio:
- As partes interessadas entendem o "por quê" dos itens de trabalho - As equipes de entrega sabem como avaliar itens pendentes em relação a prioridades de longo prazo - As equipes sabem quem está fazendo o que e como gerenciar dependências - O trabalho é intencional, mesmo quando as prioridades precisam mudar rapidamente |
Dentro do seu negócio:
- O trabalho é extraído do que estiver na pendência e não há "por quê" claro - As equipes têm dificuldade para coordenar o trabalho interdependente e muitas vezes replicam o trabalho sem perceber - O trabalho costuma ser reativo - As partes interessadas frequentemente se sentem frustradas e confusas sobre o que está sendo feito e estão desorientadas quando novos recursos serão entregues |
|
| Governance | Dentro do seu negócio:
- Os usuários podem facilmente relatar bugs e recursos de solicitação - O processo de priorização para itens de trabalho é documentado e transparente para todas as partes interessadas - A estratégia de ambiente está claramente documentada e os ambientes de desenvolvimento correspondem à documentação - O planejamento da versão é previsível e transparente para todos os membros da equipe de entrega - Os membros da equipe sabem quem é responsável por o que ao longo do ciclo de vida do aplicativo - As versões estão claras para usuários e equipes de entrega/manutenção - Os processos de suporte de produção são claros e as correções rápidas têm um caminho claro para a produção - Equipes e projetos usam apenas modelos de IA aprovados para uso comercial |
Dentro do seu negócio:
- Relatórios de bug e solicitações de recurso são ad hoc - Os itens de trabalho não têm uma priorização clara - Os ambientes são provisionados ad hoc e podem não ser atualizados de modo previsível; os desenvolvedores geralmente não têm os ambientes e o acesso necessários - As versões são imprevisíveis para equipes de entrega e usuários - As equipes não sabem quem é responsável por quê - As correções fixas são tratadas ad hoc - Sua pendência se tornou um "banco de ideias" obsoleto e estagnado - Os órgãos de governança atuam como um help desk que soluciona problemas de solicitações de suporte - A documentação não está facilmente acessível - Equipes selecionam modelos de IA ad hoc |
| Padrões | Antipadrões | |
|---|---|---|
| Padrão vs. Personalizado | Em seus padrões de design:
- Há um princípio diretor claro para evitar a personalização desnecessária das soluções - O princípio de orientação para soluções usa a seguinte prioridade: 1. Usar serviços de plataforma integrados, 2. Considere os aplicativos AppExchange antes de criar uma solução personalizada, 3. Usar personalizações com pouco código antes de escrever código |
Em seus padrões de design:
- Os padrões de design não existem ou não têm uma justificativa clara para evitar personalizações e códigos desnecessários |
| Na sua documentação:
- Os registros de decisão mostram o cálculo para custos de curto e longo prazo ao escolher criar ou comprar soluções |
Na sua documentação:
- Os registros de decisão não consideram custos de curto e longo prazo ao escolher criar ou comprar soluções |
|
| Em modelos de dados:
- Nenhum objeto tem nomes ou funcionalidade que duplique objetos padrão - Objetos padrão não são usados para fins que estejam longe de seu escopo desejado |
Em modelos de dados:
- Os objetos duplicam os nomes e/ou a funcionalidade de objetos padrão - Objetos padrão são usados para fins muito fora do escopo desejado |
|
| No LWC, no Aura ou no Visualforce:
- Não existe código para substituir mecanismos de visualização de página padrão |
No LWC, no Aura ou no Visualforce:
- O código existe para substituir mecanismos de visualização de página padrão, geralmente na forma de um aplicativo de página única |
|
| No LWC, Aura ou Apex:
- Nenhuma tentativa de código para substituir ou contornar a ordem de execução da plataforma |
No LWC, Aura ou Apex:
- Tentativas de código para substituir ou contornar a ordem de execução da plataforma |
|
| Devido técnico | No seu roteiro:
- O trabalho para lidar com o débito técnico está planejado - As datas de entrega e início/término estão claras |
No seu roteiro:
- Nenhum trabalho para lidar com o débito técnico está planejado - As entregas são vagas; as datas de início/término não são claras |
| Nos seus registros de decisão:
- Os KPIs para remediação de débito pré-/pós-tecnológica são claramente documentados - Discussões de compensação para ação e inatividade focam os custos ou os benefícios dos negócios |
Nos seus registros de decisão:
- A remediação de débito técnico não tem KPIs mensuráveis - O débito técnico é considerado em termos técnicos ou focados em TI, sem relevância para o negócio |
|
| Em sua organização:
- Nenhuma tecnologia sem suporte ou legada está ativa, incluindo: -- Todos os usuários trabalham no Lightning Experience -- nenhum ou muito poucos usos de @future no Apex (é usado Queueable)
-- Todos os Apex de terceiros pertencem aos pacotes do AppExchange -- nenhuma regra de fluxo de trabalho ativa (Fluxo é usado) -- nenhum processo ativo do Criador de processos (Fluxo é usado) -- Eventos PushTopic (É usada a captura de dados de alteração) -- Eventos genéricos (eventos de plataforma são usados) -- Versões da API anteriores à 30.0 -- As conexões da organização do Salesforce usam o adaptador entre organizações para Salesforce Connect |
Em sua organização:
- Tecnologia sem suporte ou legada está ativa, incluindo: -- Usuários que trabalham no Salesforce Classic -- uso @futuro no Apex
-- Apex de terceiros de fontes não AppExchange -- Regras de fluxo de trabalho -- Processos do Criador de processos -- PushTopic Events -- Eventos genéricos -- Versões da API anteriores à 30.0 -- Conexões do Salesforce para Salesforce |
| Padrões | Antipadrões | |
|---|---|---|
| Padrões de design | Em sua organização:
- Código e personalizações declarativas têm nomes consistentes e legíveis por humanos - Os modelos de dados têm nomes consistentes e uniformes para objetos e campos - As auditorias mostram que os campos são preenchidos de modo consistente e referenciados em relatórios etc. |
Em sua organização:
- Código e personalizações declarativas não têm nomes consistentes - Os modelos de dados têm nomes inconsistentes e muitos objetos e campos parecem redundantes - As auditorias mostram muitos campos não utilizados ou vários níveis de uso, e não há um link consistente para relatórios etc. |
| Dentro do seu negócio:
- As equipes sabem que ferramentas usar (e não usar) para concluir o trabalho - Os padrões de design aprovados são fáceis de localizar e identificar por caso de uso - Os modelos de IA aprovados são claramente identificados e incluem um propósito pretendido |
Dentro do seu negócio:
- As equipes usam muitas ferramentas diferentes para realizar trabalhos semelhantes - Não há padrões de design aprovados - Demora muito para fornecedores ou novos funcionários serem integrados - Os modelos de IA aprovados não são claramente identificados e sua finalidade pretendida não é clara |
|
| Documentação | Em sua organização:
- Código e personalizações declarativas têm descrições claras |
Em sua organização:
- Código e personalizações declarativas não têm descrições, têm descrições difíceis de entender ou têm descrições que não parecem corresponder ao que a personalização está realmente fazendo |
| Dentro do seu negócio:
- Existem diagramas para funcionalidades de negócios e detalhes de implementação técnica para todas as soluções - Chave quem/quando/quais registros de informações existem para personalizações declarativas e de código - As pessoas podem pesquisar e encontrar documentação relevante |
Dentro do seu negócio:
- O que/como/por que das soluções é difícil de encontrar e pode estar indisponível para a maioria das equipes - As pessoas têm dificuldade para entender as soluções e o sistema com o qual estão trabalhando - Demora muito para fornecedores ou novos funcionários serem integrados |
| Ferramenta | Descrição | Estratégia | Capacidade de manutenção | Legibilidade |
|---|---|---|---|---|
| ApexDoc | Documente o Apex com páginas HTML estáticas | X | X | |
| Exclusão em massa de valores da lista de opções inativos | Excluir valores inativos não usados de listas de opções | X | ||
| Validador do Lightning Design System | Valide a marcação e veja como melhorar seu código | X | X | |
| Migrar para fluxo | Converter regras de fluxo de trabalho e processos do Criador de processos em fluxos | X | ||
| Ferramenta de gerenciamento de projetos da Salesforce Labs | Gerenciar projetos em sua organização do Salesforce | X | X | |
| Extensões do Salesforce para Visual Studio Code (expandido) | Analisar o Salesforce code com eficiência com extensões do Visual Studio Code | X | X | |
| Verificação da organização | Analisar rapidamente sua organização e seu débito técnico | X | ||
| Analisador de código do Salesforce | Ler código por meio de IDE, CLI ou CI/CD para garantir que ele cumpra as práticas recomendadas | X | X | |
| Explorador de roteiro do Salesforce | Explorar inovações de produto do Salesforce | X | ||
| Configurar trilha de auditoria | Rastrear alterações de configuração e histórico de auditoria | X | X |
| Recurso | Descrição | Estratégia | Capacidade de manutenção | Legibilidade |
|---|---|---|---|---|
| 5 estratégias de documentação para melhorar sua organização do Salesforce | Melhorar a documentação de implementação do Salesforce | X | ||
| Escolher convenções de nomenclatura (Trailhead) | Saiba como aplicar convenções de nomenclatura | X | ||
| Definir, identificar e medir a dívida técnica | Definir, identificar e medir o débito técnico | X | X | |
| Modelo de padrões de design | Criar padrões de design para sua organização | X | X | X |
| Introdução aos gráficos do Salesforce | Saiba como criar o diagrama certo para seu caso de uso | X | ||
| Introdução às Convenções de Codificação (Trailhead) | Definir e seguir convenções de codificação | X | ||
| Como lidar com a dívida técnica (Trailhead) | Gerenciar débito técnico em sua organização do Salesforce | X | X | |
| Melhorar seu Apex code (Trailhead) | Aplicar princípios básicos de desenvolvimento conduzido por teste | X | ||
| Alinhamento organizacional (Trailhead) | Aprenda o processo V2MOM para alinhamento | X | ||
| Priorizar e planejar uma saída da dívida técnica | Formar um plano para reduzir e remover o débito técnico | X | X | |
| Modelo de convenções de nomenclatura do Salesforce | Introdução às convenções de nomenclatura | X | X | |
| Dívida técnica: O que é e por que você deve se preocupar? | Entenda o impacto do débito técnico na sua organização | X | ||
| Usar a Tela de Modelo de Negócios na Arquitetura Enterprise | Criar, entregar e ver valor em um modelo de negócios | X |
| Organização de rascunho | Developer Sandbox | Developer Pro Sandbox | Sandbox de Cópia parcial | Sandbox completo | |
|---|---|---|---|---|---|
| Suporta a forma da organização | Sim | Não | Não | Não | Não |
| Suporta o Rastreamento de origem | Sim | Sim | Sim | Não | Não |
| Vida útil | 1 a 30 dias | Controlado manualmente | Controlado manualmente | Controlado manualmente | Controlado manualmente |
| Intervalo de atualização | Não disponível | 1 dia | 1 dia | 5 dias | 29 dias |
| Suporte de visualização de versão | Controlado pelo desenvolvedor | Com base na instância de sandbox | Com base na instância de sandbox | Com base na instância de sandbox | Com base na instância de sandbox |
| Tempo de provisionamento | > 5 minutos | Horas ou dias | Horas ou dias | Horas ou dias | Horas ou dias |
| Metadados determinados por | Controle de origem | Produção | Produção | Produção | Produção |
| Dados determinados por | Carregamento manual de dados | Carregamento manual de dados | Carregamento manual de dados | Modelo de sandbox | Produção |
| Limite de dados | 200 MB | 200 MB | 1 GB | 5 GB | Igual ao da produção |
| Tarefa | Forma da organização | Rastreamento de origem | Atualizações frequentes | Suporte de visualização da versão | Todos os metadados da produção | Metadados parciais da produção | Conjuntos de dados grandes da produção | Conjuntos de dados parciais da produção | Ambientes compatíveis |
|---|---|---|---|---|---|---|---|---|---|
| Protótipo | X | X | X | X | X | X | X | Organizações teste, Developer e Developer Pro Sandboxes | |
| Novas investigações de recursos ou desenvolvimento de prova de conceito | X | X | X | X | X | X | X | Organizações teste, Developer e Developer Pro Sandboxes | |
| Teste de aceitação do usuário | X | X | X | X | X | X | Sandboxes de desenvolvedor, Developer Pro e Cópia parcial | ||
| Teste de desempenho e escala | X | X | X | Sandbox completo | |||||
| Treinamento do usuário | X | X | X | X | X* | X | Developer Pro, Cópia parcial e*Sandboxes completos | ||
| *Se necessário para concluir um tipo específico de trabalho, caso contrário, use um ambiente menos intensivo em recursos | |||||||||
| Padrões | Antipadrões | |
|---|---|---|
| Gerenciamento de versão | Em produção:
- Os metadados mostram o uso de mecanismos de versão estáveis, como: -- Metadados sendo organizados em pacotes desbloqueados -- DevOps Center estar ativo e instalado -- Implantações por meio da API de metadados usando o formato de origem - Os registros de implementação não mostram nenhuma implementação com falha no histórico disponível. - O histórico de implementação mostra ritmos de versão claros e grupos de implementação bastante uniformes nas janelas de versão. |
Em produção:
- Metadados indicam o uso de mecanismos de versão baseados em organização, como: -- Uso ativo de conjuntos de alterações -- Implantações por meio da API de metadados usam o formato package.xml - Os registros de implementação mostram instâncias repetidas de implementações com falha no histórico disponível. - As implantações não têm ritmo discernível ou mostram grupos desiguais de implantações, que são sinais de correções rápidas e reversões ad hoc). - DevOps Center não está habilitado e instalado. |
| No seu roteiro e documentação:
- Os nomes de versão estão claros. - Os recursos são vinculados claramente a uma versão nomeada específica. - Os nomes de versão são pesquisáveis e descobríveis. - As equipes podem encontrar e seguir diretrizes claras para marcar artefatos, itens de desenvolvimento e outros trabalhos com os nomes de versão corretos. - É possível reunir uma visualização clara de um manifesto de versão por um nome de versão. - Os limites de qualidade para aplicativos de IA generativa são definidos para diferentes estágios de desenvolvimento. |
No seu roteiro e documentação:
- Os nomes de versão não são incluídos. - Os recursos não estão claramente vinculados a uma versão específica. - Os nomes de versão são usados ad hoc ou não existem. - As equipes se referem a artefatos, itens de desenvolvimento e outros trabalhos de diferentes maneiras. - Não é possível reunir uma visualização clara de um manifesto de versão usando um nome de versão. - Os limites de qualidade para aplicativos de IA generativa não são definidos ou, se forem, não são definidos para diferentes estágios de desenvolvimento. | |
| Estratégia ambiental | Em suas organizações:
- Um modelo de desenvolvimento e versão orientado por origem é adotado. - O rastreamento de origem está habilitado para sandboxes Developer e Developer Pro. - Os metadados em um determinado ambiente são independentes dos artefatos de versão. - Os ambientes não correspondem diretamente a um caminho de versão. - Os caminhos de liberação para uma alteração dependem do tipo da alteração (risco alto, risco médio ou risco baixo). - Os ambientes sobrecarregados não existem. - Alterações de configuração arriscadas nunca são feitas diretamente na produção. - Nenhuma versão ocorre durante o horário comercial máximo. - Os sandboxes do Data 360 são usados para testar adequadamente casos de uso agênticos que exigem a Biblioteca de Dados do Einstein, artigos do Knowledge e dados não estruturados |
Em suas organizações:
- Um modelo de desenvolvimento e liberação baseado em organização é adotado. - O rastreamento de origem não está habilitado para sandboxes Developer e Developer Pro. - Metadados em um determinado ambiente são um artefato de versão. - Os ambientes correspondem diretamente a um caminho de liberação. - O caminho da versão para cada alteração é o mesmo, independentemente do tipo de alteração. - Existem ambientes sobrecarregados. - Alterações de configuração arriscadas são feitas diretamente na produção. - As versões ocorrem durante o horário comercial máximo. - Agentes Agentforce que exigem o Einstein Data Library, artigos do Knowledge e dados não estruturados não são testados usando sandboxes do Data 360 |
| Estratégia de sinalização | Em suas organizações:
- As equipes colaboram na definição e padronização de APIs e SLOs de verificação de integridade. - A revisão e o refinamento regular de estratégias de sinalização fazem parte das análises de prontidão operacional e pós-mortems. Em produção: - As verificações de integridade são implementadas para todos os aplicativos. - Os aplicativos fornecem sinais explicitos sobre sua saúde, como carregamento e funcionalidades. - Os aplicativos são projetados para ser descontinuados quando as dependências não são saudáveis. - A descarga de carregamento é usada para evitar falhas em cascata. No seu projeto: - Os mecanismos de contrapressão e descarte de carga impedem que os serviços sejam sobrecarregados pelo tráfego. - Supõe-se que as dependências falhem. Os manipuladores de sinal são criados para melhorar falhas. |
Em suas organizações:
- As equipes operam em silos, criando mecanismos de sinalização de saúde inconsistentes e incompatíveis. - Estratégias de sinalização são uma ideia adicional, tratadas apenas quando ocorre um incidente. Em produção: - Os componentes falham silenciosamente sem indicar seu status de integridade. - Os aplicativos tentam novamente solicitações para serviços não saudáveis indefinidamente. - Todas as solicitações são tratadas com a mesma prioridade, independentemente da importância. - Para identificar problemas, os operadores dependem apenas de medidas reativas, como reclamações do usuário ou falhas críticas do sistema. No seu projeto: - Presume-se que todas as dependências estarão sempre disponíveis e partições de rede, picos de latência ou outros problemas comuns não serão considerados. - Os aplicativos aceitam todas as solicitações recebidas, mesmo quando estão sobrecarregadas, levando a maior latência e maior probabilidade de falha |
| Estratégia de teste | No seu negócio:
- Os testes de usabilidade usam uma variedade de dispositivos e tecnologia assistiva. - Os simuladores são usados para replicar condições semelhantes a produção para escalabilidade e testes de desempenho. - Os testes são automatizados para execução quando as alterações entram no controle de origem. - Testes de resistência, estresse, desempenho e escala são executados a vários intervalos no ciclo de desenvolvimento do aplicativo e considerados tarefas contínuas. - Você inclui o teste de escala como parte do seu processo de QA quando tiver aplicativos em escala B2C, grandes volumes de usuários ou grandes volumes de dados. - Seus testes de escala são focados em aspectos de alta prioridade do sistema. - Seus testes de escala têm critérios bem definidos. - Você realiza testes de escala em um Sandbox completo. - A engenharia de prompt inclui uma revisão de qualidade por um humano. - A central de testes do Agentforce é usada para testes robustos do agente. |
No seu negócio:
- Os testes de usabilidade não são realizados ou, se forem, são realizados em um conjunto limitado de dispositivos. - Volumes semelhantes a produção de solicitações de usuário, tráfego de API e variações de velocidade de rede não são testados. - A automação de teste não está em vigor. - Testes de resistência, estresse, desempenho e escala são considerados uma fase ou estágio de desenvolvimento. - Você não realiza testes de escala como parte de seu processo de QA e tem aplicativos em escala B2C, grandes volumes de usuários ou grandes volumes de dados. - Seus testes de escala não são priorizados. - Seus testes de escala não têm critérios bem definidos. - Você realiza testes de escala em uma cópia parcial ou Developer Sandbox. - A engenharia de prompt não inclui uma revisão de qualidade por um humano. - Os agentes do Agentforce não são testados ou, se forem, apenas testados ad hoc usando o Agent Builder. |
| Em sua organização:
- Todos os dados de teste são removidos de dados confidenciais e de identificação. |
Em sua organização:
- Os dados de teste são idênticos aos dados de produção. | |
| No Apex:
- Os padrões de fábrica de dados são usados para testes de unidade - Mocks e fragmento de código são usados para simular respostas da API. |
No Apex:
- Os testes de unidade dependem de dados da organização. - Mocks e fragmento de código não são usados. | |
| Em suas normas de design e documentação:
- Os ambientes são classificados pelos tipos de testes que eles podem suportar. - Os regimes de teste adequados são especificados de acordo com o risco, o caso de uso ou a complexidade. |
Em suas normas de design e documentação:
- Não está claro quais tipos de testes cada ambiente oferece suporte. - Os regimes de teste não são categorizados por risco, caso de uso ou complexidade. |
| Tipo de incidente | Acionador aparente | Táticas de recuperação |
|---|---|---|
| Falência do sistema | Logins corrompidos ou problemas com acesso à conta | Uma política de recuperação de conta |
| Indisponibilidade do serviço | Ativação de serviço de backup redundante; soluções alternativas manuais | |
| Erro de produção | Uma alteração recente | Reverter ou desativar a implementação da versão anterior |
| Um bug emergente e inexplicado | Soluções alternativas manuais, desabilitando recursos não essenciais, escalando para SMEs |
| Padrões | Antipadrões | |
|---|---|---|
| Hora de recuperar | No seu negócio:
- Os protocolos de recuperação são praticados a intervalos regulares. - As equipes sabem quais serviços em produção são de sua propriedade e são responsáveis por elas. - As equipes entendem as ferramentas relevantes para dar suporte ao diagnóstico de problemas. |
No seu negócio:
- Os protocolos de recuperação não existem ou não são praticados a intervalos regulares. - Não está claro quais equipes são responsáveis pelos diferentes serviços na produção. - As equipes não têm orientação nem padrões sobre ferramentas para dar suporte ao diagnóstico de problemas. |
| Na sua documentação:
- As táticas de recuperação são definidas e classificadas por tipo de incidente e acionador. - Os critérios de saída para respostas de incidentes estão incluídos nos SLOs e são claros. - Os critérios de ativação e a lógica de atribuição para permissões elevadas durante incidentes estão claros. - Conjuntos de permissões e autorizações de resposta a incidentes são listados claramente. - Existe um guia de solução de problemas para ajudar a identificar e diagnosticar problemas comuns. |
Na sua documentação:
- A resposta de incidente é realizada ad hoc. - Não há critérios de saída para respostas de incidentes. - Permissões elevadas não são atribuídas ou, se estiverem, são atribuídas ad hoc. - Conjuntos de permissões e autorizações de resposta a incidentes não são listados. |
|
| Em sua organização:
- Existem conjuntos de permissões baseados em sessão para resposta a incidentes e podem ser atribuídos à equipe de suporte durante a recuperação. - A Trilha de auditoria de configuração mostra que os testadores de recuperação designados fizeram login no ambiente de teste no horário acordado e seguiram os scripts de teste de recuperação. |
Em sua organização:
- Os conjuntos de permissões baseados em sessão não existem para resposta a incidentes ou, caso existam, a equipe de suporte não está autorizada a usá-los. - A Trilha de auditoria de configuração mostra que os testadores de recuperação designados não fizeram login no ambiente de teste ou não seguiram scripts de teste de recuperação | |
| Em seus planos de teste:
- Existem scripts de teste para testes de recuperação e são repetíveis. - Os ambientes para simulações de incidentes são listados claramente. |
Em seus planos de teste:
- Scripts de teste para testes de recuperação não existem. - Os ambientes para simulações de incidentes não são estabelecidos. |
|
| Habilidade de triagem | No seu negócio:
- As PME ou partes interessadas que devem ser alertadas para dar suporte a problemas complexos são identificadas antes de um incidente ocorrer. - A transferência entre equipes de entrega e suporte faz parte da ativação. - Se consultado, os arquitetos do Salesforce respondem rapidamente e ajudam a equipe a se manter focada na recuperação. |
No seu negócio:
- As PME ou partes interessadas que devem ser alertadas não são identificadas até que um incidente ocorra. - A transferência entre equipes de entrega e equipes de suporte não faz parte do processo de liberação. - Os arquitetos do Salesforce consideram a resposta a incidentes como fora do escopo de trabalho. |
| Na sua documentação:
- Os padrões de sistema e design usados em uma determinada solução podem ser descobertos e lidos pela equipe de suporte. |
Na sua documentação:
- Os padrões de sistema e design usados em uma determinada solução não estão prontamente disponíveis para a equipe de suporte. |
|
| Em sua organização:
- Mensagens de erro personalizadas e de registro são incorporadas a caminhos de execução em todo o sistema. |
Na sua organização: - Não são usados registros e mensagens de erro personalizadas. | |
| Monitoramento e alerta | Em sua organização:
- Os alertas são usados apenas para informar os usuários sobre cenários que exigem intervenção humana; outras falhas são registradas e relatáveis. - Os alertas são enviados aos usuários que são capazes de respondê-los. - Quando possível, os alertas são entregues antes de uma possível falha. |
Em sua organização:
- Os alertas são enviados quando ocorre qualquer tipo de falha, independentemente de ações de acompanhamento serem ou não necessárias. - Alertas sobre problemas que exigem soluções técnicas são entregues aos usuários de negócios. - Os alertas são entregues apenas em resposta a falhas que já ocorreram. |
| Na sua documentação:
- Os critérios de entrada para alertas de ajuste de prompt são definidos com base nas métricas de feedback de IA generativa direta e indireta. |
Na sua documentação:
- Não há critérios definidos para acionar alertas de ajuste de prompt para aplicativos de IA generativa. |
| Padrões | Antipadrões | Continuidade dos negócios | No seu negócio:
- Uma mentalidade "recuperação em primeiro lugar" é adotada com foco em remover os recursos e as funções de negócios de prioridade mais alta do impacto assim que possível. - Há uma agenda de manutenção para revisão de planos de teste do BCP. |
No seu negócio:
- Uma mentalidade de "corrigir o problema" é a única abordagem para o gerenciamento de incidentes. - Os planos de teste BCP não são atualizados a intervalos regulares. |
|---|---|---|
| Na sua documentação:
- Existe um CCO contendo etapas para continuar processando ou classificando dados se o Salesforce ficar indisponível, uma lista de eventos que acionam o uso do CCO e etapas e intervalos para testes do CCO. - O CCO inclui sistemas e dependências a montante e a jusante. |
Na sua documentação:
- Um BCP não existe, não está completo ou inclui apenas o Salesforce. |
|
| Em seus planos de teste:
- As áreas do seu CCO relacionadas a processos e pessoas são consideradas. |
Em seus planos de teste:
- As áreas do seu CCO relacionadas a processos e pessoas não são consideradas. | |
| Continuidade da tecnologia | No seu negócio:
- Você avaliou se precisa criar sistemas intencionais de redundância ou failover - As táticas de recuperação de incidentes são automatizadas sempre que possível. |
No seu negócio:
- Você não avaliou a necessidade de redundância intencional ou sistemas de fall-over - As táticas de recuperação de incidentes são todas manuais. |
| Na sua documentação:
- O CCO considera recursos adicionais ou procedimentos de vidro quebrado que as equipes podem precisar para responder a incidentes de modo eficaz. |
Na sua documentação:
- O CCO não inclui necessidades de suporte operacional. |
|
| Backup e restauração | Na sua documentação:
- Há uma estratégia de backup e restauração para dados e metadados. |
Na sua documentação:
- Uma estratégia de backup e restauração não existe ou, se existir, está incompleta, aplicando-se apenas a dados ou apenas a metadados, não a ambos. |
| Na sua empresa:
- Os backups são armazenados em um local seguro que somente usuários autorizados podem acessar. - Os planos de teste e os registros de teste mostram que as restaurações de dados são testadas em um sandbox de Cópia total ou parcial pelo menos duas vezes por ano. |
Na sua empresa:
- Os backups não são legíveis por humanos. - Os backups são armazenados em locais que usuários comerciais não autorizados podem acessar. - Não há um processo de restauração de dados ou o processo de restauração de dados não foi testado. |
| Ferramenta | Descrição | Gerenciamento de ciclo de vida do aplicativo | Resposta de incidente | Planejamento de continuidade |
|---|---|---|---|---|
| Testes do Apex Hammer | Saiba mais sobre testes do Apex do Salesforce em versões atuais e novas. | X | ||
| Apex Stub API | Crie uma estrutura de simulação para simplificar os testes. | X | ||
| Backup e recuperação | Gere backups automaticamente para evitar perda de dados. | X | ||
| Objetos grandes | Armazene e gerencie grandes volumes de dados na plataforma. | X | ||
| Rastreamento de histórico de campo | Rastreie e exiba o histórico do campo. | X | ||
| Obter Insights de adoção e segurança para sua organizaçãoObrir link em nova janela | Monitore a adoção e o uso do Lightning Experience em sua organização. | X | ||
| Gerenciar trabalhos de carregamento de dados em massa | Crie atualizações ou exclua grandes volumes de registros com a API em massa. | X | ||
| Gerenciar eventos de monitoramento de evento em tempo real | Gerencie as configurações de armazenamento e streaming de monitoramento de evento. | X | ||
| Recursos de dados e armazenamento | Visualize os limites de armazenamento e o uso da sua organização do Salesforce. | X | ||
| Logs de depuração do monitor | Monitore registros e defina sinalizadores para acionar o registro. | X | ||
| Monitore a atividade de login com análise forense de login | Identifique o comportamento que pode indicar fraude de identidade. | X | ||
| Monitor alterações de configuração com a Trilha de auditoria de configuração | Acompanhe alterações de configuração recentes feitas por administradores. | X | ||
| Histórico de treinamento do monitor | Visualize as aulas de treinamento do Salesforce que seus usuários realizaram. | X | ||
| Trabalhos de monitoramento de fundo | Monitore trabalhos em segundo plano na sua organização. | X | ||
| Monitorando trabalhos agendados | Visualize instantâneos de relatórios, trabalhos do Apex agendados e atualizações de painel. | X | ||
| Teste de escala | Teste o desempenho do sistema e interprete os resultados. | X | ||
| Monitoramento proativo | Minimize interrupções usando os serviços de monitoramento do Salesforce. | X | ||
| Salesforce Data Mask | Mascarar automaticamente os dados em um sandbox. | X | ||
| Página de visão geral do sistema | Visualize os dados de uso e os limites da sua organização. | X | ||
| Use force:lightning:lint | Analise e valide o código por meio do Salesforce CLI. | X |
| Recurso | Descrição | Gerenciamento de ciclo de vida do aplicativo | Resposta de incidente | Planejamento de continuidade |
|---|---|---|---|---|
| 7 antipadrões em testes de desempenho e escala | Evite antipadrões comuns em testes de desempenho e escala. | X | ||
| Analisar hotspots de desempenho e escala em aplicativos Salesforce complexos | Aprenda uma abordagem para lidar com problemas de desempenho e escalabilidade em sua organização. | X | ||
| Criar um plano de recuperação de desastres (Trailhead) | Crie um plano de recuperação de desastres. | X | ||
| A continuidade dos negócios é mais do que backup e restauração | Obtenha uma visualização abrangente do BCP. | X | ||
| Modelo de padrões de design | Crie padrões de design para sua organização. | X | ||
| Estruturas de diagnóstico e monitoramento no Salesforce | Saiba como melhorar a qualidade e o desempenho de suas implementações. | X | ||
| Princípios Diretores para o Planejamento de Continuidade dos Negócios | Revise os princípios básicos subjacentes a um BCP eficaz. | X | ||
| Como fazer Teste de escala no Salesforce | Aprenda as cinco fases do ciclo de vida de teste de escala. | X | ||
| Introdução ao Teste de Desempenho | Saiba como desenvolver um método de teste de desempenho. | X | ||
| Monitore sua organização | Saiba mais sobre as opções de monitoramento de autoatendimento. | X | ||
| Modelo de estratégia de teste | Crie e personalize planos de teste de escala e desempenho. | X | ||
| Modelo de estratégia de teste | Garanta que sua estratégia de teste esteja concluída. | X | ||
| Entender Desenvolvimento orientado por origem (Trailhead) | Aprenda mais sobre desenvolvimento de pacote e organizações teste. | X |
| Padrões | Antipadrões | |
|---|---|---|
| Autenticação | Em suas normas de design e documentação:
- Personalidades de segurança aprovadas são definidas e listadas claramente - O mapeamento entre personalidades de segurança e esquemas de autenticação permitidos (UI, API) existe em uma matriz de segurança |
Se existem normas e documentação de projeto, elas:
- Não incluir personalidades de segurança - Não inclua uma matriz de segurança com mapeamentos claros para personalidades de segurança e esquemas de autenticação permitidos |
| Em sua organização:
- Configurações de login alinhadas à Verificação de MFA do Salesforce - O relacionamento entre usuários e entidades que fazem login no Salesforce é de 1:1 (nenhum usuário compartilhado) - O controle de acesso à API impede que os usuários se autentiquem por meio de um aplicativo conectado não autorizado - Se o SSO estiver habilitado, os usuários administradores aprovados terão acesso de login direto |
Em sua organização:
- As configurações de login não estão alinhadas à Verificação de MFA do Salesforce - O relacionamento entre usuários e entidades que fazem login no Salesforce não é 1:1 (há contas de usuário compartilhadas) - Se os usuários acessarem o Salesforce de trás de um firewall, o firewall usará endereços IP embutidos em código para proteger as comunicações de/para o Salesforce - O controle de acesso à API não está habilitado - Se o SSO estiver habilitado, nenhum usuário administrador aprovado terá acesso de login direto |
|
| In LWC, Apex, Aura:
- Métodos que executam autenticação usam credenciais nomeadas para lidar com fluxos de nome de usuário/senha - Nenhum nome de usuário ou senha aparece em código em formatos legíveis (nenhum valor ou string embutido em código) - Se existem fluxos de login personalizados, todo o código personalizado relacionado usa métodos apropriados SessionManagement |
In LWC, Apex, Aura:
- A autenticação é tratada ad hoc - Nomes de usuário e senhas aparecem em código |
|
| Autorização | Em suas normas de design e documentação:
- Cada usuário e sistema com acesso ao Salesforce é mapeado para uma ou mais personas em uma matriz de segurança - A matriz de segurança lista claramente permissões de metadados e personas de usuário atribuídas - Os casos de uso para conceder privilégios elevados estão claramente listados, incluindo: -- Modificar todas as permissões de dados -- Visualizar todas as permissões de dados |
Se existem normas e documentação de projeto, elas:
- Não incluir uma matriz de segurança - Não listar permissões claramente - Não liste claramente casos de uso para conceder privilégios elevados |
| Em sua organização:
- Conjuntos de permissões e grupos de conjuntos de permissões são usados para controlar o acesso a metadados - Conjuntos de permissões e grupos de conjuntos de permissões alinhados a funcionalidades de negócios - Permissões atribuídas aos usuários seguem definições de matriz de segurança - Os perfis são usados de forma mínima e apenas para controlar intervalos de IP de login e horas de login - Um usuário de integração somente de API exclusivo é configurado para cada integração |
Em sua organização:
- Os grupos de conjuntos de permissões não estão configurados para permitir acesso com base em funcionalidades de negócios - Os conjuntos de permissões são configurados ad hoc - Os conjuntos de permissões são redundantes ou são altamente duplicados; é difícil entender a lógica funcional clara e as diferenças entre os conjuntos - Permissões atribuídas a usuários não seguem definições de matriz de segurança - Os perfis contêm controles de acesso para metadados - Os usuários apenas de API não estão configurados ou são compartilhados em mais de uma integração |
|
| No Apex:
- As operações de banco de dados realizam verificações de acesso em nível de campo e objeto adequadamente, incluindo: -- As instruções DML e Database DML declaram o modo do usuário ou do sistema para operações de dados AND/OR -- As instruções DML e Database DML usam métodos stripInaccessible antes de operações de dados
-- As instruções SOQL e SOSL usam COM USER_MODE e COM SYSTEM_MODE palavras-chave E/OU
-- Os métodos stripInaccessible são usados para filtrar resultados de consulta e subconsulta
-- os métodos de resultado de descrição sObject (ou seja, isAccessible, isCreateable, isUpdateable e/ou isDeletable) são usados com moderação |
No Apex:
- Métodos DML, Classe do banco de dados, SOQL e SOSL são executados no modo do sistema padrão - As operações de banco de dados não realizam verificações de acesso adequadamente, incluindo: -- Os métodos DML ou Database Class usam exclusivamente as verificações isAccessible, isCreateable, isUpdateable e/ou isDeletable para acesso em nível de campo e sObject
-- Consultas SOQL usam exclusivamente palavras-chave COM SECURITY_ENFORCED para restrições de acesso |
|
| Em fluxos(considerações de segurança para design de fluxo):
- Os fluxos usam o Contexto de execução mais restritivo possível, idealmente o Modo de usuário - O acesso a dados confidenciais ou privilegiados é realizado por Subfluxos para minimizar o contexto da execução - Limitar lógica realizada em fluxos acionados por registro - As entradas de fluxo são validadas para garantir que somente as cargas úteis permitidas sejam passadas como entrada |
Em fluxos:
- Fluxos são executados no Modo do sistema ou no Modo do sistema sem compartilhamento, independentemente das ações que o fluxo executa - Toda a lógica de fluxo é realizada em um único fluxo grande - Entradas de fluxo não são validadas e são passadas para os consumidores sem verificação |
| Padrões | Antipadrões | |
|---|---|---|
| Gerenciamento de sessão | Em suas normas de design e documentação:
- Personalidades de segurança listam claramente os tipos de sessão aprovados e as configurações de tempo limite/duração para cada personalidade - As horas de login foram especificadas (ou identificadas como não necessárias) - Operações que exigem segurança ou permissões em nível de sessão são claras e descobríveis - O escopo do aplicativo conectado e as políticas de gerenciamento de token são claros e descobríveis |
Em suas normas de design e documentação:
- Personalidades de segurança não existem ou faltam informações sobre tipos de sessão e configurações de tempo limite/duração - As políticas de segurança não contêm informações sobre escopos de aplicativo conectado ou gerenciamento de token |
| Em sua organização:
- As auditorias de sessão mostram que os usuários acessam o Salesforce apenas por meio de tipos de sessão esperados - Há um conjunto de permissões claro e ativo para acesso "Único usuário da API" (com o conjunto de permissões "Único da API" definido como TRUE) e todos os usuários de integração e automatizados são atribuídos - Se os usuários acessarem o Salesforce de trás de um firewall, o firewall usará uma lista de permissões de domínios obrigatórios em vez de endereços IP para proteger as comunicações de/para o Salesforce - Intervalos de tempo limite de sessão inativos não ultrapassam o padrão (2 horas) - Todas as configurações a seguir estão habilitadas: -- Proteção contra clickjack para páginas de Configuração -- Proteção contra clickjack para páginas do Salesforce não de configuração -- Proteção contra falsificação de solicitação entre sites (CSRF) -- Proteção de script entre sites (XSS) -- Habilitar proteção de detecção de conteúdo -- Proteção de URL do referenciador -- Avisar os usuários antes que eles sejam redirecionados para fora do Salesforce |
Em sua organização:
- Não há auditoria de sessão regular - Não há definições de quais tipos de sessão os usuários devem ter - As permissões "apenas API" não estão claras ou estão ausentes da integração e dos usuários automatizados - Se os usuários acessarem o Salesforce de trás de um firewall, o firewall usará endereços IP embutidos em código para proteger as comunicações de/para o Salesforce - Intervalos de tempo limite de sessão inativos excedem o padrão (2 horas) - Qualquer uma das seguintes configurações está desabilitada: -- Proteção contra clickjack para páginas de Configuração -- Proteção contra clickjack para páginas do Salesforce não de configuração -- Proteção contra falsificação de solicitação entre sites (CSRF) -- Proteção de script entre sites (XSS) -- Habilitar proteção de detecção de conteúdo -- Proteção de URL do referenciador -- Avisar os usuários antes que eles sejam redirecionados para fora do Salesforce |
|
| In LWC, Apex, Aura:
- Se existem fluxos de login personalizados, todo o código personalizado relacionado usa métodos apropriados SessionManagement para atribuir segurança em nível de sessão |
In LWC, Apex, Aura:
- Se houver fluxos de login personalizados, não haverá lógica para atribuir segurança no nível da sessão |
|
| Acesso ao dispositivo | Em suas normas de design e documentação:
- As políticas do dispositivo são claras e descobríveis - Personalidades de segurança são mapeadas claramente para usos e políticas de dispositivo adequados |
Em suas normas de design e documentação:
- As políticas de segurança não existem ou não contêm informações sobre o acesso ao dispositivo |
| Em sua organização:
- A configuração do aplicativo móvel conectado do Salesforce exige desbloqueio de PIN/senha após a inatividade - Se as necessidades de negócio exigirem um controle rígido dos usuários que podem acessar o Salesforce móvel, o Controle de acesso à API será habilitado e os conjuntos de permissões serão atribuídos a todos os usuários dos aplicativos Salesforce móvel |
Em sua organização:
- O aplicativo móvel conectado do Salesforce não está configurado para exigir desbloqueio de PIN/senha para inatividade – As necessidades de negócios exigem um controle rígido dos usuários que podem acessar o Salesforce móvel, mas o Controle de acesso à API não está habilitado ou os conjuntos de permissões não são usados para controlar o acesso a aplicativos Salesforce móvel |
|
| Detecção e resposta a ameaças | Em suas normas de design e documentação:
- As políticas de segurança contêm uma lista de eventos que devem acionar uma resposta junto com o tipo de resposta apropriado - Os níveis de auditoria foram especificados para todos os objetos no modelo de dados - As etapas para revisar os registros disponíveis no Salesforce são documentadas - Todas as respostas automatizadas são documentadas claramente |
Em suas normas de design e documentação:
- As políticas de segurança não existem ou não incluem informações sobre detecção e alerta de ameaças - A documentação para respostas automatizadas não existe ou não está clara |
| Dentro da sua empresa:
- Os dados de auditoria estão disponíveis em relatórios que as partes interessadas da empresa podem entender e acessar - Revisões regulares do histórico de auditoria e relatórios ocorrem |
Dentro da sua empresa:
- Os dados de auditoria estão disponíveis apenas por meio de arquivos de registro que exigem conhecimento sobre o assunto para acessar e interpretar - Não há processos para revisar informações de auditoria |
|
| Em sua organização:
- Automações estão em vigor para responder a ameaças desativando contas de usuário ou bloqueando o acesso a recursos em tempo real se uso anormal for detectado - Notificações e alertas são configurados para notificar os usuários apropriados sobre atividade anômala - O rastreamento de histórico de campo está habilitado para todos os campos que contêm dados privados ou confidenciais |
Em sua organização:
- Não há automações em vigor para responder a ameaças - As notificações e alertas não estão configuradas para notificar os usuários apropriados sobre atividades anômalas ou algumas notificações e alertas relacionados a atividades anômalas existem, mas são ad hoc - O rastreamento de histórico de campo não está habilitado de modo consistente para campos contendo dados privados ou confidenciais |
| Padrões | Antipadrões | |
|---|---|---|
| Compartilhamento e visibilidade | Em suas normas de design e documentação:
- Uma matriz de segurança descreve os dados que cada persona do usuário tem permissão para acessar - Diferentes padrões de acesso a dados são usados para usuários externos e usuários internos, se aplicável |
Em suas normas de design e documentação:
- Os padrões de design e a documentação não existem ou não contêm uma matriz de segurança - Se houver uma matriz de segurança, ela não descreverá o acesso a dados para personalidades do usuário |
| Em sua organização:
- Os padrões para toda a organização (OWDs) para usuários internos são Leitura pública ou OWDs para usuários internos são Privados, devido aos requisitos de conformidade - OWDs para usuários externos são privados - A IA generativa opera apenas no modo de usuário ou os usos selecionados para acesso ao sistema têm uma justificativa comercial clara |
Em sua organização:
- OWDs para usuários internos são definidos como Privados sem justificação comercial ou OWDs para usuários internos são definidos como Leitura/Gravação pública - OWDs para usuários externos são definidos como qualquer coisa diferente de Privado sem justificativa comercial - A IA generativa opera no modo do sistema sem justificativa de negócios |
|
| No Apex:
- Todos os códigos que acessam dados (SOQL/SOSL) ou executam operações de dados (métodos DML/Classe de banco de dados) usam palavras-chave compartilhadas |
No Apex:
- com compartilhamento palavras-chave são usadas inconsistentemente |
|
| Uso da criptografia | Em suas normas de design e documentação:
- Casos de uso para criptografia de dados em trânsito e (se necessário) em repouso são claros e descobríveis - Os protocolos de criptografia aprovados são listados claramente - A documentação de código indica claramente onde a criptografia é usada e quais protocolos são usados |
Em suas normas de design e documentação:
- Os protocolos de criptografia aprovados não estão claros ou não estão listados - O código não está documentado ou a documentação não está clara sobre onde e como a criptografia é usada no código |
| Em sua organização:
- Se forem identificados riscos de segurança que exijam maior proteção de dados em repouso, o Hyperforce ou o Salesforce Shield fornecerão criptografia em repouso |
Em sua organização:
- As necessidades de negócios exigem maior proteção de dados em repouso, mas nem o Hyperforce nem o Salesforce Shield são usados |
|
| No Apex:
- Se as necessidades de negócios exigem maior proteção de dados em trânsito, todo o código envolvido na integração executa lógica usando métodos Crypto Class para criptografar dados antes da transmissão ou descriptografar dados após o recebimento |
No Apex:
- As necessidades de negócios exigem maior proteção de dados em trânsito, mas o código envolvido na integração executa a lógica sem criptografar dados antes da transmissão ou no recebimento, ou os métodos Classe Crypto são usados ad hoc |
| Ferramenta | Descrição | Segurança organizacional | Segurança da sessão | Segurança de dados |
|---|---|---|---|---|
| Classe Apex Crypto | Criptografar e descriptografar dados no Apex | X | ||
| Controle de acesso à API | Gerenciar o acesso às APIs e aos aplicativos conectados do Salesforce | X | X | X |
| Eventos de anomalia de API | Rastrear anomalias na forma como os usuários fazem chamadas à API | X | ||
| Configurações de segurança do navegador | Proteger dados confidenciais e monitorar certificados SSL | X | ||
| Autenticação baseada em certificado | Autenticar indivíduos com certificados digitais exclusivos | X | X | |
| Certificados e chaves | Verificar solicitações para sites externos do Salesforce | X | X | |
| Scanner de código | Verificar o Apex code quanto a vulnerabilidades de segurança | X | X | |
| Aplicativos conectados | Integrar por meio de APIs e protocolos padrão | X | X | |
| Eventos de preenchimento de credenciais | Rastreie tentativas de logins que usam credenciais de usuário roubadas | X | ||
| Sitio confiável da CSP | Previna ataques de injeção de código (por exemplo, script entre sites) | X | ||
| Fluxos de login personalizados | Controlar processos comerciais de login para usuários | X | ||
| Identidade do cliente | Controlar logins e verificação de aplicativo e site | X | ||
| Data Mask | Mascarar automaticamente dados confidenciais em sandboxes | X | ||
| Logs de depuração | Rastrear eventos que ocorrem em sua organização | X | ||
| Administração delegada | Atribuir privilégios de administrador limitados a usuários não administradores | X | X | |
| Ativação do dispositivo | Verificar logins de navegadores, dispositivos ou intervalos de IP não confiáveis | X | ||
| Segurança de transações aprimorada | Interceptar eventos, monitorar e controlar a atividade do usuário | X | ||
| Acesso ao campo | Controlar o acesso a dados no nível do campo | X | ||
| Pista de auditoria de campo | Definir uma política para reter dados de histórico de campo arquivados | X | ||
| Rastreamento de histórico de campo | Rastrear e exibir histórico de campo | X | ||
| Frontdoor.jsp | Permitir acesso com um ID de sessão e URL do servidor existente | X | ||
| Heroku Connect | Sincronização bidirecional entre o Heroku e o Salesforce | X | ||
| Heroku Shield | Criar aplicativos em conformidade com HIPAA ou PCI | X | ||
| Segurança de sessão de alta garantia | Exigir segurança adicional para operações sigilosas | X | ||
| Identity Connect | Mapear registros de usuário para contas do Active Directory | X | ||
| Histórico de verificação de identidade | Auditar tentativas de verificação de identidade do usuário | X | ||
| Licença de usuário de integração | Conceda acesso a dados e recursos apenas por meio da API. | X | X | |
| Lightning Login | Impedir senhas fracas ou esquecidas e contas bloqueadas | X | ||
| Acesso de login | Permitir que usuários de suporte façam login como outro usuário | X | ||
| Análise forense de login | Identifique o comportamento que pode indicar fraude de identidade | X | ||
| Histórico de login | Monitorar tentativas de login da organização e do site do Experience Cloud | X | ||
| Rastreamento de dispositivo móvel | Rastreie e monitore o acesso de dispositivo móvel à sua organização | X | ||
| Mobile SDK | Conecte-se à Salesforce Platform em aplicativos móveis independentes | X | X | X |
| Permissões do usuário do monitor (shield) | Alterações de conjunto de permissões e grupo de conjuntos de permissões | X | X | |
| Autenticação multifator | Exigir dois ou mais métodos de verificação para login | X | X | |
| Autenticação mútua | Impor autenticação mútua SSL ou TLS | |||
| Meu domínio | Configurar páginas e políticas de login, logins SSO e sociais | X | ||
| Credenciais nomeadas | Especificar URLs de ponto de extremidade e parâmetros de autenticação | X | ||
| Autorização de OAuth | Autorizar o acesso ao aplicativo cliente por meio de troca de token | X | ||
| Políticas de senha | Definir histórico, comprimento e complexidade da senha | X | ||
| Expirations de atribuições de conjunto de permissões | Definir expirações para atribuições de conjunto de permissões e grupo de conjuntos de permissões | X | X | |
| Eventos de conjunto de permissões | Monitore alterações feitas em conjuntos de permissões e grupos de conjuntos de permissões | X | X | |
| Grupos de conjuntos de permissões | Empacotar conjuntos de permissões para dar suporte a requisitos de acesso complexos | X | ||
| Conjuntos de permissões | Controle como os usuários acessam metadados, recursos e aplicativos | X | ||
| Conexão privada | Proteger integrações entre o Salesforce e a Amazon Web Services | X | ||
| Perfis | Controlar intervalos de IP de login e horas de login | X | ||
| Monitoramento de evento em tempo real | Monitorar e detectar eventos padrão no Salesforce | X | ||
| Configurações do site remoto | Registrar sites externos para chamadas do Apex ou JavaScript | X | ||
| Eventos de anomalia de relatório | Rastrear anomalias na maneira como os usuários executam ou exportam relatórios | X | ||
| Regras de restrição | Impedir que usuários acessem registros desnecessários | X | ||
| Analisador de código do Salesforce | Ler código por meio de IDE, CLI ou CI/CD para garantir que ele cumpra as práticas recomendadas | X | X | |
| Regras de delimitação | Controle os registros padrão que seus usuários podem ver | X | ||
| Centro de Segurança | Visualize as configurações de segurança em todas as suas organizações e configure alertas para alterações de postura | X | X | |
| Verificação de integridade de segurança | Identifique vulnerabilidades em suas configurações de segurança | X | ||
| Eventos de sequestro de sessão | Identificar acesso não autorizado por meio de identificadores de sessão roubados | X | ||
| Classe de gerenciamento de sessão | Personalizar as configurações de segurança para uma sessão ativa | X | ||
| Configurações de segurança da sessão | Configure sessões para proteger contra ataques mal-intencionados | X | ||
| Configurar trilha de auditoria | Rastrear alterações de configuração recentes feitas por administradores | X | ||
| Configurações de compartilhamento | Controlar o acesso a dados no nível do registro | X | ||
| Shield Platform Encryption | Criptografe dados confidenciais em repouso e em trânsito | X | ||
| Login único | Fornecer acesso a vários aplicativos por meio de um único login | X | X | |
| Sistema de gerenciamento de identidade entre domínios (SCIM) | Gerenciar identidades entre sistemas por meio de APIs REST | X | ||
| Detecção de ameaças | Usar estatísticas e aprendizado de máquina para detectar ameaças | X | ||
| Intervalos de IP confiáveis | Defina endereços IP que não exigem verificação adicional | X | ||
| Relatório de acesso do usuário | Obtenha uma visualização unificada do acesso a objetos, registros e permissões de seus usuários | X | X |
| Recurso | Descrição | Segurança organizacional | Segurança da sessão | Segurança de dados |
|---|---|---|---|---|
| Um guia para arquitetura de compartilhamento | Saiba mais sobre ferramentas de acesso, modelos de compartilhamento e casos de uso | X | ||
| Modelo de padrões de design | Criar padrões de design para sua organização | X | X | X |
| Como criar um modelo de segurança do usuário | Obtenha uma compreensão melhor dos modelos de segurança do usuário | X | X | |
| Como implementar o princípio de privilégio mínimo no Salesforce | Aprenda a aplicar controles de acesso a dados PoLP no Salesforce | X | X | |
| Monitore sessões do usuário | Revisar sessões ativas e encerrar sessões suspeitas | X | ||
| Autenticação multifator | Acessar recursos oficiais de MFA do Salesforce | X | ||
| Grupos de conjuntos de permissões (Trailhead) | Obtenha práticas com grupos de conjuntos de permissões | X | X | |
| Arquitetura da API REST | Entender os termos e conceitos da API REST | X | X | X |
| Segurança e a API SOAP | Entender os termos e conceitos da API SOAP | X | X | X |
| Práticas recomendadas de segurança para usuários internos da API e do sistema | Proteger o acesso ao Salesforce por usuários da API e usuários do sistema interno seguros | X | ||
| Guia de implementação de segurança | Dê uma olhada abrangente na Segurança do Salesforce | X | X | X |
| Modelo de política de segurança | Definir políticas de segurança para sua organização | X | X | X |
| Tipo de sessão | Identifique os tipos de sessões usadas para acessar sua organização | X | ||
| Fundamentos da modelagem de ameaças (Trailhead) | Aprenda sobre ameaças à segurança e como evitá-las. | X |
| Confiável | ||
|---|---|---|
| Uma solução confiável protege sua empresa e as partes interessadas. | ||
| Seguro | Conformidade | Confiável |
| Segurança organizacional Segurança da sessão Segurança de dados |
Adesão legal Padrões éticos Acessibilidade |
Disponibilidade Desempenho Escalabilidade |
| Fácil | ||
| Uma solução fácil gera valor comercial rapidamente. | ||
| Intencional | Automatizado | Engajamento |
| Estratégia Capacidade de manutenção Legibilidade |
Eficiência Integridade de dados |
Simplificado Útil |
| Adaptable | ||
| Uma solução adaptável evolui com seus negócios. | ||
| Resistente | Composto | |
| Gerenciamento de ciclo de vida do aplicativo Resposta de incidente Planejamento de continuidade |
Separação de preocupações Interoperabilidade Capacidade de empacotamento |
|