Executando verificação de segurança...
2

Como funciona o processo de codar uma web application?

Olá, comunidade!

Estou estudando para ser uma desenvolvedora fullstack, e recentemente uma dúvida pairou em minha mente. Falando sobre a parte front-end, como funcionariam os arquivos na hora de codar uma web app? Por exemplo, o esqueleto da página é o arquivo (nome do arquivo).html, assim como os arquivos .css, .js etc. Se eu quisesse criar uma web app que contém página inicial, página de login, e os conteúdos em si — resumindo, várias páginas —, como os arquivos seriam organizados? Seria preciso criar um arquivo .html para cada página existente desse mesmo projeto, juntamente como arquivos .css e .js? Como isso funciona, de verdade?

Desde já agradeço pela atenção!

Carregando publicação patrocinada...
1

Olá

Existem algumas maneiras de se fazer isso:

  • MPA - um site multipage(tudo gerado via servidor)
  • SPA - um site com front separado do back(servidor)

Essas são as 2 maneiras mais comuns. Embora existam mais!

Como iniciante te recomendo começar com MPA.
Pois as páginas serão criadas no back e terão links para arquivos CSS, js e HTML
De forma bem simples! O que ajuda no inicio. Depois da pra ir para alguma coisa de front separado!

A organização de pastas e documentos vai depender muito.
E é algo secundário pra um iniciante!

Qual sua stack?
Já trabalha com alguma linguagem de back?

É totalmente iniciante em tudo?

1

Oi! Muito obrigada por ter respondido!

No front eu uso HTML, CSS e JS, ainda não comecei a aprender nenhum framework pq sinto que preciso ter mais domínio do meu JS. No back eu tô aprendendo Java (fazendo o curso do Nélio Alves na Udemy e amando) e um pouquinho de Python, por diversão mesmo. Eu não sou totalmente iniciante, tive meu primeiro contato (que foi com o frontend) 3 anos atrás, quando ainda estava no ensino médio. Daí comecei a cursar ADS e voltei a estudar e praticar enquanto monto meu portfólio e me aprimoro!

Ainda tem muuuuuuita coisa pra eu aprender, e confesso que às vezes bate um desânimo, mas com calma e dedicação eu chego lá!

0
  • MPA - um site multipage(tudo gerado via servidor)
  • SPA - um site com front separado do back(servidor)

Essas definições estão equivocadas.
Um "MPA" não necessariamente roda do lado do servidor. Vc pode ter uma "MPA" no lado do cliente também.
O mais correto seria:

  • SSR (Server Side Rendering): código rodando no servidor

  • CSR (Client Side Rendering): código rodando no cliente (browser)

  • SPA (Single Page Application): aplicação inteira como uma única página, onde a navegação se dá pela renderização ou não de diferentes componentes na tela. Ou seja, toda a aplicação é carregada no primeiro load (porém há estratégias para lazy-loading)

  • MPA (Multiple Page Application): aplicação composta por múltiplas páginas onde o load de cada uma acontece a partir do momento que navega para ela

Obs: Apesar do seu equívoco, há sim uma relação "contrária" entre SPA e SSR, pois não faz sentido uma aplicação SSR entregar uma SPA.

Como iniciante te recomendo começar com MPA.
Pois as páginas serão criadas no back e terão links para arquivos CSS, js e HTML

Como dito acima, não tem relação entre MPA e backend. Também recomendo começar com MPA antes de ir para as SPAs. Porém é desnecessário optar por SSR (rodar no servidor) para quem está começando. Pois criaria uma dependência a mais de infrastrutura. Enquanto uma MPA em CSR só precisa do diretório com os arquivos na máquina local dela e carregar os arquivos html no Browser.

1

Obs: Apesar do seu equívoco, há sim uma relação "contrária" entre SPA e SSR, pois não faz sentido uma aplicação SSR entregar uma SPA.

uma das opcoes do nextjs nao é justamente essa, entregar um SSR em que ocorre o hydration e se 'transforma' em SPA ?

1

Olá!

A organização de arquivos em uma aplicação web pode ser um tópico complexo, especialmente quando você está começando. Para responder à sua pergunta, vamos fazer uma breve viagem pela história do desenvolvimento web.

Nos primeiros dias da web, cada página era estática e tinha seu próprio arquivo HTML. Se você quisesse mudar algo em uma página, teria que editar manualmente esse arquivo HTML específico. Isso funcionava para sites simples mas rapidamente se tornou impraticável à medida que os sites se tornavam mais complexos.

Por volta dos anos 2000 surgiu a pilha LAMP (Linux, Apache, MySQL e PHP), que permitiu a geração dinâmica de páginas HTML no lado do servidor. Isso possibilitou a criação de aplicações web mais interativas e personalizadas para cada usuário - como o Facebook.

Em 2005 surgiu o Ruby on Rails (RoR) - um framework que revolucionou como construímos aplicações web ao introduzir muitos novos conceitos e fornecer uma estrutura abrangente para organizar seu aplicativo. Uma das razões pelas quais o Rails se tornou tão popular foi sua filosofia "convenção sobre configuração" - ele tinha opiniões fortes sobre como as coisas deveriam ser estruturadas.

Avançamos até meados dos anos 2010 com frameworks JavaScript modernos como React.js ou Vue.js nos permitindo criar Aplicações de Página Única (SPAs). Essas SPAs geram toda interface do usuário - HTML - dinamicamente no navegador via manipulação DOM em tempo real.

Junto com esses frameworks JS vieram os "frameworks de frameworks", como Next.js para React ou Nuxt.js para Vue que fornecem estrutura adicional e recursos avançados aos frameworks base enquanto também têm suas próprias opiniões sobre organização do projeto.

Não podemos esquecer dos Frameworks CSS como Bootstrap (lançado em 2011) ou Tailwind CSS(lançado em 2017). Eles oferecem conjuntos predefinidos de classes CSS facilitando muito estilização das páginas sem precisar arquivos CSS separados por página; ao invés disso adicionando marcadores especiais diretamente no 'template' HTML.

Então "como isso funciona?" depende muito da tecnologia usada na aplicação específica – poderia ser sistema legado LAMP gerando HTML no servidor; poderia ser SPA moderna usando React/Vue; talvez até mesmo seja abordagem híbrida usando Next/Nuxt.js

E aqui estamos nós agora em 2023! Ainda existem grandes quantidades aplicações legadas LAMP rodando por aí enquanto Rails/Django continuam competitivos – na verdade estão ganhando tração novamente à medida que as SPAs começaram parecer muito com o que Rails estava fazendo há quase vinte anos atrás...

Por exemplo: Facebook usa bastante React enquanto Github, StackOverflow e Quora usam extensivamente Ruby on Rails. O Wordpress — responsável por cerca de 43% de todas as aplicações web — ainda é completamente baseado na pilha LAMP.

Para dar visão geral: Qualquer Aplicativo Web funciona através navegador solicitando conjunto arquivos(HTML,CSS & JS) do servidor via protocolo HTTP seguido por pedidos/respostas adicionais levanto até o html final renderizado pelo browser estilizados por descritores CSS e interagindo com o usuário atráves de código JS executado dentro do Browser.

Se você tem interesse aprender desenvolvimento full-stack eu sugeriria seguir este roteiro:
1.Comece criando simples app Lista Tarefas usando scripts PHP aproveitanto mod_php Apache com estilos css básicos e javascript puro.
2.Depois mude pra versão full-stack usando Django/Rails no backend e JQuery com Bootstrap no frontend.
3.Finalmente transforme-o numa API RESTful baseada em uma framrwork de backend acoplado a algum framework de frontend e estilizado via TailwindCSS.

Este exercício deve dar bom entendimento sobre funcionamento interno das diferentes pilhas tecnológicas e paradigmas dando visão holística do Desenvolvimento Full Stack.
Boa sorte!

1

Meu Deus, que contexto maravilhoso que você me deu! Muito obrigada pela explicação, vou até salvar aqui hahahaha! Eu fiz recentemente uma lista de tarefas bem basiquinha com HTML, CSS e JS, mas vou tentar fazer o que você sugeriu! ;)

0

Se eu fosse criar um web app com apenas HTML, CSS e JS, eu usaria essa estrutura:

/web-app
  index.html
  /styles
    main.css
  main.js
  /pages
  /utils
  /assets
  manifest.json
  service-worker.js
  

index.html: A página principal do web app.

/styles: Pasta que vai guardar todos os arquivos CSS que vão ser usados na aplicação.

main.css: Arquivo CSS que guarda os estilos que serão usados em todo o web app.

main.js: Arquivo JavaScript que guarda os scripts que serão usados em todo o web app.

/pages: Pasta que guarda todas as páginas do web app.

/utils: Pasta que guarda utilitários, normalmente scripts.

/assets: Pasta que guarda estáticos como imagens, vídeos, etc.

Os dois últimos, se você está criando um web app, sabe para que serve.

Espero que tenha ajudado 🤓🤙

1
0

Eu sugir que vc pegue algum curso (grátis, pois para esse nível de iniciante tem aos montes no youtube) para aprender o básico, pois me parece bem perdida e perguntar não me parece a melhor opção para que você aprenda como construir a aplicação por vc mesma.

1

Olá, Vinicius, muito obrigada pela sugestão! Eu acompanho alguns professores que ensinam frontend, eu não tô pensando em construir uma aplicação grande e escalável tão cedo, mas fiquei na dúvida de como funcionaria hahahah. Valeu!!!

0

Oi!

Para criar um aplicativo web, você vai precisar de alguns arquivos diferentes. O arquivo principal é o arquivo HTML, que é o código que cria a estrutura da página. O arquivo CSS é usado para definir a aparência da página, e o arquivo JavaScript é usado para adicionar comportamentos à página.

Se você quiser criar um aplicativo web com várias páginas, você vai precisar criar um arquivo HTML para cada página. Você também pode criar arquivos CSS e JavaScript separados para cada página, ou pode usar um arquivo CSS e JavaScript para todas as páginas.

Aqui está um exemplo de como um projeto de aplicativo web com várias páginas pode ser organizado:

  • index.html - Este é o arquivo HTML para a página inicial do aplicativo.
  • style.css - Este é o arquivo CSS para todas as páginas do aplicativo.
  • script.js - Este é o arquivo JavaScript para todas as páginas do aplicativo.
  • about.html - Este é o arquivo HTML para a página "Sobre" do aplicativo.
  • contact.html - Este é o arquivo HTML para a página "Contato" do aplicativo.

Você pode organizar os arquivos do seu projeto da maneira que achar mais conveniente. No entanto, é importante manter os arquivos organizados para que você possa facilmente encontrar o que está procurando

Espero ter ajudado.

1
-3

Ao codar uma web application, especialmente no contexto de desenvolvimento front-end, a organização dos arquivos e a estrutura das páginas são essenciais para manter o projeto gerenciável e escalável. Vou descrever o processo passo a passo:

Estrutura de Pastas: Comece criando uma estrutura de pastas para seu projeto. Um layout comum inclui pastas como "assets" (para imagens, fontes, etc.), "css" (para arquivos de estilo), "js" (para scripts JavaScript), e possivelmente outras pastas para componentes reutilizáveis, páginas específicas, etc.

Arquivos HTML: Cada página da sua web app terá um arquivo HTML separado. Por exemplo, para a página inicial, você pode ter "index.html", para a página de login, "login.html" e assim por diante. Cada arquivo HTML representa a estrutura da página, contendo as tags HTML para cabeçalho, corpo e rodapé.

Arquivos CSS: Os estilos visuais da sua aplicação são definidos nos arquivos CSS. Você pode ter um único arquivo "styles.css" que abrange estilos globais, e também criar arquivos específicos para cada página ou componente, se necessário.

Arquivos JavaScript: Os arquivos JavaScript são usados para adicionar interatividade e funcionalidade às suas páginas. Assim como nos estilos, você pode ter um arquivo "script.js" para funcionalidades gerais e outros arquivos para funcionalidades específicas.

Componentização: Se a aplicação crescer, é útil adotar uma abordagem de componentização. Isso significa que você quebra a interface em componentes reutilizáveis, como cabeçalhos, rodapés, cartões, etc. Esses componentes podem ter seu próprio HTML, CSS e JavaScript, permitindo que você os reutilize em várias partes da aplicação.

Roteamento (opcional): Para lidar com várias páginas de forma dinâmica, você pode usar um sistema de roteamento. Bibliotecas como React Router (para projetos em React) ou Vue Router (para projetos em Vue.js) permitem que você defina diferentes URLs para cada página e renderize os componentes apropriados.

1

Muinto bem explicado, só lembrando que é possível desenvolver roteamento usando JS puro, estou criando um projeto pessoal onde estou criando o roteamento assim, acho que dá mais trabalho, mas como já tenho uma boa noção com a linguagem mim sentir mais a vontade que usar react. Estou focando no nodejs então estou criando o front end só pra ver a API funcionado.
Fiz um curso de react mas percebi que iria mim deixar confuso, visto que estou estudando nodejs no momento.

1

Oi, Alef! Vi que você falou de API's, tem algum curso ou vídeo que você recomende sobre o assunto? Queria começar a aprender mas fiquei bem perdida com algumas explicações! Desde já, obrigada!

0