Benvenuti a un’altra puntata della serie Under the Code, in cui esploriamo come altri sviluppatori di Salesforce hanno creato incredibili applicazioni API di Salesforce.

Questa volta ho intervistato Enrico Murru, famoso per la sua estensione per Chrome, ORGanizer for Salesforce.

Vediamo cosa possiamo imparare dall’esperienza di Enrico.

Perché ha creato questa applicazione?

ORGanizer for Salesforce è stato solo un esperimento per velocizzare il mio lavoro quotidiano su Salesforce come sviluppatore (da sviluppatore pigro volevo automatizzare alcune attività e avere facilmente l’intero contesto dell’organizzazione all’interno di un’unica scheda del browser) mentre imparavo a sviluppare un’estensione per Chrome, cosa che in qualche modo mi affascina ancora.

Quanta pianificazione/pensiero ha fatto prima di iniziare a codificare?

Ho iniziato a codificare l’estensione con una preparazione davvero minima, perché onestamente avevo già in mente le prime funzionalità: l’unico divario tra l’idea e la prima versione dell’app era solo il tempo necessario per codificarla.

Dall’inizio della prima sessione di codifica alla prima versione disponibile sul Chrome Web Store, ci sono voluti circa 2 mesi e la maggior parte del tempo era legata al fatto che volevo che fosse pronta per la produzione (quindi la maggior parte dell’applicazione era pronta in 2 o 3 settimane).

Come avete scelto le tecnologie da utilizzare (linguaggio di programmazione, framework, ecc.)?

La costruzione di un browser porta a un insieme specifico di scelte tecnologiche, come l’uso di Javascript, HTML e CSS, ma è possibile ampliare la propria visione utilizzando altri strumenti come :

  • Strumenti di automazione dei test (come Selenium, che richiede maggiori competenze di codifica a seconda del linguaggio di programmazione scelto)
  • Repository di codice per non perdere nessuna modifica durante le sessioni di codifica creativa (io ho scelto Git)
  • Script per automatizzare la versione finale del pacchetto che verrà inviata al negozio
  • Strumenti di gestione dei progetti per tenere traccia dei rilasci e delle funzionalità future, mailing list e CRM per tenere traccia delle richieste e dei bug degli utenti
  • Un sito web per pubblicare tutta la conoscenza della vostra applicazione al pubblico.

Ad alto livello, qual è l’architettura di questa applicazione? Quali sono i suoi componenti?

L’app è composta da:

  • L’estensione del client (disponibile su Chrome, Microsoft Edge e Firefox)
  • Un server API utilizzato per gestire la convalida delle licenze.
  • Un sito web pubblico utilizzato per la pubblicazione della conoscenza del prodotto
  • Un servizio proxy che gestisce tutta la sicurezza dei certificati Https, la cache e altre caratteristiche di performance.

Come avete appreso tutte le tecnologie necessarie per creare questa applicazione? Si trattava di conoscenze preesistenti o le avete apprese specificamente per creare questa applicazione?

Ho costruito l’estensione proprio per capire come funzionava l’estensione del browser e questo mi ha portato a migliorare alcune delle mie competenze già acquisite, come la codifica Javascript, l’integrazione e la gestione della sicurezza.

Come avete ideato l’interfaccia utente? Avete esaminato le applicazioni esistenti per trovare delle idee? Avete suggerimenti per i nostri lettori su come creare un’interfaccia utente semplice e piacevole?

Di solito mi ispiro alle UI di altri strumenti (se riesco a trovarne una che si adatti in qualche modo) o semplicemente parto da un modello (usando librerie CSS standard come Bootstrap) e poi miglioro fino a trovare la migliore esperienza utente. Devo ammettere che la comunità di utenti mi ha aiutato (e continua ad aiutarmi) ad adattare l’interfaccia utente per un uso migliore.

Ha usato un framework css? Quanto css ha scritto da solo? Ha imparato qualche lezione?

Ho adottato un framework CSS ben noto, con semplici personalizzazioni: Suggerisco di non reinventare la ruota, soprattutto se, come me, non siete esperti di interfaccia utente.

Come si gestisce l’autenticazione all’organizzazione Salesforce dell’utente?

Una delle caratteristiche principali di ORGanizer è la gestione del login nel portale web di Salesforce. L’esperienza di login viene gestita utilizzando diversi metodi di login:

  • Username / password utilizzando la pagina standard del login
  • Username / password / token utilizzando le API SOAP/REST
  • Autenticazione OAuth 2.0 utilizzando un’app esterna connessa che ha identificato ORGanizer come app di terze parti.

Ci sono lezioni importanti che avete imparato dalla creazione di questa applicazione?

Ogni caratteristica è una caratteristica importante (anche il piccolo miglioramento rende felici i vostri utenti), la conoscenza è potere (una cattiva documentazione porta ad una minore adozione da parte degli utenti), ascoltate la comunità degli utenti (grazie alla pagina “Support” nel sito di supporto ho ricevuto centinaia di idee sorprendenti).

Quale consiglio daresti ad altri sviluppatori che vogliono creare un’applicazione Salesforce Fullstack?

Se avete un’idea (anche piccola) di qualcosa che può migliorare le persone, non esitate, iniziate a costruirla, anche una prova di concetto/demo è sufficiente, potete ancora migliorarla in seguito ma potreste avere tra le mani la prossima killer app: non aspettate che sia perfetta, la perfezione non esiste, ma la tecnologia cambia così velocemente che potreste perdere il treno!

In che modo la creazione di questa app ha influito positivamente sulla sua carriera? (interventi a eventi sf, nuove opportunità di lavoro, networking, nuovi progetti, ecc.)

ORGanizer mi ha aiutato a ottenere lo status di MVP di Salesforce (insieme ad altre attività online), a partecipare a una sessione del Dreamforce 17 e a far sì che il mio nome fosse collegato a un prodotto ben noto, utilizzato da migliaia di professionisti di Salesforce.

 

 

Fonte: tradotto da Salesforceapi

Share:

administrator