Ambiente di sviluppo

monitor showing C++
Photo by Dlanor S on Unsplash

Erano davvero anni che non scrivevo del codice in una forma complessa come quella che sto affrontando in queste settimane.

Per questa ragione, e sino a questo momento, non avevo bisogno di un ambiente di sviluppo particolarmente complesso. Per ciò di cui avevo bisogno mi bastava un interprete, o compilatore, del linguaggio che stavo utilizzando ed un editor che fosse sufficientemente furbo. In alcuni casi non era nemmeno necessario un interprete od un compilatore, ad esempio nel momento in cui stavo lavorando alla integrazione tra Google Sheets e Salesforce.

Ora invece quello che sto facendo è leggermente più complesso e quindi ho dovuto adattarmi per semplificarmi la vita.

Allo stato delle cose il mio ambiente è fatto in questo modo:

  • PyCharm come editor, ma non solo. Ero partito con Visual Studio Code ma non mi ci trovo. Questione di feeling. Con PyCharm mi trovo molto più vicino a casa che non con altri strumenti. Forse perché ha un look un pochino retrò che mi non mi fa sentire troppo vecchio. Mi piace il debugger di PyCharm e gli strumenti che mi mette a disposizione senza dovermi muovere tra una finestra e l’altra. Uno tra tutti il database explorer che mi serve spesso per tenere sotto controllo i tre database che sono la base della mia applicazione. Ho configurato PyCharm in maniera pesante secondo i miei gusti e le mie esigenze e sincronizzo le impostazioni su tutte le macchine su cui mi sposto durante la giornata via GitHub. Facile ed efficace.
  • Ci sono tre processi base nella mia applicazione che parlano tra loro tramite REST API e ho necessità di tenere sotto controllo i log di tutti e tre i processi per verificare dove ho fatto qualche errore. In questo caso la soluzione è basata su terminale.
  • Come shell da secoli utilizzo zsh che è incredibilmente potente. In particolare sul mio Mac zsh gira su iTerm 2 che è un grande sostituto al terminale presente di default su Max. Oltre a questo le funzionalità di zsh sono aumentate da Oh My Zsh che è un framework per zsh.
  • Per quello che devo fare non sono in grado di vivere senza tmux. tmux è un terminal multiplexer di una potenza straordinaria. E’ un pochino ostico all’inizio ma se, come me, preferite una tastiera al mouse è una cosa di cui non potrete più fare a meno.
  • Nel momento in cui devo cominciare a lavorare devo fare partire i tre processi in tre finestre di terminali diverse, in alcuni casi fare qualcosa sul database e, quasi sempre, compiere delle operazioni per chiudere i tre processi in maniera sana. Questo sono operazioni ripetitive e noiose ma che devono essere fatte per non perdere tempo per riportare il sistema in uno stato sano. In questo caso mi aiuta tmuxinator che insieme a tmux risolve questo problema in maniera eccellente. Strumento potente ma che va configurato tramite un file in formato yaml che non è proprio bellissimo. Sostenibile dato che lo si fa una volta sola.
  • Uso git come source control system per essere certo che quando passo da macchina a macchina la code base sia allineata. Un pochino overkill rispetto alle mie esigenze ma se non altro imparo qualcosa.
  • Una nota particolare riguarda alcune librerie Python e strumenti che uso per semplificarmi la vita. Chi ha scritto un pochino di codice in Python sa che le exception sono abbastanza poco ben formattate e si perde un sacco di tempo ad interpretarle per arrivare alla causa dell’errore. In questo caso viene in aiuto Loguru che con un semplice decorator permette di ottenere delle exception così ben formattate che di più non si può. Per documentare le mie API in modo più o meno automatico uso Swagger che è utile e semplice.

Sono certo che qui non sto raccontando niente di nuovo. Diciamo che è servito più a me per fare il punto della situazione che non a programmatori molto più esperti di me.


Shameless self promotion ahead…

Nel caso non ve ne foste accorti qui in giro c’è anche un podcast con il quale potrete intrattenervi.

Quello di seguito è l’ultimo episodio.

Qui, invece tutti gli episodi pubblicati sino ad ora: Parole Sparse – Il Podcast


0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Commenti
Newest
Oldest Most Voted
Inline Feedbacks
View all comments