Che diavolo e ‘ questa storia della Apex? Incontra Salesforce's programming language

12 Giugno Che diamine è tutta questa roba Apex?

Posted at 13:47hin ProgrammingbyCloudity

In brevi parole nerd, Apex è un linguaggio di programmazione fortemente tipizzato e orientato agli oggetti. È un linguaggio proprietario della piattaforma Lightning che viene salvato ed eseguito nella piattaforma cloud multi-tenant.

Ho sentito che questo è tipo di Java

Sintatticamente, sì, Apex è simile a Java., Se riesci a programmare in Java, sei davvero vicino ad essere uno sviluppatore Apex! Ma no, questo non è Java. È compilato come Java, ha una macchina virtuale Java in background – da qualche parte-ma non è una VM a tutti gli effetti, solo una parte di essa.

Se sei veramente interessato ai dettagli – beh, sono interni solo a Salesforce, ma puoi scavare alcuni dettagli interessanti in questo brevetto: Brevetto US20110264861: Metodi e sistemi per l’utilizzo del bytecode in un ambiente di servizio on-demand, inclusa la fornitura di ambienti e sistemi di runtime multi-tenant.,

Ho sentito che in Apex non posso fare X, Y e Z – perché dovrei anche perdere tempo a leggere qualche strana lingua!

Puoi trattarlo ad alto livello come una versione semplificata di Java.

Ma hey, hai davvero bisogno di ArrayList, LinkedList, Stack, Vector, TreeSet, LinkedHashSet, HashSet, HashMap, TreeMap e molti altri solo per memorizzare alcuni record?

In Apex c’è List, Set e Map. Facile da scegliere, facile da usare!

Questo è un linguaggio per fare il lavoro. E sì, puoi fare iniezioni di dipendenza se vuoi.,

Secondo Salesforce: Apex è esclusivamente per la creazione di applicazioni aziendali per gestire dati e processi all’interno del contesto più ampio di Apex Lightning Platform framework. Ma nell’ambito delle applicazioni aziendali, Apex Code fornisce un approccio unico potente e produttivo alla creazione di funzionalità e logica, consentendo agli sviluppatori di concentrarsi solo sugli elementi specifici della loro applicazione, lasciando il resto del “plumbing” al framework della piattaforma.

Affermazione abbastanza forte! Non è solo un po ‘ di marketing? NO!,

Ma per favore, se vuoi davvero dedicare il 95% del tuo tempo alla configurazione di server, database, microservizi, interfacce, gateway, bilanciamento del carico, backup e distribuzione.. oh e sì, sicurezza e ridondanza-scegli un’altra lingua e un’altra piattaforma.

Apex è:

  • Integrato con il database – puoi eseguire query e loop in linea, ad esempio recuperare ID e nome dalla Tabella dei contatti (1) che ha ricevuto l’indirizzo postale in Polonia, ma per favore unisciti alla Tabella degli account (2) e seleziona solo i Contatti sotto gli account che hanno ottenuto “soft” nel nome., Scorrere l’elenco, introdurre le modifiche (3) e quindi reinserire l’aggiornamento nel database (4). Quanto lavoro hai bisogno di fare in un’altra lingua? Guarda qui!

  • Versione, puoi avere più classi che si chiamano e tutte quelle classi possono essere eseguite nella loro versione – sì, questo Apex di 10 anni può collaborare con quelle nuove funzionalità lucide che hai appena costruito! E hai 3 grandi uscite all’anno. Ogni rilascio = nuove funzionalità.,
  • Facile da usare-la sintassi è simile a Java, i metodi Apex sono ben documentati e c’è una comunità molto forte intorno ad esso.
  • Rigoroso – Apex è fortemente tipizzato e compilato. Fallisce rapidamente in fase di compilazione se qualsiasi riferimento non è valido. Memorizza tutte le dipendenze personalizzate di campo, oggetto e classe nei metadati per garantire che non vengano eliminate mentre richiesto dal codice Apex attivo. Quindi-nessuno cancellerà una colonna nel database se la stai usando!,
  • Transazionale: tutte le operazioni DML in una transazione vengono completate correttamente o, se si verifica un errore in un’operazione, l’intera transazione viene ripristinata e nessun dato viene eseguito il commit nel database automaticamente!
  • Packable-è possibile imballare il codice e venderlo su AppExchange! O semplicemente prendi alcuni componenti pronti e riutilizzali nella tua istanza.

Se devo davvero, dove posso usarlo?

In una parola: l’intero backend! E qual è il backend per Salesforce?,

Blocchi anonimi:

È possibile utilizzare blocchi anonimi, compilati ed eseguiti al volo, non memorizzati da nessuna parte.

Vuoi fare una rapida correzione dei dati? Nessun problema! Inviare alcune email? Vai avanti!

