Il termine "front-end" è sinonimo di "lato client"? Se è così, è sempre così?

17

Come sviluppatore web relativamente nuovo (autodidatta), ho sentito i termini front-end , lato client , back-end e lato server abbastanza spesso. Per me, front-end e back-end erano sempre sinonimi rispettivamente lato client e lato server.

Tuttavia, dato che ho iniziato a lavorare con framework MVC come CodeIgniter, ho riscontrato alcune istanze di front-end che si riferiscono sostanzialmente a tutto ciò che l'utente vede (incluso il codice lato server), mentre il back-end ha riferito a tutto ciò che l'utente finale non vede (compresi i CMS). Lato client e lato server, per me, sono molto più concreti nel loro significato; hanno una linea ben distinta che li separa. Front-end e back-end, d'altra parte, no.

In una conversazione che ricordo di aver avuto con un altro sviluppatore web, ha fatto riferimento a CodeIgniter (nella sua interezza) come front-end, e questo mi ha buttato per un loop. Non ero sicuro se correggerlo e dire che CodeIgniter era il mio back-end, o se le mie definizioni dei due termini erano completamente sbagliate.

La ricerca di definizioni di front-end e back-end mi ha confuso un po 'di più per alcuni aspetti, anche se hanno chiarito alcune cose. Vorrei solo sapere dove sono tracciate le linee tra questi quattro termini e come si mettono insieme nel contesto dello sviluppo web (in particolare su uno stack LAMP).

    
posta DC_ 27.02.2013 - 00:16
fonte

4 risposte

14

Non credo che ci sia una definizione formale per quei termini e, come hai notato, c'è in alcuni casi una sovrapposizione.

front-end e client-side sovrapposizione.
anche server-side e back-end si sovrappongono.

Se dovessi dividere i capelli, offrirei questi limiti grossolani:

  • client-side è un'applicazione che viene eseguita sul computer degli utenti. Potrebbe essere un'applicazione stand-alone (più spesso) o potrebbe fare riferimento a un'interfaccia basata su browser Web (meno probabile).
  • front-end è rivolto anche all'utente finale e generalmente viene eseguito in un'interfaccia basata su browser web. Non ho sentito parlare di thick client come front-end .
  • back-end si riferisce a processi e servizi che sono in esecuzione su un altro server o sullo sfondo del computer degli utenti. Più spesso, si riferisce a processi che sono non sul computer degli utenti finali. Ma la chiave, come hai detto, è che l'utente finale non è necessariamente a conoscenza dei processi in esecuzione.
  • server-side è un'estensione di back-end ma rinforza esplicitamente il fatto che i processi sono in esecuzione da qualche altra parte e non sui computer degli utenti finali.

A titolo di esempio, e per evidenziare la confusione tra i termini, userò Minecraft come esempio.

Minecraft ha un

  • client-side dell'applicazione quando si eseguono i file jar localmente con la propria JVM.
  • front-end se si sceglie di eseguire l'applicazione client nel proprio browser Web
  • % processo diback-end che può essere eseguito localmente sul tuo computer se sei in modalità autonoma
  • processo server-side se si sceglie di accedere a un server che ospita l'applicazione server Minecraft.

Se analizzi alcune delle statistiche di Minecraft, vedrai che semplicemente designano un componente client e server nel gioco; non si preoccupano necessariamente dove vengono eseguiti quei componenti.

Per rispondere direttamente alle tue domande:

Is the term 'Front-End' synonymous with 'Client-Side'?

Un po ', ma non proprio. C'è una sfumatura tra i termini se stai discutendo di cose al di fuori del mondo basato sul web. Se sei strettamente all'interno del mondo basato sul Web, allora sì, sono anche funzionalmente sinonimi.

If so, is this always the case?

Nel mondo web, direi di si. In altri reami, direi di no come spiegato nelle definizioni approssimative che ho offerto.

    
risposta data 27.02.2013 - 00:37
fonte
15

Sul lato server viene eseguito sul server. Il client viene eseguito sul client. Il back-end sta scricchiolando i dati. Il front-end lo sta visualizzando.

Guarda questa pagina web. Tirare tutti i commenti dal database è lavoro lato server, back-end. La stesura di tali dati in un modello è di tipo front-end, sul lato server. I widget di votazione AJAX e la casella di input testo fantasioso sono front-end, lato client.

    
risposta data 27.02.2013 - 01:18
fonte
1

Generalmente trovo che usare lato client e lato server per descrivere lo sviluppo / gli sviluppatori è meno vago. Quella parte del lato client dove stiamo manipolando / formattando i dati può essere vista come un componente di back-end. Sul rovescio della medaglia c'è tutto il templating che tende ad accadere sul back-end, che essendo "per il front end" tende a far sì che le persone parlino di loro come lo sviluppo front-end di Java o C #. È raro, ma l'ho visto nelle descrizioni del lavoro.

Ma sì, in generale il front end è la parte in cui avviene l'interazione. Il back-end è la parte in cui tutta questa interazione diventa qualcosa di utile.

    
risposta data 27.02.2013 - 04:17
fonte
0

Questa domanda è un po 'più vecchia, ma lasciatemi aggiungere il mio 2c:

Nel mio sviluppo web, ho usato il termine "frontend" che significa codice - o altre risorse - che sono elaborate nel browser per un po '. Ora, io uso il termine "cliente", perché potrebbe confondere esp. quando si eseguono applicazioni web. (App per singola pagina)

Semplicemente perché sul lato back-end, c'è anche un "frontend", che significa in generale la parte dell'applicazione che è responsabile per l'output (al browser). Quindi "frontend" può effettivamente significare due cose diverse. Il termine "client" tuttavia imho descrive più chiaramente qualcosa che è correlato al cliente reale (in questo caso, il browser).

PS: Beh, forse dovrei anche cambiare il mio nickname in "client_dev" ora;)

    
risposta data 11.10.2016 - 17:21
fonte

Leggi altre domande sui tag