0

Segundo alguns memes, sim, é.

Mas a realidade é que não é bem assim. Alguns projetos são um pouco, inclusive não se deveria criar tanto projeto novo que faz quase a mesma coisa.

Nem preciso dizer que muitos casos têm uma ou mais dessas letras mas não as 4.

Existe muita coisa que pode ser considerada como letra R (read), que pode ser algo que está gravado em algum lugar, seja banco de dados, sistema de arquivos, vindo de um serviço ou pego ou gerado na memória on the fly. Todo relatório, geração de documentos e assemelhados é um read, certo?

Quem realmente entende o que está fazendo com bancos de dados vai dizer que o D (delete) muitas vezes é, na prática, um U (update).

O que as pessoas falam de CRUD geralmente é o front de um banco de dados onde é comum fazer essas 4 operações.

Agora quem está lendo pode ficar confuso, já que eu falei em front e a pergunta fala em backend. Bem, as pessoas usam termos errados aos montes. E alguns termos podem se encaixar em situações diferentes.

O primeiro erro é as pessoas acharem que backend é um lógica que recebe um request via HTTP e entrega um resultado para quem pediu. Existem diversas outras formas. O banco de dados é um backend que será acessado por algum front, que não precisa ter UI, pode ser uma rotina em um servidor HTTP, que, portanto, é um backend web. Um compilador tem um backend que gera código alvo (que em muitos casos roda em uma plataforma específica) e tem o frontend que entende uma linguagem de programação e faz algumas operações antes de passar para o backend. O sistema de janelas de um sistema operacional costuma ser ter um backend e um frontend, mas você não vê nada disso.

E algumas pessoas projetam o CRUD em uma API restful, porque essa forma tem as 4 operações consideradas como CRUD (PGPD). Muitos casos têm vários Gets e Posts diferentes em cima de uma mesma base de dados ou outra forma de organização de dados. Encaixa em um CRUD? Ou vira, por exemplo, CRRRRRRRRRRRRRRUUUUUDD?

E se você tem um backend (servidor de alguma coisa) que consulta algo em outro servidor (backend)? Então esse seu backend está funcionando também como frontend do outro backend, certo?

Então podemos ter ainda um outro frontend que é a UI, que pode ser chamado de CRUD (nem todo mundo concorda com isso - algumas pessoas fazem um código único com todas as operações, ou possuem vários R em formatos diferentes).

E se você manipula duas ou mais tabelas em uma operação? Você tem dois ou mais CRUDs ou não? O CRUD pode ser executado em cascata ou algum outro modelo?

Precisamos mesmo ter algo chamado CRUD para definir algo, para comunicar bem? Ou o termo é só usado para indicar que fará uma coisa extremamente simples, provavelmente envolvendo um banco de dados na sua forma mais simples?

Termos criados pelo "mercado" geralmente são mal pensados e as pessoas usam de forma equivocada. E nem sabemos direito o que é equivocado ou não, porque... foram mal definidos. ER alguns desses termos acabam impregnando o mundo acadêmico, já que cada vez menos vemos pesquisas sérias.

E como as pessoas gostam de complexidade, vão fazer algo muito pior do que pode ser, muitas vezes sem agregar valor algum, ou pelo menos o valor agregado não compensa o que se paga. As pessoas costumam apenas reproduzir o que aprenderam.

Se a pessoa aprende em cima do que é popular, pode ser que aprenda errado e fará errado para sempre, e ensinará errado para outras pessoas, perpetuando o erro.

Cada vez mais a função do programador é definir certo o que vai fazer e menos fazer.

S2


Farei algo que muitos pedem para aprender a programar corretamente, gratuitamente (não vendo nada, é retribuição na minha aposentadoria) (links aqui).

Carregando publicação patrocinada...