Salesforce APEX Implemente soluções com padrões e técnicas de Orientação a Objetos
Eduardo CarvalhoSobre o livro
Este livro é destinado a estudantes de tecnologia, desenvolvedores/desenvolvedoras que desejam entrar para o universo Salesforce e, também, a quem já está no mercado de trabalho e busca mais conhecimento sobre práticas de desenvolvimento e padrões na plataforma Salesforce. Através deste livro, leitores e leitoras serão capazes de criar soluções elegantes e escaláveis, destacando-se no mercado.
Quais conhecimentos você vai adquirir após ler este livro?
Este livro vai além de ensinar a desenvolver na plataforma Salesforce através da linguagem APEX. Ele proverá a você conhecimentos sobre:
* Orientação a Objetos;
* Práticas de Código Limpo (Clean Code);
* Princípios de desenvolvimento de software S.O.L.I.D.;
* Princípios de testes;
* Melhores práticas de desenvolvimento orientado a testes;
* Diversos padrões de projetos e boas práticas de desenvolvimento voltados para a Salesforce.
Note o volume de conteúdo voltado para padrões e princípios de desenvolvimento de software. Eles são a base para sua formação como desenvolvedor(a) e são independentes de linguagem.
Como devo estudar?
Este livro é um complemento do material fornecido pelo Trailhead (https://trailhead.salesforce.com/), no qual recomendo que crie sua conta e faça as trilhas de desenvolvimento, para que você possa conhecer mais sobre a plataforma Salesforce e seus recursos, começando por esta: https://trailhead.salesforce.com/users/strailhead/trailmixes/build-your-developer-career-on-salesforce.
Este livro guiará você de forma gradual: os exemplos iniciais são mais simples, justamente para que você possa se adaptar à linguagem e ao ambiente de desenvolvimento, passando da sintaxe básica da linguagem a conceitos de Orientação a Objetos, do básico ao avançado, para que você possa entender e realizar a evolução natural do código.
Gosto de dizer que os códigos iniciais não são produtivos, ou seja, você não deve utilizá-los em seus projetos, pois serão menos elegantes; porém, de forma gradual, aplicaremos padrões de projetos e práticas de desenvolvimento para que, ao final do livro, você tenha um código "bonito, cheiroso e produtivo".
O que é a plataforma Salesforce?
A plataforma Salesforce é a maior referência em CRM, considerada pelo Gartner a líder no setor por 13 anos consecutivos (2008 a 2021). Este mercado está em expansão e carente de bons profissionais que saibam como desenvolver na plataforma. De acordo com a Salesforce, existe uma demanda de aproximadamente 4,2 milhões de novos empregos voltados para o ecossistema.
Por que aprender Salesforce?
Se olharmos somente pela ótica da empregabilidade, a Salesforce já seria uma ótima escolha, porém não é somente isso. A plataforma Salesforce envolve dezenas de soluções, desde a implementação na própria plataforma até a implementação de plugins para o Slack. Esse ecossistema é o que chamamos de visão 360º do cliente (Customer 360), em que todas as soluções são integradas para prover uma visão completa de todo o negócio do cliente.
Aqui está uma visão geral de todas as soluções da plataforma Salesforce:
* Sales Cloud: Onde as empresas podem acompanhar a prospecção de novos clientes, monitorar resultados e automatizar processos de vendas;
* Service Cloud: Fornece uma visão completa de todo o pós-venda do cliente, com capacidade de estruturar e automatizar call centers, fornecendo multicanais de atendimento e monitoramento do nível de serviço ao cliente;
* Marketing Cloud: Inspira ação e fidelidade, humanizando cada momento para cada cliente. Potencializa todas as interações com IA, de anúncios a marketing baseado em contas, de e-mail a comércio eletrônico, de redes sociais a serviços;
* Commerce Cloud: Fornece experiência de comércio eletrônico, permitindo a entrada no mercado com mais rapidez e inteligência e proporcionando experiências personalizadas ao cliente em plataformas móveis, digitais e sociais;
* Integration: O MuleSoft traz a capacidade de integrar sistemas do cliente com Salesforce de forma simples e rápida;
* Analytics: O Tableau aprimora o Customer 360 com aplicativos de análise, modelos de painel e conexões de produtos perfeitas. Equipes de toda a empresa podem aprender mais facilmente com seus dados diretamente no fluxo de trabalho.
Através dessa visão do ecossistema, observe que existem dezenas de possibilidades de crescimento profissional e, também, de empreender, dado o volume de empresas que implementam soluções inteiras para a plataforma e as disponibilizam na loja de aplicativos App Exchange (https://appexchange.salesforce.com/).
Mas o que é um CRM? E o que faz?
CRM é a sigla usada para Customer Relationship Management (Gestão de Relacionamento com o Cliente). Porém, a definição de CRM vai além: é uma gestão 360º de vendas, marketing, atendimento e de todos os pontos de contato.
Estamos na era do cliente, da transformação digital, das novas tecnologias. Nesse cenário, o relacionamento também evoluiu, levando a um novo conceito também conhecido como experiência do cliente. O conceito de CRM significa ser centrado no cliente. É estratégia, é um processo, é ferramenta e tecnologia.
O CRM armazena informações de clientes atuais e potenciais, como nome, endereço, número de telefone, suas atividades e pontos de contato com a empresa, incluindo visitas a sites, ligações telefônicas, e-mails, entre outras interações. Entretanto, o software de CRM não é apenas uma lista de contatos elaborada: ele reúne e integra dados valiosos para preparar e atualizar suas equipes com informações pessoais dos clientes, histórico e preferência de compras.
Agora que você já viu a pontinha do iceberg, vamos nos aprofundar nesse novo universo que é a plataforma Salesforce, desenvolvendo de forma "elegante, bonita e cheirosa" :).
Sumário
- Parte 1: Introdução à linguagem APEX
- 1 Preparando sua estação de trabalho
- 2 Introdução a Orientação a Objetos
- 2.1 Primeiros passos com a linguagem APEX
- 2.2 Boas-vindas ao mundo dos Objetos
- 2.3 Determine as características de uma classe
- 2.4 Determinando comportamento de uma classe
- 2.5 Ciclo de vida dos objetos
- 2.6 O que é este tal de this?
- 2.7 Trabalhe com coleções de objetos
- 2.8 Definindo visibilidade dos membros da classe
- 3 Acessando dados através do APEX
- 3.1 Entenda o que são os Objetos da plataforma
- 3.2 Introdução a SOQL
- 3.3 Navegação e relacionamento entre objetos
- 3.4 Acessando os dados pelo APEX
- 3.5 Aumente a segurança do seu código
- 3.6 Utilizando funções de agregação com SOQL
- 3.7 Atualizando dados pelo APEX
- 4 Capture as atualizações do banco de dados
- 4.1 Utilizando as variáveis de contexto
- 4.2 Utilizando a Trigger para fazer validações complexas
- 4.3 Enriqueça dados com Triggers
- 5 Teste tudo!
- 5.1 Testes de unidade
- 5.2 Testando operações com o banco de dados
- Parte 2: Bem-vindo(a) ao lado Orientado a Objetos da Força
- 6 Definindo papéis e responsabilidades
- 6.1 Delegue o acesso a dados para classes Repositories
- 6.2 Filtre, indexe e agrupe os dados
- 6.3 Enriqueça dados
- 6.4 Encapsule o comportamento de validação com Validator
- 7 Vamos adicionar novos Jutsus com a Orientação a Objetos
- 7.1 Sobrecarga
- 7.2 Herança
- 7.3 Polimorfismo
- 8 Aplicando os novos Jutsus
- 8.1 Evoluindo as classes Repository
- 8.2 Implementando o padrão TriggerHandler
- 8.3 Melhorando nossas classes de teste
- 8.4 Compartilhamento de registros
- Parte 3: Trabalhando com serviços remotos
- 9 Consumindo serviços REST
- 9.1 O que é o HTTP
- 9.2 Como podemos consumir uma API externa?
- 9.3 Melhorando nossa base de código
- 9.4 Testando nossos Callouts
- 9.5 Segregue a responsabilidade com Transformers
- 10 Expondo serviços REST
- 10.1 Implementando classes RestResource
- 10.2 Como testar classes RestResource?
- 10.3 Testando externamente
- 10.4 Implementando serviços com um cenário mais próximo do real
- 10.5 Entendendo o ciclo transacional
- Parte 4: Trabalhando de forma assíncrona
- 11 Alternativas de processamento assíncrono
- 11.1 Trabalhe com chamadas futuras
- 11.2 Testando chamadas futuras
- 11.3 Cenário real com chamadas futuras
- 11.4 Utilizando a interface Queueable para chamadas assíncronas
- 12 Trabalhe com classes agendadas
- 12.1 Entendendo a expressão CRON
- 12.2 Rastreando os agendamentos
- 12.3 Como testar o agendamento?
- 13 Trabalhando com alto volume de dados
- 13.1 Interface Batchable
- 13.2 Encadeamento de Batches
- Parte 5: Seja um(a) ninja nos testes
- 14 F.I.R.S.T.
- 15 Mocks
- 15.1 Explorando o conceito de dublês de testes
- 15.2 Criando nosso primeiro dublê de teste (Mock)
- 16 Utilizando o framework Mocker
- 16.1 Introdução ao framework
- 16.2 Arrange: parametrizando a execução
- 16.3 Act: executando o Mock
- 16.4 Assert: validando a execução
- 16.5 Trabalhando com erros
- 17 Mockando tudo
- 17.1 Mockando classes Enricher
- 17.2 Utilize Mock em vez de Test.isRunningTest()
- 17.3 Mockando classes com escopo estático
- 17.4 Mockar ou testar de forma integrada?
- 17.5 Considerações finais
- 18 Conclusão
- 18.1 Indo além
- 19 Referências
Dados do produto
- Número de páginas:
- 411
- ISBN:
- 978-85-5519-363-7
- Data publicação:
- 01/2024