Michele Nasti

Thoughts on what I learn

Cinque tool per migliorare la vostra developer experience

Riuscireste a svolgere il vostro lavoro senza la linea di comando? Se siete come me, ossia amanti di bash, ecco alcuni tool che vi permetteranno di migliorare la vostra developer experience.

mac command line

Si installa da linea di comando e crea un eseguibile, mac, che permette di svolgere molte operazioni comuni con pochi click.

Un esempio?

  • mac ip:public vi restituisce il vostro ip pubblico
  • mac speedtest esegue uno speed test da linea di comando
  • mac memory vi dice quale app sta consumando la vostra preziosa RAM

e tanti altri. Sono circa una cinquantina!

Oh-my-zsh per un terminale più combattivo

Oh-my-zsh è un tool che va a sovrascrivere un po' di cose nei vostri file di configurazione di zsh. In particolare, modifica il funzionamento del prompt di comando mostrandovi le informazioni di cui più avete bisogno:

Insomma, avrete sott'occhio user, cartella in cui vi trovate, repository e branch, senza impazzire. E poi migliora anche l'utilizzo dell'autocompletamento (il TAB). Ci sono anche i plugin. Oh my!

ngrok, per testare chiamate API dall'esterno

Dovete testare le chiamate di un sistema esterno verso il vostro software? Ad esempio, io ho avuto questa esigenza con le API di Paypal e Gestpay: a un certo punto questi sistemi dovevano notificarmi che i pagamenti erano andati a buon fine e mi avrebbero contattato agli indirizzi configurati.

Come testare e come verificare il contenuto di queste chiamate? Facile, con ngrok: un tool che permette di creare un tunnel privato da un indirizzo http esterno.

Per farla facile, voi lanciate ngrok http 8000 e ngrok creerà un indirizzo tipo http://abc33344422.ngrok.io. Visitando questo indirizzo (anche dall'esterno della vostra rete privata!) ngrok redirige il traffico alocalhost:8000. Tutto ciò che passa per ngrok viene loggato e mostrato!

Git Flow, una metodologia per semplificare e standardizzare git nel team

Git flow è sia un tool installabile da linea di comando, sia un approccio filosofico alla domanda "come lavorare in gruppo".

Git è un potentissimo sistema di versioning e branching; spero per voi che lo stiate già utilizzando altrimenti brrrr.

Con git flow organizziamo il lavoro in due meta-filoni:

  • branch master, che corrisponde alle versioni rilasciate
  • branch develop, ossia dove gli sviluppatori committano le feature sviluppate, in attesa di rilascio.

Oltre a questi due branch "generali", ogni azione degli sviluppatori è realizzata creando nuovi branch:

  • Gli sviluppi delle singole feature sui branch feature/*tua_feature*
  • I rilasci (da develop a master) su branch chiamati release/*nome_release*
  • le hotfix (fix, correzioni a bug, di versioni già rilasciate) su branch hotfix/*nome_fix*.

Non ci avete capito niente? Qui un grafico che prova a spiegare comandi e funzioni.

Bonus: Postman per testare le interfacce Rest

Ho iniziato a lavorare che c'era SOAP e si stava appena iniziando a parlare di REST. Qualche anno dopo, SOAP è diventato legacy e tutti si dichiarano REST, chi bene e chi male.

Ad ogni modo, è sorta l'esigenza di testare le interfacce REST e come testarle se non con Postman?

Postman

Questa è una vera e propria applicazione standalone che permette di effettuare ogni tipo di chiamata desideriate, GET - PUT - POST - HEAD etc. C'è la possibilità di salvare le chiamate, passare header aggiuntivi, visualizzare i dati in molti modi (ad esempio JSON), etc etc.

Come dite? non è un tool da linea di comando? Avete ragione, ma questo è il mio blog e qui comando io 😂