Skip to content

IsaacAlves7/crud-projects

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

85 Commits
 
 
 
 
 
 
 
 

Repository files navigation

📝 C.R.U.D Projects for different languages

It's a repository of simple application projects of CRUD (Create | Read | Update | Delete) with different architectures and projects.

Definição de CRUD

O CRUD, acrônimo para Create, Read, Update e Delete, nada mais é do que uma aplicação de grande ou pequeno porte que consiste em criar, ler, atualizar e deletar alguma informação, seja armazenada num banco de dados ou na própria aplicação através dos métodos do protocolo HTTP com seus status de requisição e resposta.

Portanto, essa é uma aplicação Back-End que pode conter ou não interface gráfica, além de você utilizar ela de forma particular ou integrando em conjunto com outro projeto, tudo isso vai depender da necessidade.

Obs: Então, um Crud é, teoricamente, como se fosse um papel onde podemos: escrever, ler, apagar o que foi escrito ou atualizar aquela anotação. Ele é praticamente um Todo-list, mas pode ser muito mais do que somente um tipo de aplicação web.

Preparação da aplicação

Então, escolha uma linguagem de programação back-end da sua preferência (PHP, Ruby, Python, Node.js, Java, Go, C++, C# e etc.), mais especificamente com suporte ao paradigma OOP - Paradigma de Orientação a Objetos, e utilize conforme o seu desejo na sua aplicação. Mais precisamente utilizamos o seguinte padrão no desenvolvimento:

  • POO (Paradigma de Programação Orientada a Objetos);
  • Arquitetura MVC (Model View Controller);
  • Métodos HTTP;
  • ORM ou ODM;
  • REST API;

Coloquei lado a lado com a determinada funcionalidade que essas tecnologias desempenham atuando juntas na criação de um CRUD:

CRUD SQL HTTP
Create INSERT POST
Read SELECT GET
Update UPDATE PUT/PATCH
Delete DELETE/DROP DELETE

Obs: O mesmo serve para um banco de dados NoSQL que será feito com um tempo de resposta bem mais rápida.

Em relação ao banco de dados, você pode escolher algum modelo de banco com o tipo de consulta: SQL (relacional) ou No-SQL, por isso foram feitos algumas técnicas de programação de mapeamento para converter dados entre incompatíveis tipos de sistemas em banco de dados e linguagens de programação orientadas a objeto. Isso cria, um efeito de um "objeto virtual de banco dados" que pode ser usado de dentro da linguagem de programação, e assim, melhorar o desenvolvimento de consultas no banco de dados:

  • ORM (Mapeamento objeto-relacional) serve para banco de dados relacionais, com esse tipo de mapeamento podemos
  • ODM (Mapeamento objeto-documento) serve para banco de dados NoSQL, com esse tipo de mapeamento podemos

🔄 Essa parte será aprofundada melhor na arquitetura MVC com o tópico Model.

Web Stacks

Você também pode usar uma Web stack para padronizar o seu desenvolvimento. Abaixo se encontra algumas web stacks mais utilizadas para fazer esse projeto:

  • LAMP (Linux, Apache, MySQL/MariaDB, PHP/Python/Perl)
  • LEMP (Linux, NGINX, MySQL/MariaDB, PHP/Python/Perl)
  • MERN (MongoDB, Express, React.js/React Native, Node.js)
  • MEAN (MongoDB, Express, Angular, Node.js)
  • MENV (MongoDB, Express, Express, Node.js, Vue.js)
  • PERN (PostgreSQL, Express, React.js/React Native, Node.js)
  • FRAmP (Flask)
  • ROR (RubyOnRails)

🔠 Cada stack possui uma linguagem de programação, porém você pode inserir bibliotecas e frameworks dessa linguagem, isso tudo pode ser muito bem customizável, dependendo do seu projeto e da etapa de desenvolvimento do software.

Arquitetura usada

Todas essas web stacks obedecem a arquitetura padrão para aplicações web chamada MVC, acrônimo para Model View Controller, onde o Model fica no back-end para acessar, controlar e colocar algum dado no banco de dados, View é onde se localiza todo o seu front-end e o Controller é onde se localiza as APIs, o Router onde fica a ação de rotas da aplicação e o Controller que é onde ficar a ação da aplicação em devolver alguma requisição ou resposta para ser renderizada no lado do cliente, ou seja ele funciona como um "intermediário" entre o View e o Model.

🚮 Essa é uma arquitetura totalmente voltada para aplicações web, porém existem outras como que valem a pena serem estudadas.

API

Além disso a integração com o lado do cliente e o lado do servidor é feito com uma API chamada REST API, necessária para atender as requisições e respostas enviadas pelos métodos do protocolo HTTP entre os dois lados. Para isso você deve configurar suas atividades do protocolo HTTP em ambos os lados da sua aplicação, para tanto o navegador quanto o servidor interpretar essa troca de mensagens entre si.

Autor


@IsaacAlves7