Você sempre deve programar o lado do servidor para um site?

38

Estou prestes a começar a criar um site de projeto musical para um amigo. Por enquanto, deve ser bem simples: nenhum conteúdo dinâmico (datas da turnê etc.) e nada além de algumas músicas de amostra incorporadas ou links do SoundCloud. Não estou esperando usar nada além de JavaScript baunilha e Bootstrap ou Foundation para uma grade responsiva.

Isso é suficiente? Posso simplesmente fazer upload de arquivos HTML, CSS e JS para um host e concluir com ele, ou devo reservar um tempo para programar um servidor back-end no Node ou PHP?

Deegriz
fonte
54
É o suficiente? Que problema você tem que ter um back-end dinâmico resolveria. Mantenha isso simples e estúpido, até que você não possa.
precisa
25
Maximize o trabalho não realizado. YAGNI.
RubberDuck #
9
Provavelmente, será melhor instalar um CMS pronto, se tudo o que você estiver fazendo for escrever algum texto, fazer upload de algumas fotos e alguns arquivos de música / incorporar alguns arquivos de vídeo / YouTubes ... WordPress etc. seja ideal e a maioria das empresas de hospedagem oferece instaladores com um clique para você prosseguir em poucos minutos ... existem muitos CMSs por aí.
Kinnectus
11
Eu me pergunto por que uma pergunta como essa tem tantos votos positivos? É como perguntar "eu tenho que criar um banco de dados para o meu software, mesmo que ele não precise armazenar dados?". Não me surpreenderia se fosse uma pergunta para iniciantes, mas não quando você tiver habilidade suficiente para criar um projeto de inicialização / fundação.
Mahdi
14
@Mahdi é votado porque todos estão se perguntando exatamente por 5 anos e ninguém teve a coragem de perguntar.
djechlin

Respostas:

86

Se você não sabe se precisa do código do servidor, provavelmente não precisa *

* Advertência : o código do servidor é essencial para a segurança, quando você deseja controlar internamente o acesso ao conteúdo, dados ou funcionalidade. (Ele não precisa necessariamente ser seu servidor, consulte o último parágrafo.)

Pergunte a si mesmo que problema seria o uso de tecnologias do servidor. Se você não consegue pensar em nenhum (e no seu caso, também não consigo), não precisa deles.

Esteja ciente de que muito mais do que você imagina é possível usando apenas o código do lado do cliente. Estruturas JavaScript como AngularJS ou ReactJS podem permitir a integração com conteúdo dinâmico de terceiros por meio de APIs usando o Ajax. (Isso inclui conectar-se a uma API que pode lidar com sua própria segurança.)

Tim Grant
fonte
17
Eu acho que essa é uma afirmação perigosa a ser feita - as tecnologias do lado do servidor são usadas frequentemente quando você "pode ​​fazê-lo no lado do cliente": a decisão de mover as coisas para um servidor é por motivos de segurança, não necessariamente funcionais. - como tal, promover uma atitude de 'não saber' é preocupante: os programadores devem sempre considerar a segurança em qualquer aplicativo, mesmo que seja simples como descrito. Toda a solução deve ser pensada - você deseja uma área de conteúdo 'segura', forçando os usuários a se registrarem ou curtirem no FB antes de fornecer a eles um mp3? (no entanto, neste exemplo, um site estático soa bem)
Jmons
3
Também há algo a ser dito sobre as vantagens de segurança dos geradores de sites estáticos. Para muitos aplicativos, os sites estáticos são a última palavra em segurança, pois literalmente não há nada a ser invadido.
precisa saber é o seguinte
1
Server-side code is essential for securityalguns desenvolvedores não dão a mínima para segurança. Não até você jogar o rosto na bagunça deles. Minha linha é que, se você precisar de autenticação, precisará de um back office. Se você precisar armazenar dados, precisará de um backoffice onde os dados serão verificados uma segunda vez após serem verificados pelo lado do cliente.
Walfrat
1
@ Walfrat Se você apenas precisar de autenticação, poderá transferi-lo para qualquer número de serviços de autenticação abertos e não usar nenhum back-end. Se você precisar de autorização, por outro lado, pode precisar de algumas informações de back-end.
CorsiKa
56

Leia sobre geradores de sites estáticos. Isso permite que você crie um site de maneira programática (usando modelos, dados, etc.), e não criando HTML manualmente. O resultado é um conjunto de HTML e CSS estático que não requer nenhum back-end.

https://www.staticgen.com/ lista e classifica vários desses geradores de código aberto; as ofertas de código fechado provavelmente também existem.

9000
fonte
3
+1, isso ainda funciona para sites dinâmicos que passam um pouco do tempo (como blogs e itinerários de passeios). Até que o conteúdo dependa do usuário olhando para a página, é suficiente.
RemcoGerlich 01/08/19
1
+1. As datas da turnê e as músicas de exemplo precisarão ser atualizadas pelo cliente com mais ou menos frequência. Um gerador de site estático evita que ele precise tocar em HTML, e é muito mais simples e seguro do que um CMS (mal mantido).
Bergi
3
Embora eu concorde que essa é uma boa sugestão para o OP, ele realmente tenta responder à pergunta conforme solicitado?
Woodrow Barlow
A resposta marcada foi mais geral e alinhada com a pergunta, como é mencionado em Woodrow Barlow. No entanto, eu fiz um para preseting uma solução agradável mim e muitos outros poderiam ir para
Deegriz
2
@WoodrowBarlow: Eu diria que 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?faz apelo por apontar que há uma terceira, no caso do OP bastante atraente, opção IMHO :)
Tobia Tesan
6

Você pode e deve usar apenas um site estático, se for suficiente, ou usar um gerador de site estático . Por quê? Manutenção. O código possui bugs. A cada poucas semanas, há outra falha de segurança no WordPress. Se você usa um CMS comum, precisará corrigi-lo constantemente. Caso contrário, o site de seus amigos em breve conterá propaganda de drogas ilegais, propaganda do ISIS, malware instalado nos computadores dos visitantes ou algo pior. Mesmo se você o corrige regularmente, pode ser tarde demais para ter que verificar constantemente se há hacks. Existem maneiras de proteger esse CMS. Instale "plugins de segurança", configure um firewall de aplicativo da web como mod_security etc. Tudo isso funciona mais. Eles também precisam ser mantidos atualizados. Às vezes, suas regras de mod_security quebram um plug-in para o WordPress, você precisa analisá-lo e corrigi-lo. Mais trabalho.

Você pode pensar que ninguém vai querer invadir esse site. Mas, para as falhas de segurança comuns encontradas nos sistemas CMS comuns, em breve existem bots automáticos que rastreiam / pesquisam na web e cortam TODOS os sites usando esse CMS. Eles só querem espalhar seus links / malware / propaganda.

Com um site estático (criado manualmente ou com um gerador), você não tem esse problema.

Se você implementar seu próprio back-end, ele também terá brechas de segurança (ninguém é perfeito), mas provavelmente ninguém as explorará nesse pequeno site. Mas o que você deseja implementar? Se você deseja criar um editor em que seu amigo possa alterar as datas da turnê, pense em quanto tempo isso levará até que seja fácil o suficiente para ele usar sem a sua ajuda. Quantas vezes você pode alterar rapidamente as datas para ele com esse orçamento de tempo?

Na minha opinião, muitas pessoas hoje em dia usam apenas sistemas CMS para todos os sites, porque o HTML estático é "antigo". Se você não precisar de nada que não seja possível com o HTML5, use o código do lado do servidor. Mas se você não precisar, economiza muito tempo sem ele.

Josef
fonte
A cada poucas semanas? Hah, se ao menos! More like days
Lightness Races com Monica
3

Você só precisa fazer programação de back-end quando precisar.

No entanto, mesmo recursos básicos, como formulários por e-mail, requerem programação básica de back-end. Se é apenas um site de exibição, então sim, tudo bem.

deek
fonte
1
Porém, se for apenas um recurso simples, você pode usar algum serviço SaaS para substituí-lo. Por exemplo, um formulário de registro pode ser feito gratuitamente no Google Forms e depois vinculado a partir do site.
André Paramés
2

Não necessariamente, mas é provável que haja alguns problemas se você criar o site inteiro em HTML simples.

Muitos sites têm os mesmos elementos de menu, cabeçalho e rodapé em várias páginas. Se você simplesmente copiar e colar essas informações de uma página para outra, isso poderá se tornar tedioso e propenso a erros, à medida que o site aumentar, e você precisará continuar fazendo alterações nessas áreas.

Nos dias que antecederam a programação no lado do servidor, uma maneira comum de resolver isso era usar quadros para incorporar essas áreas em todas as páginas. Isso caiu em desuso há vários anos, então não recomendo fazê-lo agora. Você pode escrever um código simples do lado do servidor para exibir esses elementos comuns em todas as páginas.

Concordo com outras pessoas aqui que recomendaram o uso de um CMS pronto para uso.

bdsl
fonte
1
Uma alternativa para "copiar e colar" é usar um gerador de site estático; isso deve cuidar dos elementos do menu / cabeçalho / rodapé, permitindo que você se preocupe apenas com o conteúdo.
Doktor J