JavaRush /Blogue Java /Random-PT /Estamos escrevendo um projeto real para um portfólio - "P...
Roman Beekeeper
Nível 35

Estamos escrevendo um projeto real para um portfólio - "Projeto Java de A a Z"

Publicado no grupo Random-PT
Olá a todos, futuros Engenheiros de Software Sênior ! Nos últimos meses, tenho escrito artigos simples que descrevem partes importantes do desenvolvimento. Hoje vou contar para vocês a minha ideia! Quero ajudar você a conseguir seu primeiro emprego. O que é necessário para isso? Para fazer isso você precisa ganhar experiência. Entenda em que consistem esses mesmos projetos, nos quais os engenheiros trabalham e fazem avançar o mundo da tecnologia da informação.

Todos os materiais da série:

“Projeto Java de A a Z”: escrevendo um projeto real para um portfólio - 1Como fazer isso? Eu preciso escrever algo. Portanto, como parte desta série de materiais, escreveremos passo a passo nosso próprio bot de telegrama (detalhes abaixo). E, ao mesmo tempo, entenderemos a pilha de tecnologia que até mesmo um desenvolvedor Java novato precisa.

Alvo

Escreva um projeto que combine o trabalho com bancos de dados, a criação da lógica de negócios necessária e a configuração do trabalho para implantar o projeto e testá-lo. O que vamos escrever? Se você vai escrever, então precisa escrever algo realmente útil para que haja interesse no trabalho e alguém possa aproveitar o resultado. Com base nesses dados, será escrito um bot de telegrama que funcionará com o site JavaRush. Isso será útil? Sem dúvida! Devido ao fato de os bots de telegrama não serem tão difíceis de escrever, você pode obter rapidamente um projeto funcional que pode ser útil.

Tempo de desenvolvimento

Os artigos serão publicados uma vez por semana, então haverá tempo suficiente para dominar/repetir/escrever perguntas se algo não estiver claro. Os primeiros artigos serão a fundamentação teórica que utilizaremos no projeto. E então é só praticar.

MVP (produto mínimo viável)

“Projeto Java de A a Z”: escrevendo um projeto real para um portfólio - 2O que é MVP? O termo, como sempre, não é nosso, mas você pode encontrar uma explicação razoável no wiki . Citamos: MVP é um produto que possui funções mínimas, mas suficientes para satisfazer as primeiras necessidades. A principal tarefa é receber feedback para formar hipóteses para o futuro desenvolvimento do produto. Para nós, essa descrição se encaixa perfeitamente. Uma rápida descrição de todas as funcionalidades: Como usuário do Telegram, quero poder assinar novos artigos em grupos e receber notificações quando novos forem publicados. Adoro ler o grupo Histórias de Sucesso , isso me motiva a continuar aprendendo e aprender algo novo. Sou preguiçoso e não quero entrar e atualizar a página todas as vezes . Portanto, eu, como programador, quero facilitar minha vida e escrever um programa que me envie uma mensagem no Telegram informando que um novo artigo foi publicado. Mais ainda: este não é o único grupo que acompanho. Sou de Kharkov, por isso estou interessado em ler artigos publicados lá. Como desenvolvedor deste produto, terei muito interesse em saber se alguém está usando meu trabalho, por isso adicionaremos funcionalidades para administradores para que possam visualizar as estatísticas do bot de telegramas. É possível fazer isso? Certamente! Como? Isso é o que mostrarei em uma série de artigos.

Nome de código

Todo projeto legal deveria ter um codinome. O nosso não será exceção, então por enquanto será assim: JRTB (JavaRush Telegram Bot). Doravante será chamado assim.

Que tópicos iremos cobrir?

“Projeto Java de A a Z”: escrevendo um projeto real para um portfólio - 3

Base de dados

