Backend em Java seria o que? Tem haver com CRUD e banco de dados?
No contexto de sistemas web (que provavelmente é onde vc mais vai ouvir esses termos), backend é a parte “por debaixo dos panos”, ou seja, aquela parte que o usuário não vê.
A parte que o usuário vê e com a qual interaje (app/site) é o frontend, e tudo que está por trás (o serviço que é chamado quando vc clica no botão, o banco de dados, a integração com a operadora do cartão de crédito, etc) é o backend.
CRUD é um, digamos, “tipo” de sistema. A sigla significa “Create, Read, Update, Delete”, ou seja, é qualquer sistema que tenha essas operações básicas. Em uma lojinha online, por exemplo, vc tem alguém que cadastra os produtos (“create”, está criando novos registros), os clientes podem procurar e ver detalhes desses produtos (“read”, consultar os dados existentes), a loja pode melhorar a descrição do produto, adicionar mais fotos, atualizar o preço quando tem alguma promoção (“update”, atualizar registros existentes) ou remover quando o produto não faz mais parte do portifólio (“delete”, apagar um registro).
Praticamente todo site/app hoje em dia tem alguma telinha/interface para o usuário interagir (frontend), e essas iterações geram ações que ocorrem nas partes que o usuário não vê (backend). E muitos (talvez quase todos?) são sistemas CRUD.
Enfim, são conceitos que independem da linguagem utilizada.
Claro que os termos frontend e backend são mais amplos que isso. É que hoje em dia a maioria acaba trabalhando em sistemas web e acha que todo e qualquer termo da computação só se refere a esse contexto (como API, que muita gente acha que é “URL que retorna JSON”, mas na verdade o termo é bem mais amplo que isso; mas divago).
Só pra citar alguns exemplos, compiladores também têm frontend e backend: o primeiro faz a análise sintática e semântica do código fonte, constrói a AST e a representação intermediária, etc, e o segundo gera o código de máquina, faz otimizações, etc.
Sintetizadores de fala também possuem frontend e backend: o primeiro faz a tokenização do texto e o segundo faz a conversão final para som.
E por aí vai. Claro que na esmagadora maioria das vezes, é “óbvio” que as pessoas estarão falando de web, mas isso foi só pra vc não achar que os termos se limitam a esse contexto.
Muito brigado pela explicação. Resumindo CRUD é o Backend.
As partes de “Create, Read, Update, Delete ” que é backend então?
Create, Read, Update e Delete são características de um sistema CRUD (basicamente, “coisas que ele faz”). E para cada uma delas pode ter tanto frontend quanto backend.
Frontend seria a parte da tela para fazer essas operações, e o backend seria a parte que atualiza o banco de dados.
Vc pode ter uma tela para cadastrar, outra tela para ver os dados, outra para atualizar, etc. E todas terão frontend e backend (já que todas vão precisar ler ou escrever no banco de dados). Além disso, o backend pode fazer outras coisas que não aparecem na tela, como validar o perfil do usuário (por exemplo, somente alguns podem cadastrar, enquanto alguns outros podem ver ou atualizar, etc).
É possível ter apenas backend para algumas delas? Sim, se por exemplo existe um processo automático que apaga registros sem atividade há mais de X dias (nesse caso não teria tela, somente um job que roda de tempos em tempos verificando e apagando).
Mas isso não quer dizer que CRUD sempre é somente frontend ou backend. Cada uma das funcionalidades pode ter ambos (ou apenas um).
Entendi. Muito obrigado.