D: Ma ciò significa anche che dovrei mettere la logica di business nel front-end, nell'app web Angular2, giusto ?
Sì. Se non è supportato da un server, l'azienda dovrebbe essere implementata da qualche parte.
Dopo l'acquisizione di Google, Firebase si è evoluto fino a diventare una piattaforma per gli sviluppatori di app mobili che non potevano permettersi (o non hanno bisogno) di distribuire il proprio back-end. Mentre la maggior parte dei servizi sono piuttosto trasversali: archiviazione, accesso, analisi e servizio di messaggi, è vero che fornisce anche funzioni cloud (una sorta di lambda) che possono essere utilizzate per eseguire alcune regole specifiche dell'azienda. Tuttavia, per applicazioni aziendali o applicazioni di grandi dimensioni con un dominio complesso e una logica aziendale, questo tipo di supporto non è all'altezza.
Quindi, come puoi immaginare, Firebase non ci esonera dall'avere il back-end dedicato all'hosting e all'esecuzione di operazioni specifiche dell'azienda.
D: Quindi, se in futuro mi piacerebbe realizzare un front-end per app mobile, dovrei duplicare il codice della logica aziendale?
Non necessariamente. Se l'app Web è costruita su Angular, piattaforme incrociate come NativeScript potrebbero consentire di riutilizzare i componenti Web, le librerie, i programmi di utilità, i modelli, ecc. Non ho approfondito l'argomento, quindi non posso assicurarti la piena compatibilità. La chiave sta in TypeScript , sia Angular che NativeScript ci impone di programmare su TS.
La questione quindi è dove ospitare il Javascript per la sua distribuzione e versione . Una parola CDN .
D: Immagino che l'alternativa sarebbe quella di creare un back-end che contenga la logica aziendale e utilizzi Firebase per l'archiviazione dei dati, ma sembra un po 'strano (non potrei semplicemente usare un ORM o qualcosa direttamente nel mio back-end per ottenere lo stesso risultato senza molto più lavoro?)
Alcune considerazioni
Da un lato, l'hosting, l'implementazione, la gestione e la manutenzione di un database non è cosa da poco. Per non parlare della gestione della sicurezza, della scalabilità, della disponibilità, ecc. Quindi, avere un provider DB che si occupa di queste cose è interessante. In questi giorni non è un'idea folle avere il nostro database da qualche parte nel cloud. Naturalmente, non lo suggerirei se stessimo implementando il middleware e i back-end per una banca. Ma potrebbe avere senso per la sessione del cliente, i profili dell'utente, le preferenze e questo tipo di dati che di solito vivono sul lato client o dati che non ci interessano.
D'altra parte, avere il nostro back-end è utile per un semplice motivo, il disaccoppiamento .
Invece di associare i nostri clienti a tutti i tipi di servizi che non gestiamo e controlliamo, implementiamo un'applicazione lato server da cui ci occupiamo di queste cose in modo che i nostri clienti non debbano preoccuparsi di problemi come l'arresto o l'interruzione dei servizi i cambiamenti. Inoltre, guadagniamo sulla semplicità perché il nostro back-end si comporta come una facciata.
D: In che modo le persone di solito strutturano questo tipo di app, ad esempio se desiderano utilizzare Firebase?
Varia ampiamente da progetto a progetto. Ad esempio, utilizziamo Firebase + back-end.
Firebase DB per condividere dati tra dispositivi-account-sessioni . Anche come log delle modifiche, quando il nostro back-end è temporaneamente non disponibile, i client inviano le operazioni di scrittura al registro, che viene sincronizzato in seguito.
Firebase Cloud Messages ci fornisce notifiche e argomenti push upstream / downstream. Usiamo il servizio per lo scambio di messaggi pub / sub.
Analisi Firebase Principalmente per metriche.
Back-end per tutto ciò che è strettamente legato al business