Que raio é isto do Apex? Meet Salesforce's programming language

12 Jun What the heck is this whole Apex stuff?

Posted at 13: 47hin ProgrammingbyCloudity

In short Nerd words, Apex is a strongly-typed, object-oriented programming language. É uma linguagem proprietária da plataforma Lightning que é salva e executada na plataforma multi-tenant cloud.

I heard this is kind-of-Java

Syntactically, yes, Apex is similar to Java., Se você pode programar em Java, você está muito perto de ser um desenvolvedor Apex! Mas não, isto não é Java. Ele é compilado como Java, ele tem uma máquina virtual Java em segundo plano – em algum lugar – mas não é um VM completo, apenas a parte dele.

Se você está realmente interessado em detalhes – bem, eles são apenas internas para Salesforce, mas você pode cavar alguns detalhes agradáveis nesta patente: Patente US20110264861: Métodos e sistemas para a utilização de bytecode em um serviço sob-demanda ambiente, incluindo o fornecimento de multi-inquilino ambientes de execução e sistemas.,

I heard that in Apex I can’t do X, Y, and Z – why should I even waste my time reading about some strange language!

você pode tratá-lo em um alto nível como uma versão simplificada de Java.

mas hey, você realmente precisa de ArrayList, LinkedList, Stack, Vector, TreeSet, LinkedHashSet, HashSet, HashMap, TreeMap, e muito mais apenas para armazenar alguns registros?

no ápice há lista, conjunto e mapa. Fácil de escolher, Fácil de usar!

esta é uma linguagem para fazer o trabalho. E sim, podes fazer injecções de dependência se quiseres.,

de acordo com a Salesforce: Apex é exclusivamente para a construção de aplicações de Negócios Para Gerenciar dados e processos dentro do maior contexto da plataforma Apex Lightning framework. Mas dentro do escopo das aplicações de negócios, o Apex Code fornece uma abordagem exclusivamente poderosa e produtiva para a criação de funcionalidade e lógica, permitindo que os desenvolvedores se concentrem apenas nos elementos específicos de sua aplicação, deixando o resto da “canalização” para o framework da plataforma. alegação muito forte! Não é só marketing? Não!,

mas, por favor, se você realmente quiser gastar 95% do seu tempo configurando servidores, bases de dados, microservices, interfaces, gateways, balancers de carga, backup e implantação.. OH e sim, segurança e redundância-escolha outra linguagem e outra plataforma.