Trigger:

Sì, la stessa lingua! I trigger Apex consentono di eseguire azioni personalizzate prima o dopo le modifiche ai record Salesforce, ad esempio inserimenti, aggiornamenti o eliminazioni.

Controller nei pattern MVC:

Sì, di nuovo. Stessa lingua. Apex.

Servizi Web REST e servizi Web SOAP:

Perché no? Esporre i dati che si desidera, sulle regole che si desidera con OAuth2.,0 o autenticazione completamente personalizzata. In poche righe di codice! Qui abbiamo un endpoint “Account” in cui si passa l’ID tramite URI e si ottengono alcuni dettagli extra su di esso.

Elaborazione e-mail:

È possibile esporre un indirizzo e-mail in Salesforce e fare qualsiasi elaborazione e-mail personalizzata. Ad esempio: Se si riceve un’e-mail e non si dispone di un contatto connesso a tale e-mail, è possibile crearne uno.

Sviluppo basato sugli eventi:

Sì! Sì! Sì! Hai un bus evento di livello enterprise che puoi semplicemente utilizzare nel tuo codice! Qualcuno ha detto “Kafka”?,

Ambiente serverless basato su Kubernetes

Salesforce Evergreen offre funzioni serverless basate su Kubernetes completamente gestiti, supporto per linguaggi di programmazione aperti e archivi dati ad alte prestazioni comunemente utilizzati. Evergreen supporta tecnologie e modelli architettonici come:

  • Functions-as-a-Service (Node.js, Java e Apex)
  • Microservizi
  • Archivi dati gestiti (Postgres, Apache Kafka e Redis)

Sì, tutte quelle cose belle e lucenti su quella brutta piattaforma Salesforce! Forse non così male alla fine?

Ho sentito che gli sviluppatori lo odiano!,

Apex applica le buone pratiche di programmazione con 2 caratteristiche di progettazione principali:

  • implementazione imposta dal test
  • limiti del governatore

Quindi sì, se non ti piace testare e scrivere codice ottimale, non ti piacerà, mi dispiace!

Test!

È facile da testare, Apex ha il supporto integrato per la creazione e l’esecuzione di unit test, sai esattamente quale linea è coperta e che ha bisogno di ulteriore attenzione. Puoi prendere in giro i servizi esterni in modo che anche le integrazioni API REST e API SOAP possano essere ben coperte.,

E-non puoi semplicemente spingere il codice alla Produzione se almeno il 75% del codice non è testato in unità! ODIO!!!

Limiti di governance!

Ti piace scrivere query di database in for loop? Sarai punito!

Ti piace interrogare l’intera tabella del database se hai bisogno solo di 2 campi in 4 record su 10 milioni di tabelle di record con 500 colonne? Sarai punito!

Ti piace usare algoritmi O (n^4)? Sì, sarai punito!

Ma hey, puoi semplicemente iniziare a scrivere un buon codice!, Poiché Apex viene eseguito in un ambiente multitenant, Apex runtime engine applica rigorosamente i limiti in modo che il codice o i processi Apex in fuga non monopolizzino le risorse condivise. Se un codice Apex supera il limite, il governatore associato emette un’eccezione di runtime che non può essere gestita.

Ci sono posizioni di lavoro lì per tutto questo apice?

Beh, conosco un sacco di persone che hanno programmato in Java e sono entrate nel mondo Salesforce. Non ricordo alcun lasciando Salesforce per Java. Hmm Money

Soldi? Lavoro interessante? Vari incarichi? Diverse applicazioni?, Non ho idea di quale sia il motivo!

Di solito, diciamo che abbiamo qualcuno chiamato uno sviluppatore Salesforce. Tale persona sta lavorando principalmente con backend-sì, Apex. Ma la maggior parte degli sviluppatori è più simile a “ninjas” – abbiamo un sacco di frontend in Salesforce sotto forma di componenti Web Lightning (modern Web Component framework), componenti Lightning (un po’ più vecchi, basati su framework Aura) o pagine Visualforce (pattern MVC)., Quando si lavora con Salesforce, si ampliano le conoscenze non solo su Apex (un forte linguaggio di programmazione orientato agli oggetti backend), ma anche su JavaScript, HTML5, CSS3 e le moderne tecnologie web.

OK, quindi posso impararlo da qualche parte senza pagare un sacco di soldi?

Salesforce ha una developer edition che è libero di utilizzare!

C’è anche una piattaforma Trailhead https://trailhead.salesforce.com/ dove si può imparare dal principiante al livello architetto gratis!, Questa piattaforma di apprendimento è fortemente gamified con argomenti di vita reale, chunked in facilmente digeribili 15-20 min parti.

E solo google – c’è un sacco di materiali di alta qualità disponibili a portata di mano!

Author: admin

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *