Colpo di #genio estremamente radicale per risolvere un annoso #problema: il creare una data #webapp, che non abbia bisogno di grande interattibilità (vedi un social network, o un CMS), senza dover mantenere 2 #codebase separate e quindi impazzire, facendola funzionare sia con un #server che totalmente senza... ossia, come unire in una sintesi circa accettabile i due maggiori paradigmi del #frontend? 🤔️

  • Quello antico, delle prime #piattaforme #web, dove il server genera tutto l'HTML e il browser lo visualizza com'è, spesso con (quasi) zero #JavaScript (vedi la Spacc BBS). 📦️
  • Quello moderno, dove nel #backend si espongono API (spesso JSON REST), e il fronte viene sviluppato a parte come app che gira totalmente lato #client, con il #browser che richiede pezzetti di dati e fa i suoi iperprocessamenti. 💱️

Ormai quello antico non si usa quasi mai per #progetti nuovi, perché gli svantaggi sono pesanti appena si vuole andare un po' più in là: per tappare i buchi nel progetto medio si finirebbe a dover scrivere talmente tanto #codice #ClientSide, che a questo punto era meglio fare tutto nel secondo modo, senza menzionare i modelli e le #API da esporre nel server che altrimenti non si sarebbero implementati. Però, le webapp antiche girano bene anche sul computer tascabile meno performante (average Ximi), sui browser vecchi, e spesso sono le uniche che vanno quando tutto il resto ti lascia a piedi. D'altro canto però, anche se in teoria quella #app potrebbe funzionare #offline, magari mostrando dati cachabili, se è sviluppata in modo attaccato al server ecco allora che non si può fare nulla: muore il server, muore tutto. 💣️

Quindi la mia #idea paxxerella, dato che devo fare banalmente una #applicazione come frontend per un altro servizio già esistente, ma voglio i vantaggi appena millantati: sviluppare con i paradigmi #ServerSide in un framework JS adatto, che giri sia in Node che nel browser. A quanto pare, qualcuno ci ha pensato prima, e qualcosa di già fatto ho trovato (Express+FrontExpress, Koa+Koa-Client, Rill)... ma è tutta roba ormai abbandonata, che o non funziona (ho provato) o ha altre #rogne. Te pareva che trovavo mai qualcosa di buono già pronto... Però, in un quarto d'ora ho tirato su uno #script scheletrino, giusto per poter partire per questa via. ☠️

Rapido #esempio: questo #programma (giusto da #dimostrazione, non fa nulla se non mostrare questo testo e far navigare tra pagine) gira sia come server su #NodeJS, che come script in una pagina #HTML totalmente #locale, e l'esperienza non cambia. Percepisco il potenziale, continuerò così. 😤️
@octospacc



  • Tags: API, app, applicazione, backend, browser, client, ClientSide, codebase, codice, dimostrazione, esempio, frontend, genio, HTML, idea, JavaScript, locale, NodeJS, offline, piattaforme, problema, progetti, programma, rogne, script, server, ServerSide, web, webapp
  • Categories: Senza categoria