Apex é:

  • integrado na base de dados – você pode fazer consultas inline e loops, por exemplo, obter o Id e o nome da tabela de contactos (1) que obteve o endereço de correio na Polónia, mas por favor junte-se à tabela de Contas (2) e escolha apenas os contactos nas contas que ficaram “suaves” no nome., Iterar sobre a lista, introduzir alterações (3) e, em seguida, basta empurrar a atualização de volta para a base de dados (4). Quanto trabalho você precisa fazer em outra língua? Olha para isto!

  • Versão, você pode ter várias classes de chamar uns aos outros e todos aqueles classes pode ser executado na sua própria versão – sim, aos 10 anos de idade Apex pode co-trabalho com aqueles brilhantes novos recursos que você criou apenas! E você tem 3 grandes lançamentos por ano. Cada lançamento = novas funcionalidades.,
  • fácil de usar – a sintaxe é semelhante a Java, OS métodos Apex são bem documentados e há uma comunidade muito forte em torno dele.
  • Rigorous-Apex é fortemente digitado e compilado. Ele falha rapidamente no tempo de compilação se quaisquer referências são inválidas. Ele armazena todos os campos personalizados, objetos e dependências de classe em metadados para garantir que eles não são excluídos enquanto são requeridos pelo código Apex ativo. Então-ninguém irá apagar uma coluna na base de dados se você estiver usando-a!,
  • transacional-todas as operações DML em uma transação completa com sucesso ou, se um erro ocorrer em uma operação, a transação inteira é rolada para trás e não há dados comprometidos com a base de dados – automaticamente!embalável – pode embalar o seu código e vendê-lo em AppExchange! Ou apenas pegar alguns componentes prontos e reutilizá-los em sua instância.se tiver mesmo de ser, onde posso usá-lo?

    numa palavra – toda a infra-estrutura! E qual é a infra-estrutura para a Salesforce?,

    blocos anônimos:

    você pode usar blocos anônimos, compilados e executados na hora, não armazenados em qualquer lugar.

    deseja fazer uma correção rápida de dados? Não há problema! Enviar alguns e-mails? Força!

    gatilhos:

    Sim, a mesma linguagem! Os gatilhos do Apex permitem-lhe efectuar acções personalizadas antes ou depois de alterações nos registos da Salesforce, tais como inserções, actualizações ou supressões. controladores em padrões de MVC:

    Sim, novamente. A mesma linguagem. Apice.

    REST Web Services and SOAP Web Services:

    Why not? Exponha os dados que deseja, sobre as regras que deseja com o OAuth2.,0 ou autenticação totalmente personalizada. Em algumas linhas de código! Aqui temos um endpoint “conta” onde você passa o Id via URI e obter alguns detalhes extras sobre isso.

    processamento de E-mail:

    você pode expor um endereço de E-mail na Salesforce e fazer qualquer processamento de E-mail personalizado. Por exemplo: se você receber um e-mail, e não tiver um contato conectado com esse e-mail, você pode criar um.Desenvolvimento Orientado a eventos:

    Sim! É! É! Você tem um ônibus de eventos de nível empresarial que você pode apenas usar em seu código! Alguém disse “Kafka”?,

    Kubernetes-based serverless environment

    Salesforce Evergreen traz funções serverless com base em Kubernetes totalmente gerenciados, suporte para linguagens de programação abertas, e comumente usado armazenamento de dados de alto desempenho. A Evergreen suporta tecnologias e padrões arquitetônicos como:

    • Functions-as-a-Service (Node.js, Java, and Apex)
    • Microservices
    • gered data stores (Postgres, Apache Kafka, and Redis)

    Yes, all those nice, shiny things on that ugly Salesforce platform! Talvez não seja assim tão mau?

    ouvi dizer que os programadores odeiam!,

    Apex impõe boas práticas de programação por 2 projeto do núcleo de recursos:

    • teste imposta de implantação
    • governador limites

    Então, sim, se você não gosta de teste e de escrita ideal de código, você não vai gostar, desculpe! teste!

    É fácil de testar, Apex recebeu suporte incorporado para a criação e execução de testes de unidade, você sabe exatamente qual linha é coberta e qual precisa de alguma atenção extra. Você pode zombar de serviços externos para que também a API de descanso e as integrações de sabonetes podem ser bem cobertas.,

    E-você simplesmente não pode empurrar o código para a produção se pelo menos 75% do código não é unidade testada! Ódio!!!limites de governação!

    gosta de escrever as consultas da base de dados para o loop? Serás castigado!

    gosta de consultar toda a tabela da base de dados se precisar de apenas 2 campos em 4 registos de 10 milhões-tabela de registos com 500 colunas? Serás castigado!

    Você gosta de usar o (n^4) algoritmos? Sim, serás castigado!

    mas você pode simplesmente começar a escrever um bom código!, Como Apex é executado em um ambiente multitenante, o motor Apex tempo de execução estritamente impõe limites para que o código ou processos Apex runaway não monopolize recursos compartilhados. Se algum código Apex exceder o limite, o governador associado emite uma exceção de tempo de execução que não pode ser tratada.

    existem alguns postos de trabalho para todo este ápice?

    Bem, eu conheço muitas pessoas que têm sido programadas em Java e foram para o mundo da Salesforce. Não me lembro de sair da Salesforce para Java. Dinheiro? Trabalho interessante? Várias missões? Aplicações diferentes?, Não faço ideia de qual é a razão! geralmente, dizemos que temos alguém chamado desenvolvedor da Salesforce. Tal pessoa está trabalhando principalmente com backend-sim, Apex. Mas, a maioria dos desenvolvedores são mais como “ninjas” – nós temos um monte de frontend na Salesforce na forma de componentes Web Lightning (framework de componentes Web modernos), Lightning Components (um pouco mais velho, baseado em framework aura) ou Visualforce Pages (padrão MVC)., Quando você trabalha com a Salesforce, você amplia seu conhecimento não só sobre Apex (uma linguagem de programação orientada a objetos de backend forte), mas também sobre JavaScript, HTML5, CSS3 e tecnologias web modernas. OK, então posso aprender em algum lugar sem pagar muito dinheiro?

    a Salesforce tem uma edição de desenvolvimento que é livre de usar!

    Há também uma plataforma Trailhead https://trailhead.salesforce.com/ onde você pode aprender do novato ao nível do arquiteto de graça!, Esta plataforma de aprendizagem é fortemente gamificada com tópicos da vida real, embutida em peças facilmente digeríveis de 15-20 min.

    e apenas google it – há um monte de materiais de alta qualidade disponíveis em suas pontas dos dedos!

Author: admin

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *