Quando Node ti fa arrivare sul lettino dello psicoanalista: come cambia la programmazione tradizionale con tecnologie di javascript dinamico come react, node, vue, angular da riga di comando

E bei tempi quelli in cui si poteva creare una bella cartellina statica dentro ci si metteva dentro di tutto , dagli assets, la cartella delle risorse che contenevano le images o altre librerie di supporto, la famosa cartellina css e quella js per inserire gli script esterni javascript o jquery. Bè perchè tutta quella roba là è andata perduta come lacrime nella pioggia verrebbe da chiedersi tanto per citare un film famoso anche in linea apocalittica con queste sciagure moderne da anno ambiguo nella sua dicitura (2020 che vordì? Che la prima lama ti fa male ma quella che viene dopo ti deturpa definitivamente? No i progetti web seguono ancora una pressa che non è andata perduta, ma accanto a queste tecniche edili del software che viene eretto a partire dalle fondamenta sono germogliate già da diversi anni tecnologie invasive o meglio pervasive o meglio omnicomprensive che stanno rivoluzionando l’antico modo di creare un software con le nuove implicazione server side conferite al potentissimo dio javascript appunto lato server. Prendiamo node per esempio. Che cosa sarebbe questa roba da riga di comando, la CLI, la common line interface dove io progetto applicativi da sonori megabyte altisonanti (quelle statiche una volta sparati i file sul server via ftp sono davvero leggere) impartendo comandi sulla famosa cmd di windows per esempio? Analizziamo una cosa spaventosa per un neofita avvezzo di grafica al top che non sa nulla di mestieri come il full stack developer. Come si fa ad avvicinarsi a una creatura terribile come node? Innanzitutto che roba è node? Ci si ripete, è semplice javascript lato server, una novità sconvolgente quindi per come eravamo abituati a infliggere quegli alert ammiccanti al centro di browser che non supportavano nulla. Node è come la famosa biblioteca di Alessandria, leggiamo da wikipedia: “la Biblioteca reale di Alessandria fu la più grande e ricca biblioteca del mondo antico ed uno dei principali poli culturali ellenistici. Andò distrutta nell’antichità, probabilmente più volte tra l’anno 48 a.C. e il 642 d.C.; in suo ricordo è stata edificata, ed è in funzione dal 2002, la moderna Bibliotheca Alexandrina“. Ok, quindi node è un serbatoio di software simile ai repository di Linux, cioé dei luoghi dove sono depositati software che svolgono le più svariate mansioni. Chiunque può finire in node risolvendo un problema universale con un software portentoso creato appositamente per arginare quella insana situazione. Ok ma io sento parlare anche di NPM che roba é? Al di là dei giochetti che vengono attribuiti all’ acronimo la versione più ragionevole dovrebbe suonare come node packager manager, ossia uno strumento amministrativo di gestione dello sviluppatore che ha accesso tramite opportuni comandi da riga di comando alla più grande libreria dell’ epoca moderna. Ok, allora siamo di fronte a un trauma, prima eravamo costretti a scrivere milioni di righe di codice direttamente sull’ editor adesso prima bisogna imparare a parlare con l’antica finestra dos di window richiamabile con il comando cmd? Si, ma un primo approccio è possibile in maniera indolore, il primo mattone che ci farà avvicinare a una ipotetica Messina senza ponte da Reggio Calabria (per imparare una tecnologia da qualche parte bisognerà pur iniziare per colmare la distanza abissale che ci separa da quell’ entità sconosciuta). Quindi? Primo passo installare node dal sito https://nodejs.org/en/ e seguire una delle tanti guide presenti in rete tipo https://www.nodeacademy.it/installare-node-js-windows/ dopodichè armiamoci e partite. Bisognerebbe avere una vaga idea di interazione client-server che non è altro che una partita a tennis tra due soggetti uno dei quali chiede e l’altro risponde. A questo proposito viene citata spesso una applicazione REST ossia acronimo di Representational State Trasfer ossia una situazione dove l’utente fa delle richieste GET o POST tramite il protocollo HTTP a un server. Senza addentrarci in situazioni complicate con situazioni che riguardano la stringa dei dati sulla URL e sulla rimodulazione degli end point in node, node si occupa in maniera performante di lavorare in modalità asincrona questo gli consente di non rimanere bloccato su singole richieste. Impostare l’ambiente di lavoro è semplice, dopo aver installato la libreria ci serve un buon editor del tipo visual studio code https://code.visualstudio.com/ , poi un browser come mozilla, safari o il più usato dagli sviluppatori come chrome. Servirà anche un software specifico per le interrogazioni REST come POSTMAN, indirizzo https://www.postman.com/ . Le versioni di node si devono riaggiornare dopo qualche mese, basterà rinominare la cartella specifica e rimettere la nuova release. Poi ci sono delle problematiche particolari legati alle nuove sintassi vedi per esempio domanda specifica su modulo Babel da installare se ci sono problemid i questo tipo: https://it.quora.com/Quando-devo-usare-babel-con-NodeJS. A questo punto non ci resta che tuffarci e piangere! Sfruttando la riga di comando gestibile anche da visual studio nella sua area specifica attivabile tramite tasto CTRL e O accentata, una voltra creata una cartella su desktop con il nostro progetto e una volta arrivato a posizionarmi all’ interno tramite i comandi classici del DOS come CD nome cartella posso richiamando la cmd impartire il seguente comando:

npm init

il sistema richiederà una serie di cose che noi possiamo lasciare scorrere, tutto tranne l’entry point dell’ applicazione di solito index.js da scrivere alla richiesta di node. Poi confermiamo tutto e node ci creerà un packages json che servirà a gestire tutta la nostra applicazione che partirà come punto di partenza da un nome arbitrario che noi abbiamo ribattezzato index.js (o meglio se abbiamo confermato tutto ci verrà assegnato di default). A questo punto come per magia all’ interno della nostra cartella ci ritroviamo dal nulla un file con estensione JSON di nome per l’appunto package.json. Questo è il pannello di controllo di tutta l’applicazione come già detto, qui possiamo inserire dei comandi e verranno assegnate in automatico delle dipendenze in caso di assegnazione di moduli. A questo punto sorge spontanea una domanda: ma se volessi creare la mia classica prima applicazione in node come faccio, qualcosa del tipo ciao mondo? Allora creo un file entry level ossia il mio punto di partenza definito da JSON come index.js e all’ interno ci andrò a scrivere una istruzione per testare se abbiamo fatto in questa prima fase di avvicinamento a Node tutto giusto:

console.log (“ciao mondissimo”)

a questo punto torno sulla mia CLI, e da riga di comando impartirò l’ordine alla macchina di far correre il mio primo potentissimo applicativo scrivendo:

node index.js

il risultato sarà che il programma si metterà in modo a video sulla stessa CLI comparirà il messaggio

ciao mondissimo

per iniziare non c’è male, ma considerato che node mi fa installare server virtuali (il modulo EXPRESS ha un grande successo nei download per esempio), mi fa gestire anche siti statici grazie alle ROUTE e agli instradamenti delle richieste GET e che posso anche recuperare dei valori all’ interno della mia applicazione tramite servizi di database particolari come Mongo DB per esempio, si capisce subito che siamo di fronte a una autentica rivoluzione. Certo un progetto che prima occupava 1 mega di memoria su file system qui ne occupa cento proprio perchè node crea moduli nella sua cartella specifica aggiunge dipendenze ed elabora anche traduzione sulle nuove versione di ecmascript JS tramite strumenti come Babel per esempio. Insomma sia che si voglia costruire un profilo da front end developer sia che ci si voglia spaccare la testa con uno sviluppo più massivo lato back-end con profili come quello di web developer full stack, passare attraverso tecnologie come node, react, angular, vue e simili è passaggio obbligato. Ovviamente ci va del tempo ad assimilare tutto, ne consegue quindi che conviene concentrarsi su poche alternative per esplorarle ed estrapolare da esse cose utili. In ogni caso io dentro al file js avrei potuto scrivere qualsiasi programmino semplice che mi fa magari una addizione tra due numeri per essere sicuro che il risultato sia che usi JS lato client piuttosto lato server come fa NODE non cambi. Il prossimo passo per diminutire la distanza tra Reggio Calabria e Messina o tra la terra e la luna con il famoso ponte della conoscenza è passare necessariamente dal modulo EXPRESS che gestisce le richieste REST, ma questa è un’ altra storia!

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo di WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Google photo

Stai commentando usando il tuo account Google. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...

%d blogger hanno fatto clic su Mi Piace per questo: