Come sviluppatore web relativamente nuovo (autodidatta), ho sentito spesso i termini front-end , lato client , back-end e lato server . Per me front-end e back-end erano sempre sinonimo rispettivamente di lato client e lato server.
Tuttavia, dato che ho iniziato a lavorare con framework MVC come CodeIgniter, ho riscontrato alcuni esempi di front-end che si riferiscono sostanzialmente a tutto ciò che l'utente finale vede (incluso il codice lato server), mentre il back-end ha fatto riferimento a qualsiasi cosa l'utente finale non vede (compresi i CMS). Lato client e lato server, per me, sono molto più concreti nei loro significati; hanno una linea ben distinta che li separa. Front-end e back-end, d'altra parte, non lo fanno.
In una conversazione che ricordo di aver avuto con un altro sviluppatore web, ha fatto riferimento a CodeIgniter (nella sua interezza) come un front-end, e questo mi ha gettato per un ciclo. Non ero sicuro di 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ù sotto alcuni aspetti, anche se hanno chiarito alcune cose. Vorrei solo sapere dove sono tracciate le linee tra questi quattro termini e come si uniscono nel contesto dello sviluppo web (in particolare su uno stack LAMP).