Codificar com linguagens do Salesforce
Objetivos de aprendizagem
Após concluir esta unidade, você estará apto a:
- Listar linguagens que ajudam você a desenvolver com o Salesforce.
- Explicar os benefícios de cada uma das linguagens discutidas nessa unidade.
- Descrever como o Apex dá suporte ao desenvolvimento no Salesforce.
Conheça suas opções
Você acabou de conhecer o desenvolvimento de front-end na Salesforce Platform usando personalizações e automação sem código e com pouco código. Agora, se você é um programador de verdade, essa unidade é para você. Mesmo que você não seja programador, ainda assim conhecerá as principais funções do desenvolvimento do Salesforce que vão ajudar você a se comunicar com seus programadores.
No desenvolvimento com a Salesforce Platform, há várias linguagens de programação que podem ser usadas, incluindo:
- Estrutura de Componentes Web do Lightning: uma estrutura de desenvolvimento de interface do usuário baseada em JavaScript semelhante a AngularJS ou React.
- Apex: linguagem de programação exclusiva do Salesforce com sintaxe semelhante a Java.
- Node.js: Um tempo de execução assíncrono e orientado a eventos do JavaScript projetado para criar aplicativos de rede escaláveis.
Vamos dar uma olhada nas funções do aplicativo de exemplo da Dreamhouse que melhor demonstram essas tecnologias.
Componentes Web do Lightning
A estrutura de Componentes Web do Lightning (LWC) é uma estrutura de desenvolvimento de interface de usuário para desktop e dispositivos móveis. Como o nome indica, é uma abordagem de desenvolvimento de interface de usuário baseada em componentes. Usando componentes Web do Lightning personalizados ou já criados, você pode desenvolver rapidamente interfaces de usuário elegantes e consistentes para seus aplicativos.
Se você conhece estruturas como AngularJS, React ou Polymer, tem uma boa ideia do que esperar dos componentes Web do Lightning. A vantagem, claro, é que os componentes Web do Lightning estão prontos para funcionar com todos os seus dados comerciais no Salesforce.
Vamos observar um imóvel como o que vimos no Criador de aplicativo Lightning na última unidade, mas, agora, vamos vê-lo na guia Properties (Imóveis) dentro do aplicativo da Dreamhouse. Essa página tem muitos componentes Web do Lightning, mas, aqui, nos concentraremos em apenas um componente personalizado em particular: o componente map (mapa). Ele simplesmente mostra a localização do imóvel. O usuário aumenta o zoom para ver mais detalhes sobre o imóvel e arredores.
Vamos ver como esse componente foi criado.
Se você estiver acompanhado no Trailhead Playground até esse ponto, ótimo! A partir daqui, mostraremos capturas de tela do código dentro do aplicativo da Dreamhouse usando o Visual Studio Code.
O Visual Studio Code, ou VS Code, juntamente com o Pacote de extensões do Salesforce, é o ambiente de desenvolvimento integrado preferido do Salesforce que você pode usar para desenvolver, depurar e testar código em sua organização. Nos exemplos abaixo, observamos o código do componente property (imóvel) e, especificamente, o componente personalizado map (mapa) no VS Code. Pare um momento para observar algumas partes essenciais. Um arquivo HTML usa a marca <template> (modelo) onde partes do HTML são armazenadas.
Um arquivo JavaScript contém métodos que definem o que faz o componente funcionar.
Os componentes Web do Lightning também podem ter um arquivo .css para estilizar o componente; no entanto, esse componente não tem um arquivo .css. Na coluna esquerda do VS Code, você também vê alguns ativos adicionais que fazem parte do pacote do componente, incluindo um arquivo .xml e uma pasta tests (testes).
Outra coisa fantástica sobre os componentes Web do Lightning é a facilidade de verificar se seus componentes são compatíveis com dispositivos móveis. Verifique e depure seus componentes Web do Lightning usando simuladores móveis para ter certeza de que seu público móvel não terá problemas.
Para saber mais sobre componentes Web do Lightning, confira a seção Recursos abaixo.
Apex
O Apex é uma linguagem de programação fortemente tipada e orientada a objetos que permite aos desenvolvedores do Salesforce adicionar lógica de negócios a eventos do sistema, como cliques de botões e atualizações de registros relacionados.
Anteriormente, falamos sobre o Flow Builder como ferramenta que exige pouco código. Embora seja de pouco código, você também pode expandir as funções do Flow Builder com um pouco de codificação para o Apex. Outra alternativa é criar aplicativos mais complexos apenas com o Apex! Vamos dar uma olhada no código do fluxo de tela que vimos na Unidade 2 que reúne informações para criar um novo registro de imóvel no aplicativo da Dreamhouse.
Se você já desenvolveu em Java, provavelmente consegue ver o que está acontecendo nessa classe. Lembramos mais uma vez que não vamos ver todos os detalhes dessa implementação. Além da sintaxe semelhante a Java, podemos fazer outras observações.
- Observe que as classes internas
GeocodingAddress
eCoordinates
têm propriedades em cada classe com a anotação@InvocableVariable.
Isso permite que você as use para transmitir dados para o fluxo.
- O método
geocodeAddresses
do Apex está anotado com@InvocableMethod
, portanto, ele já pode ser invocado como uma ação do fluxo.
- O método
geocodeAddresses
gera as coordenadas da propriedade a partir do endereço, realizando uma chamada HTTPCallout para um serviço de terceiros.
É claro que a expansão do Flow é apenas uma das formas de usar o Apex para melhorar a funcionalidade da sua organização. Confira a seção Recursos para saber mais.
Node.js
O Node.js é um tempo de execução assíncrono e orientado a eventos do JavaScript projetado para criar aplicativos de rede escaláveis. Na Salesforce, usamos o Node.js como ferramentas de desenvolvedor, mas não desenvolvemos código com ele na plataforma.
Quando você cria um novo projeto usando o comando force:project:create
na Salesforce CLI ou com a paleta de comandos do VS Code, um conjunto de scripts e utilitários do Node.js é incluído no projeto para melhorar a experiência do desenvolvedor. O Node.js é um mecanismo de script independente de sistema operacional que pode ser usado para tarefas como formatar com o Prettier, aplicar o recurso de lint com o ESLint, testar o código dos componentes Web do Lightning com o Jest e muito mais.
Você acabou de conhecer várias linguagens e as estruturas mais comuns que podem ser usadas para personalizar a Salesforce Platform. Na próxima unidade, você aprenderá sobre ferramentas e produtos que podem ser integrados para ampliar ainda mais a funcionalidade na sua organização.
Recursos
- Trailhead: Noções básicas dos componentes Web do Lightning
- Trailhead: Testes dos componentes Web do Lightning
- Trailhead: Configurar suas ferramentas de desenvolvimento móvel para Componentes Web do Lightning
- Trailhead: Noções básicas do Apex para administradores
- Trailhead: Configurar seu espaço de trabalho e instalar ferramentas de desenvolvedor