Você precisa entender imediatamente que não pode armazenar estado (dados e informações) no aplicativo. Os dados precisam ser armazenados em um banco de dados. Como não há informações sobre isso no treinamento (pelo que me lembro :D), tentarei preencher as lacunas de conhecimento que precisaremos. Tentarei tornar o esquema do banco de dados o mais simples possível para que não haja confusão. Esta parte incluirá:
  1. Teoria de como trabalhar com SQL baseado em MySQL.
  2. Uma ferramenta para trabalhar com MySQL é o MySQL Workbench.
  3. Versionamento de banco de dados. Flyway e base líquida.
  4. Criando um esquema de banco de dados.
  5. Crie um desenho de esquema de banco de dados.

Git

Já existem artigos sobre este tema. Claro, nada funcionará sem um sistema de controle de versão. Para começar a trabalhar no JRTB, você precisa entender o git. Você pode fazer isso sozinho ou ler meus artigos sobre este tópico: Se desejar, você também pode ler sobre estratégias de ramificação, mas isso não é crítico aqui e pode ser ignorado.

Maven

Aqui falaremos sobre o sistema de montagem, para que serve, como iremos utilizá-lo, no que prestar atenção e regras de bons costumes. Também falaremos sobre versionamento aqui e como exatamente faremos isso.

Docker

Para tornar nossa vida mais simples e fácil, e para tornar o processo de implantação o mais simples possível, usaremos Docker. Para fazer isso, vamos falar sobre o que é Docker e quais comandos úteis existem. Quero dizer imediatamente que uso o Docker no nível do usuário e talvez não saiba ou não seja capaz de fazer algo)) Portanto, se alguém sugerir como tornar o trabalho com o Docker melhor/mais fácil, ficarei feliz com isso. Esta parte incluirá:
  1. Teoria e prática do Docker.
  2. Faça backup/restaure dados via docker.
  3. Configurando nosso projeto para que ele rode em Docker.

Scripts Bash

Para automatizar o trabalho, às vezes é útil escrever um ou dois scripts. Scripts Bash são scripts que todos os desenvolvedores entendem de uma forma ou de outra, porque são essencialmente trabalhos de linha de comando no Linux, simplesmente salvos em um arquivo separado.

Criando um aplicativo

Toda a movimentação estará aqui. Com base no conhecimento prévio, construiremos uma aplicação Spring Boot que conterá um objeto bot de telegrama. O que vamos fazer aqui?
  1. Criando uma descrição completa da funcionalidade que deveria estar lá.
  2. Uma breve descrição do que é um bot de telegrama.
  3. Criando um aplicativo Spring Boot.
  4. Descrição de como trabalhar com Lombok.
  5. Descrição de como trabalhar com UniRest.
  6. Implementação do padrão Command + trabalho com criação de sua própria anotação para comandos de administrador.
  7. Criando um cliente para trabalhar com consultas JavaRush (como uma lista de grupos, uma lista de artigos em um grupo) usando UniRest.
  8. Testando. Vamos escrever todos os testes possíveis para cobrir nossa funcionalidade.
  9. Configurando um sistema para verificar a qualidade do código e construir automaticamente no GitHub.
  10. Conectando o banco de dados junto com o controle de versão do banco de dados.
Todas essas etapas serão feitas passo a passo, para entender melhor o que está acontecendo.

Resultados futuros

Como resultado, teremos um projeto real que qualquer pessoa que leia os artigos poderá implementar. A beleza de um bot de telegrama é que você pode vincular esse projeto a qualquer bot, para não ficar dependente do bot que estará nos artigos. Direi mais: este é apenas o começo do JRTB. Novas funcionalidades podem ser discutidas/adicionadas no futuro. Faça este bot para que seja útil a todos os alunos do projeto JavaRush. E a sensação de que outras pessoas usam e gostam da sua criação vale muito! E vocês, como leitores desta série de artigos, poderão ganhar experiência real trabalhando em um projeto real. Tradicionalmente, sugiro assinar minha conta no Github , onde posto soluções e projetos. Todo o trabalho no JRTB será feito através do GitHub, por isso aconselho você a se cadastrar caso ainda não o tenha feito. Obrigado por ler a todos, até breve :)“Projeto Java de A a Z”: escrevendo um projeto real para um portfólio - 5
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION