Composável – Capacidade de empacotamento

Padrão de gerenciamento de dependência

Saiba mais sobre Well-Architected Adaptable → Composable → Empacotabilidade → Gerenciamento de dependências

Onde procurar?
Área de produtos | Local
Qual é a aparência de um bom?
Padrão
Plataforma | Padrões de design ✅ Existem padrões para introduzir ou modificar dependências
Plataforma | Padrões de design ✅ Existem padrões para declarar dependências
Plataforma | Pacotes ✅ Nenhum metadado é duplicado entre pacotes
Plataforma | Pacotes ✅ Para desenvolvimento de pacote, todo o trabalho de desenvolvimento de estágio inicial acontece em organizações teste
Plataforma | Controle de origem ✅ Os desenvolvedores podem criar organizações teste e implementar metadados de pacote com sucesso a partir do controle de origem
Plataforma | Controle de origem ✅ Versões de pacote para pacotes desbloqueados usam alias (LATEST) para declarar dependências em manifestos de sfdx-project.json

Padrão de acoplamento solto

Saiba mais sobre Well-Architected Adaptable → Composable → Empacotabilidade → Acoplamento solto

Onde procurar?
Área de produtos | Local
Qual é a aparência de um bom?
Padrão
Plataforma | Apex ✅ Métodos dependentes de informações dinâmicas de tempo de execução fazem referência a tipos de metadados personalizados apropriados
Plataforma | Apex ✅ Serviços comuns e código de caldeira são definidos usando classes abstratas ou virtuais do Apex
Plataforma | Padrões de design ✅ (Opcional) Todos os casos de uso aprovados para configurações personalizadas são listados claramente (se houver)
Plataforma | Padrões de design ✅ Convenções de nomenclatura identificam como denotar unidades de pacote
Plataforma | Padrões de design ✅ É possível pesquisar e localizar uma lista de todas as unidades de pacote definidas no momento (e convenções de nomenclatura relacionadas)
Plataforma | Padrões de design ✅ Existem padrões para propor alterações ou adições de unidade do pacote
Plataforma | Organização ✅ Tipos de metadados personalizados fornecem informações dinâmicas de tempo de execução para personalizações declarativas e de código
Plataforma | Organização ✅ Não há objetos personalizados para fornecer informações dinâmicas de tempo de execução para personalizações declarativas ou de código
Plataforma | Organização ✅ Não há configurações personalizadas ou há poucas configurações personalizadas e nenhuma está relacionada à funcionalidade do pacote
Plataforma | Pacotes ✅ Nenhum pacote não gerenciado é definido em produção ou sandboxes
Plataforma | Pacotes ✅ Pacotes desbloqueados dependentes da organização são usados apenas para experiências de estágio inicial ou de prova de conceito
Plataforma | Controle de origem ✅ Arquivos de package.xml aparecem apenas em estágios iniciais ou manifestos de projeto de prova de conceito

Antipadrão de gerenciamento de dependência

Saiba mais sobre Well-Architected Adaptable → Composable → Empacotabilidade → Gerenciamento de dependências

Onde procurar?
Área de produtos | Local
O que evitar?
Antipadrão
Plataforma | Padrões de design ⚡️ Os padrões de design não existem ou não tratam de como declarar dependências
Plataforma | Pacotes Dependências são contornadas duplicando metadados em diferentes pacotes
Plataforma | Pacotes ⚡️ O desenvolvimento de pacote antecipado acontece em sandboxes do desenvolvedor ou o desenvolvimento de pacote antecipado não pode acontecer em organizações teste
Plataforma | Controle de origem ⚡️ Os desenvolvedores não podem trabalhar com sucesso com organizações teste usando o controle de origem
Plataforma | Controle de origem Versões de pacote para pacotes desbloqueados são declaradas explicitamente (sem alias de LATEST) em manifestos de sfdx-project.json

Antipadrão de acoplamento solto

Saiba mais sobre Well-Architected Adaptable → Composable → Empacotabilidade → Acoplamento solto

Onde procurar?
Área de produtos | Local
O que evitar?
Antipadrão
Plataforma | Apex ⚡️ Serviços comuns e código de caldeira não são facilmente distinguidos de outras classes
Plataforma | Apex 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 fazem referência a configurações personalizadas de código
Plataforma | Apex 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
Plataforma | Padrões de design ⚡️ Os padrões de design não existem ou não lidam com unidades de pacote e casos de uso
Plataforma | Organização ⚡️ As configurações personalizadas são usadas
Plataforma | Organização ⚡️ Existem objetos personalizados para fornecer informações dinâmicas de tempo de execução para personalizações declarativas ou de código
Plataforma | Organização 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
Plataforma | Pacotes ⚡️ Pacotes não gerenciados são definidos em produção ou sandboxes
Plataforma | Pacotes ⚡️ Todos os pacotes são pacotes desbloqueados dependentes da organização
Plataforma | Controle de origem Os arquivos package.xml são usados para controlar implantações de metadados