Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Envio de Solução - Desafio
Framework, Linguagem e Ferramentas
Durante o desenvolvimento do desafio, tentei trabalhar com as seguintes ferramentas e tecnologias:
Frameworks:
Angular para o frontend e NestJS para o backend.
Linguagens:
TypeScript, pois ambos os frameworks utilizam essa linguagem, que proporciona tipagem estática e facilita a organização do código.
Ferramentas:
Usei o Visual Studio Code como editor de código e o npm para o gerenciamento das dependências.
Tecnologias X e Y
Por que escolhi Angular e não React ou Vue.js:
A escolha do Angular foi motivada pela sua estrutura mais completa e robusta, o que, teoricamente, se adequaria ao meu projeto. No entanto, como eu não tenho muito costume com Angular e React, acabei tendo dificuldades para avançar com o desenvolvimento.
Por que escolhi NestJS e não Express.js:
Optar pelo NestJS foi uma tentativa de usar uma estrutura mais organizada e modular, que integra bem com TypeScript, assim como o Angular. Porém, devido à falta de familiaridade com essas ferramentas, acabei não conseguindo seguir em frente.
Princípios de Software
Apesar das dificuldades, eu tentei aplicar alguns princípios de engenharia de software, como:
Modularidade:
Tentei organizar o código de forma modular, criando componentes e serviços reutilizáveis, algo que o NestJS e o Angular incentivam.
Separation of Concerns (SoC):
Busquei separar a lógica do frontend e backend, mesmo sem conseguir avançar muito nesse aspecto.
Desafios e Problemas
Durante o desenvolvimento, enfrentei alguns desafios importantes, principalmente pela falta de familiaridade com as tecnologias escolhidas:
Falta de experiência com Angular e NestJS: Embora eu tenha me esforçado assistindo vídeos e tentando aprender o máximo possível sobre essas tecnologias, a curva de aprendizado foi maior do que eu esperava. O tempo que eu poderia dedicar ao projeto foi limitado, o que fez com que eu não conseguisse avançar como gostaria.
Escolha de não usar apenas IA: Eu também tomei a decisão de não usar IA para gerar o site automaticamente, porque queria que o desafio refletisse o meu esforço pessoal de aprendizado. Apesar de saber que muitas pessoas usam IA para esses tipos de tarefas, preferi tentar fazer tudo por conta própria, o que acabou dificultando ainda mais meu progresso.
Melhorias e Próximas Implementações
Caso eu tenha mais tempo para continuar o projeto, algumas melhorias que eu faria seriam:
Refatoração e Aprendizado: Eu refatoraria o código para torná-lo mais modular e reutilizável, além de continuar estudando Angular e NestJS para melhorar minha familiaridade com essas tecnologias.
Documentação e Testes: Criaria uma documentação mais completa e começaria a implementar testes automatizados para garantir a qualidade do código.
Vídeo de Apresentação
Infelizmente, não consegui avançar o suficiente no projeto para criar um vídeo de apresentação do site rodando. No entanto, espero que a explicação aqui forneça uma visão clara das minhas intenções e dos desafios que enfrentei.
Sobre Você
Sou Emerson da S. Paulista Junior, um iniciante na jornada no mundo de desenvolvimento. Recentemente, comecei a adquirir conhecimento em Python e percebi o quanto a programação pode proporcionar soluções mais eficientes. Este desafio foi uma excelente oportunidade para explorar as tecnologias de backend e frontend, como Angular e NestJS. Embora eu ainda esteja no começo dessa jornada, gostei muito do processo e estou motivado a continuar aprendendo e aprofundando meus conhecimentos nessas tecnologias.
Outros Detalhes
Embora não tenha conseguido concluir o desafio da forma que eu esperava, considero essa experiência extremamente valiosa. Através dela, pude entender melhor as ferramentas e as tecnologias envolvidas. Com isso, sigo comprometido a aprimorar meu aprendizado, especialmente com Angular e NestJS, e aplicar esse conhecimento em projetos futuros.
Contato
Você pode me contatar por e-mail em [email protected] ou por telefone (17) 98206-0170.