[Ajuda] nou: avaliação e auxílio no desenvolvimento da aplicação
Olá pessoal,
Espero que estejam todos bem. Me chamo Lucas, e sou desenvolvedor front-end. Esse é meu primeiro post aqui no TabNews e quero usá-lo para pedir ajuda de vocês para avaliarem e fazerem sugestões e críticas sobre um projeto que estou desenvolvendo. Mas, antes de continuar, quero deixar um pouco de contexto sobre o que me trouxe até aqui.
No começo do ano caí em uma demissão em massa e desde então estou em busca de me recolocar no mercado. Porém, dado ao alto número de profissionais disponíveis e as dificuldades inerentes da busca de emprego, resolvi expandir meus conhecimentos e entrar em uma nova seara que é o desenvolvimento back-end, para me tornar um profissional mais versátil e melhorar minhas chances de certa forma. Para isso, consegui um mentor, Vitor o seu nome, e com a ajuda dele iniciei um projeto "simples” focado especialmente nesse lado do desenvolvimento web.
Esse não é meu primeiro contato com back-end propriamente dito, já tive experiências anteriores, porém, em todas as ocasiões eu não iniciei nada do zero e basicamente segui o que foi pré-definido pelo framework usado e pelo time que iniciou o projeto antes de mim. Contudo, no projeto que está descrito abaixo, estou fazendo por conta própria, sem cursos, sem todos, sem grandes frameworks da moda, etc. E seguindo recomendações do meu mentor, venho aqui expor a ideia e tentar extrair conhecimento desta comunidade, onde vejo sempre a colaboração de pessoas muito boas.
Agora, dado esse pequeno contexto, continuemos com a ideia.
Projeto: nou
O nou foi pensado como uma alternativa ao StatusPage. Então, na aplicação (back-end, o front-end vai ser iniciado) é possível criar monitores, que a cada intervalo de tempo pré-definido monitora o status (funcionando ou não funcionando) de uma outra aplicação/endpoint, e em caso de não funcionamento notifica os contatos associados ao monitor.
Ressalvas:
Uma pequena lista de coisas que espero não influenciarem de forma negativa qualquer crítica:
- Ignorem a linguagem até onde for possível. O intuito não é saber se com linguagem/runtime X ou Y seria melhor ou não. Eventualmente quero fazer projetos com outras tecnologias, mas a príncipio vai com a que mais sei no momento.
- Não é uma aplicação de grande porte, mas também não é um todo da vida. Com a mentoria, encontramos um meio termo onde fosse possível aprender coisas entre um iniciante e um experiente.
- Aqui não está descrito demais detalhes técnicos do projeto. Por isso, peço encarecidamente a quem se dispor me ajudar, que acesse o link na seção Acesso ao código-fonte e leia o readme do repositório para saber mais.
- O projeto é majoritariamente de aprendizado, então não tenho intenção de concorrer com nenhuma outra ferramenta, seja ela de código aberto ou não.
- O projeto está incompleto propositalmente, pois queria ter algo para mostrar ao passo em que consigo fazer melhor as funcionalidades futuras com a ajuda de vocês.
Acesso ao código-fonte:
Repositório aqui.
Motivação:
O que me impeliu a iniciar esse projeto, foram 3 coisas essencialmente:
- Vontade de ter o primeiro começo, meio e fim de um projeto que não fosse de minha área primária (front-end).
- Contado com todo o ciclo de desenvolvimento de software, ou pelo menos uma grade parte dele, mesmo que em menor escala.
- Lidar mais com regras de negócio, arquiteturas, padrões de projetos, banco de dados e afins.
Desafios Enfrentados:
Esse é o primeiro projeto que faço com as motivações citadas, então deixando de lado a linguagem adotada, posso colocar tudo no balaio de "está sendo um desafio", mas para ser mais preciso, quero entender (ou ao menos ser introduzido) em: filas; autorização; cronjobs; CI/CD e deploy em um ambiente real de provedor de nuvem, além do CRUD puramente.
Áreas de interesse para avaliação e auxílio:
- Boas práticas de desenvolvimento.
- Arquitetura e padrões de projeto.
- Testes.
- Ferramentas.
- Dicas de abordagens.
- Qualquer coisa que alguém julgue interessante hehe.
Como podem ajudar:
Aqui não quero ditar como vocês devem ajudar haha, mas sim dizer que comentários (especialmente aqueles longos que alguns gostam de fazer), sugestões de abordagens, ferramentas, algoritmos, indicações (livros, vídeos, artigos etc.) são muito bem-vindas. Ah, e quem quiser sugerir funcionalidades ou algo parecido para o nou, fique a vontade.
Desde já expresso minha gratidão a todos que dedicarem um tempo para avaliar e fornecer feedback construtivo. Espero pode me tornar um dev melhor com ajuda de vocês, mesmo que um pouquinho, em meio as adversidades.