Dovresti sempre programmare lato server per un sito Web?


38

Sto per iniziare a creare un sito web di un progetto musicale per un amico. Dovrebbe essere abbastanza semplice per ora: nessun contenuto dinamico (date del tour, ecc.) E nient'altro che alcune canzoni campione o collegamenti SoundCloud incorporati. Non mi aspetto di utilizzare altro che JavaScript vaniglia e Bootstrap o Foundation per una griglia reattiva.

È abbastanza comunque? Posso semplicemente caricare file HTML, CSS e JS su un host e farlo con esso, oppure devo impiegare del tempo per programmare un server back-end in Node o PHP?


54
È abbastanza? Quale problema hai che risolverebbe avere un back-end dinamico. Tienilo stupido, fino a quando non puoi.
RubberDuck

25
Massimizza il lavoro non svolto. YAGNI.
RubberDuck

9
Probabilmente sarà meglio installare un CMS già pronto se tutto ciò che farai è scrivere del testo, caricare alcune immagini e alcuni file musicali / incorporare alcuni file video / YouTubes ... WordPress ecc. essere l'ideale e la maggior parte delle società di hosting offrono programmi di installazione con un clic per farti andare in pochi minuti .... ci sono molti CMS là fuori.
Kinnectus

11
Mi chiedo perché una domanda come questa abbia così tanti voti positivi? È come chiedere "Devo creare un database per il mio software anche se non è necessario memorizzare alcun dato?". Non mi sorprenderebbe se fosse una domanda per principianti, ma non quando sei abbastanza abile da creare un progetto bootstrap / fondazione.
Mahdi

14
@Mahdi è stato votato perché tutti si sono chiesti questa maledetta cosa per 5 anni e nessuno ha avuto il coraggio di chiederlo.
Djechlin,

Risposte:


86

Se non sai se hai bisogno di un codice lato server, probabilmente non *

* Avvertenza : il codice lato server è essenziale per la sicurezza, quando si desidera controllare internamente l'accesso a contenuti, dati o funzionalità. (Non deve necessariamente essere il tuo server, vedi l'ultimo paragrafo.)

Chiediti quale problema risolverebbe utilizzando le tecnologie lato server. Se non riesci a pensare a nessuno (e nel tuo caso, neanche io), non hai bisogno di loro.

Tieni presente che molto più di quanto potresti pensare è possibile utilizzando solo il codice lato client. I framework JavaScript come AngularJS o ReactJS possono farti integrare con contenuti dinamici di terze parti tramite le API che utilizzano Ajax. (Ciò include l'aggancio a un'API in grado di gestire la propria sicurezza.)


17
Penso che questa sia un'affermazione pericolosa da fare: le tecnologie lato server vengono utilizzate spesso quando "potresti farlo lato client": la decisione di spostare le cose su un server è per motivi di sicurezza, non necessariamente funzionali. - in quanto tale promuovere un atteggiamento di "non sapere" è preoccupante: i programmatori dovrebbero sempre considerare la sicurezza in qualsiasi applicazione, anche se semplice come descritto. L'intera soluzione dovrebbe essere presa in considerazione: vuoi un'area di contenuto "protetta", costringendo gli utenti a registrarsi o come su FB prima di dare loro un mp3? (comunque in questo caso, un sito statico suona bene)
Jmons

3
C'è qualcosa da dire anche per i vantaggi di sicurezza dei generatori di siti statici. Per molte applicazioni, i siti statici sono il massimo in termini di sicurezza in quanto non c'è letteralmente nulla da hackerare.
Nathan GoFundMonica Arthur,

1
Server-side code is essential for securityalcuni sviluppatori non danno informazioni sulla sicurezza. Non fino a quando non lanci la loro faccia nel loro ... casino. La mia linea è se hai bisogno di autenticazione, hai bisogno di un back office. Se è necessario archiviare i dati, è necessario un backoffice in cui i dati verranno controllati una seconda volta dopo essere stati controllati dal lato client.
Walfrat,

1
@Walfrat Se hai solo bisogno di un'autenticazione, puoi scaricarla su un numero qualsiasi di servizi di autenticazione aperti e non utilizzare alcun backend. Se hai bisogno di autorizzazione, d'altra parte, potresti aver bisogno di alcune cose di backend.
corsiKa

56

Leggi i generatori di siti statici. Questi ti consentono di creare un sito in modo programmatico (utilizzando modelli, dati, ecc.) E non realizzando HTML manualmente. Il risultato è un insieme di HTML e CSS statici che non richiedono alcun backend.

https://www.staticgen.com/ elenca e classifica un numero di tali generatori open source; probabilmente esistono anche offerte a fonte chiusa.


3
+1, funziona ancora per siti dinamici che solo un po 'nel tempo (come blog e itinerari turistici). Fino a quando il contenuto non dipende dall'utente che guarda la pagina, è spesso sufficiente.
RemcoGerlich,

1
+1. Le date del tour e le canzoni di esempio dovranno essere aggiornate dal cliente più o meno spesso. Un generatore di siti statici gli evita di dover toccare HTML, ed è molto più semplice e sicuro di un CMS (mal gestito).
Bergi,

3
mentre sono d'accordo che questo è un buon suggerimento per OP, cerca davvero di rispondere alla domanda come è stata posta?
Woodrow Barlow

La risposta marcata era più generale e allineata alla domanda, come cita Woodrow Barlow. Comunque ho fatto +1 per aver preselezionato una buona soluzione e molti altri potrebbero scegliere
Deegriz il

2
@WoodrowBarlow: direi che Can I simply upload HTML, CSS, and JS files to a host and be done with it, or should I take the time to program a backend server in Node or PHP?richiede di sottolineare che esiste un terzo, nel caso di OP piuttosto attraente, l'opzione IMHO :)
Tobia Tesan,

6

Puoi e dovresti usare solo un sito statico se è abbastanza, o usare un generatore di siti statici . Perché? manutenibilità. Il codice ha dei bug. Ogni poche settimane viene trovata un'altra falla di sicurezza di WordPress. Se si utilizza un CMS comune, sarà necessario correggerlo costantemente. Altrimenti il ​​sito Web dei tuoi amici conterrà presto pubblicità di droghe illegali, propaganda ISIS, malware installato sui computer dei visitatori o peggio. Anche se lo aggiorni regolarmente, potresti essere troppo tardi, quindi devi controllare costantemente la presenza di hack. Esistono modi per proteggere questo CMS. Installa "plug-in di sicurezza", configura un firewall per applicazioni web come mod_security ecc. Tutto solo altro lavoro. Devono anche essere aggiornati. A volte le tue regole mod_security interrompono un plug-in per WordPress, devi analizzarlo e risolverlo. Più lavoro.

Potresti pensare che nessuno vorrà hackerare quel sito. Ma per i comuni buchi di sicurezza riscontrati nei comuni sistemi CMS, ci sono presto robot automatici che eseguono la scansione / ricerca nel Web e hackerano TUTTI i siti utilizzando quel CMS. Vogliono solo diffondere i loro collegamenti / malware / propaganda.

Con un sito statico (creato manualmente o con un generatore), non hai questo problema.

Se implementi il ​​tuo back-end, avrà anche buchi di sicurezza (nessuno è perfetto) ma molto probabilmente nessuno li sfrutterà per quel piccolo sito web. Ma cosa vuoi implementare? Se vuoi creare un editor in cui il tuo amico possa cambiare lui stesso le date del tour, pensa quanto tempo impiegherà fino a quando non sarà abbastanza facile da usare senza il tuo aiuto. Quante volte puoi cambiare rapidamente le date per lui con quel budget?

A mio avviso, troppe persone oggi usano i sistemi CMS per ogni sito, perché l'HTML statico è "vecchio". Se non hai bisogno di nulla che non sia possibile con HTML5, usa il codice lato server. Ma se non ne hai bisogno, risparmi un sacco di tempo senza di essa.


Ogni poche settimane? Ah, se solo! Più come i giorni
Lightness Races con Monica

3

Devi solo programmare il backend quando ne hai bisogno.

Tuttavia, anche le funzionalità di base come i moduli di posta elettronica richiedono in genere una programmazione back-end di base. Se è solo un sito di visualizzazione, allora sì, va bene.


1
Se è solo una semplice funzionalità, puoi spesso utilizzare un servizio SaaS per sostituirlo. Ad esempio, un modulo di registrazione può essere fatto gratuitamente su Google Forms e quindi collegato dal sito.
André Paramés,

2

Non necessariamente, ma ci sono alcuni problemi che potresti incontrare se realizzi l'intero sito in HTML semplice.

Molti siti hanno gli stessi elementi di menu, intestazione e piè di pagina su più pagine. Se li copi e incolli semplicemente da una pagina all'altra, questo potrebbe diventare noioso e soggetto a errori man mano che il sito diventa più grande e devi continuare a apportare modifiche in queste aree.

Nei giorni precedenti la programmazione lato server era così comune un modo comune per risolvere questo problema era usare i frame per incorporare queste aree in ogni pagina. Questo è caduto in disgrazia diversi anni fa, quindi non consiglio di farlo ora. È possibile invece scrivere un semplice codice lato server per visualizzare questi elementi comuni su ogni pagina.

Concordo con gli altri qui che hanno raccomandato di utilizzare un CMS standard.


1
Un'alternativa alla "copia e incolla" è l'uso di un generatore di siti statici; che dovrebbe occuparsi degli elementi di menu / header / footer per te, permettendoti di preoccuparti solo del contenuto.
Doktor J,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.