Desenvolvendo um Sistema de Recomendação de Campeões para League of Legends
- #JavaScript
- #Java
Contextualizar o RoadMap de desenvolvimento (objetivos)
Neste projeto, estarei desenvolvendo um código-fonte que utiliza uma API REST e seu Frontend correspondente. Dentro da estrutura do projeto, foi incluída uma pasta "docs". Para poder ser construído um sistema utilizando Java 21 e Spring Boot 3.
-Vou falar um pouco sobre o jogo e como os dados são importantes para a construção de ferramentas que relacionam os dados e que geram informações sobre o LOL:
League of Legends (LOL) é um jogo de estratégia em equipe onde dois times podem competir para destruir a base inimiga uma da outra. Com a diversidade de campeões, habilidades e estratégias que tornam cada partida única. Para poder construir as ferramentas relacionadas com os dados e gerar informações úteis. Os dados no jogo LOL são cruciais para entender, desde a escolha de campeões até a execução de estratégias. Por exemplo:
· estatística de campeões
· taxas de vitórias
· itens mais eficazes
· preferências dos jogadores
Para compreender esses dados é essencial criar ferramentas que auxiliem os jogadores a tomar decisões informadas e aprimorar suas habilidades.
Com o objetivo abaixo:
“ Que é permitir que os usuários consigam conversar com os campeões do League Of Legends (LOL).”
-A introdução sobre as IAs generativas comerciais:
As Inteligências Artificiais (IAs) Generativas estão revolucionando a forma como interagimos com a tecnologia. Para ter a capacidade de entender e responder de forma inteligente, para depois criar interações mais naturais e personalizadas. Ao aplicar essas IAs em nosso projeto, podemos criar uma experiência única ao permitir que os usuários possam conversar com os campeões de LOL. Possibilita entender a personalidade única de cada campeão e criar interações que capturem sua essência. Isso torna cada conversa uma experiência envolvente e autêntica para os usuários, podendo integrar essas IAs em nossa API.
A seguir, vamos empregar algumas das mais recentes Inteligências Artificiais (IAs) Generativas. Isso permitirá que nossa API compreenda a personalidade única de cada campeão, possibilitando a criação de interações que capturam sua essência. Dessa forma, cada conversa se tornará uma experiência única para ambos os lados.
-Você pode reproduzir no projeto os seguintes pré-requisitos:
1. Instalar o JDK 21 para usar no projeto sobre LOL.
2. Instalar o Intellij IDEA Community Edition ou a IDE de sua preferência como por exemplo: eclipse, VSCode, etc. - “Ao desenvolver um projeto em Java 21 e Spring Boot 3 para LOL, é importante escolher a IDE certa. O Intellij IDEA Community Edition, Eclipse e VSCode são opções populares, cada uma tem suas vantagens e desvantagens em termos de facilidade de uso, compatibilidade de processos e problemas de incompatibilidade. O Intellij IDEA é conhecido por sua robustez e recursos avançados de desenvolvimento, mas pode exigir mais recursos do sistema. O Eclipse é uma opção mais leve e amplamente utilizada, com uma grande comunidade de desenvolvedores. O VSCode é uma escolha moderna e versátil, com suporte integrado para diversas linguagens de programação.”
3. Usar uma conta dentro da AWS caso queira publicar a sua primeira API REST dentro da nuvem usando o AWS Elastic Beanstalk. - “A Amazon Web Services (AWS) oferece uma ampla gama de serviços em nuvem, incluindo o AWS Elastic Beanstalk, que facilita a implantação e o gerenciamento de aplicativos na nuvem. Ao utilizar a AWS, podemos hospedar nossa API REST de forma escalável e confiável, garantindo alta disponibilidade e desempenho.
4. Usar uma conta dentro da OpenAI para integração com os modelos GPT. - “A OpenAI é conhecida por seus avanços em inteligência artificial, incluindo modelos como o GPT (Generative Pre-trained Transformer). Ao integrar esses modelos em nosso projeto, podemos aproveitar seu poder de processamento de linguagem natural para criar interações mais sofisticadas e autênticas com os campeões de LoL. O benchmark entre a OpenAI pode ajudar a avaliar o desempenho e as capacidades desses modelos em nosso contexto específico.”
Projeto em Gradle Kotlin no Backend
Desenvolver um sistema de recomendação de campeões para League of Legends usando Gradle e Kotlin no backend é uma abordagem poderosa para criar uma aplicação robusta e escalável.
O Kotlin é uma linguagem de programação moderna e concisa, desenvolvida pela JetBrains. Ela oferece interoperabilidade perfeita com o Java, o que a torna uma escolha excelente para o desenvolvimento de aplicativos para a JVM (Java Virtual Machine). Com recursos como segurança de tipo estático, suporte a programação funcional e concorrência simplificada, o Kotlin permite desenvolver código limpo e eficiente.
Por outro lado, o Gradle é uma ferramenta de automação de construção poderosa e flexível, que se destaca na produção devido à sua capacidade de gerenciar dependências, compilar, testar e empacotar aplicativos de forma eficiente. Ele utiliza uma DSL (Domain-Specific Language) baseada em Groovy ou Kotlin para definir a estrutura do projeto e suas tarefas. Com o Gradle, é possível construir pipelines de build altamente personalizados e escaláveis, o que é essencial para projetos complexos e de grande escala.
Ao utilizar o Kotlin no backend e o Gradle como ferramenta de automação de construção, você pode aproveitar o poder e a flexibilidade dessas tecnologias para desenvolver um sistema de recomendação de campeões para League of Legends que seja robusto, eficiente e escalável.
-Aqui está um esboço geral de como você pode abordar esse projeto:
Definir os requisitos: antes de começar a codificar, sempre é importante entender o que você deseja no seu sistema para depois você fazer.
Coleta de Dados: você pode coletar dados sobre cada um dos campeões do LOL e sobre cada jogador. Para depois coletar uma API fornecida pela RIOT GAMES que pode ser útil.
Modelagem de dados: com esses dados coletados, você pode criar modelos de dados que representam os campeões e os jogadores.
Implemente o Algoritmo de Recomendação: com os modelos de dados você pode implementar esse algoritmo para poder utilizar suas técnicas como por exemplo: filtragem colaborativa, aprendizado de máquina entre outros.
Desenvolvimento do backend com gradle kotlin: use o Kotlin para desenvolver o backend dentro da sua aplicação. Use o Gradle para poder gerenciar as dependências e compilar seu projeto. Você pode utilizar os frameworks para facilitar o desenvolvimento com o Spring Boot.
API RESTful: Exponha funcionalidades do seu sistema de recomendação através de APIs RESTful para que outras aplicações, como um front end web ou um aplicativo móvel, possam interagir com ele.
Testes: Certifique-se de testar sua aplicação para garantir que ela esteja funcionando conforme o esperado. Isso pode incluir testes unitários, testes de integração e testes de aceitação.
Implantação: Finalmente, implante sua aplicação em um ambiente de produção, como um servidor na nuvem, para que os usuários possam começar a usá-la.
JavaScript no Frontend;
JavaScript é uma linguagem crucial no desenvolvimento frontend, sendo a principal escolha para interatividade e dinamismo em páginas web.
-Suas características fundamentais incluem:
Interatividade: permite que os desenvolvedores criem elementos interativos em páginas web, como botões, menus deslizantes e formulários dinâmicos.Isso é essencial para proporcionar uma experiência de usuário mais envolvente e funcional.
Manipulação do DOM: JavaScript permite aos desenvolvedores acessar e manipular o Document Object Model (DOM), que representa a estrutura de uma página web. Isso possibilita alterar dinamicamente o conteúdo, estilo e comportamento da página em resposta a eventos do usuário.
Assincronicidade: JavaScript é executado de forma assíncrona no navegador, o que significa que ele pode realizar operações sem bloquear a execução de outras tarefas. Isso é especialmente útil para carregar recursos externos, como imagens e dados, de forma eficiente.
Ecossistema robusto: JavaScript possui uma vasta gama de bibliotecas e frameworks que simplificam e aceleram o desenvolvimento front-end, como React, Vue.js e Angular. Essas ferramentas oferecem componentes reutilizáveis, gerenciamento de estado eficiente e facilitam a criação de interfaces de usuário complexas.
-Alguns frameworks populares que podem auxiliar no desenvolvimento frontend incluem:
React: Um framework JavaScript mantido pelo Facebook, que permite a criação de interfaces de usuário componentizadas e reativas.
Vue.js: Uma estrutura progressiva para a construção de interfaces de usuário, que é cada vez mais adotada pela sua simplicidade e flexibilidade.
Angular: Um framework mantido pelo Google, que fornece uma estrutura abrangente para o desenvolvimento de aplicativos web escaláveis e robustos.
TypeScript: Uma extensão da linguagem JavaScript que adiciona tipagem estática opcional e outros recursos de programação orientada a objetos. O TypeScript pode melhorar a correção de erros e a manutenção do código em projetos grandes e complexos.
-Quanto aos níveis de desenvolvimento em JavaScript, é importante considerar:
Iniciante: Nesse nível, os desenvolvedores podem começar aprendendo os conceitos básicos de JavaScript, como variáveis, estruturas de controle e funções. Eles também podem explorar ferramentas simples, como jQuery, para adicionar interatividade às páginas web.
Intermediário: Desenvolvedores intermediários podem expandir seus conhecimentos de JavaScript, explorando frameworks como React, Vue.js ou Angular. Eles podem aprender a criar componentes reutilizáveis, gerenciar o estado da aplicação e interagir com APIs externas.
Avançado: No nível avançado, os desenvolvedores têm um profundo entendimento de JavaScript e podem construir aplicativos web complexos e altamente interativos. Eles podem dominar conceitos avançados, como programação assíncrona, manipulação avançada do DOM e otimização de desempenho.
Sobre a correção com TypeScript, é uma escolha altamente recomendada, especialmente para projetos grandes e complexos. TypeScript é um superconjunto de JavaScript que adiciona tipagem estática opcional e outras funcionalidades, como interfaces e enums. Ele traz benefícios significativos em termos de detecção de erros em tempo de compilação, melhor documentação do código e uma experiência de desenvolvimento mais robusta. Para um projeto como um sistema de recomendação de campeões para League of Legends, onde a precisão e a confiabilidade são essenciais, o uso do TypeScript pode ajudar a evitar erros e melhorar a manutenibilidade do código.
Análise do Desenvolvimento (Pontos Positivos e melhorias)
Desenvolver um sistema de recomendação de campeões para League of Legends utilizando as ferramentas mencionadas, como JavaScript, React ou Vue.js, e possivelmente TypeScript, pode proporcionar uma experiência enriquecedora e desafiadora para os desenvolvedores. Vamos analisar alguns pontos positivos e áreas de melhoria em diferentes aspectos do desenvolvimento:
-Experiência com as Ferramentas:
JavaScript: A flexibilidade e a vasta comunidade em torno de JavaScript facilitam a aprendizagem e a implementação de funcionalidades interativas.
React / Vue.js: Ambos os frameworks oferecem abordagens diferentes para o desenvolvimento frontend, permitindo a criação de componentes reutilizáveis e facilitando a construção de interfaces complexas.
TypeScript: Introduzir TypeScript ao projeto traz benefícios significativos em termos de detecção de erros e manutenibilidade do código, especialmente em projetos de grande escala.
-Desafios e Níveis de Compreensão:
Iniciante: Pode enfrentar desafios ao compreender conceitos mais avançados de JavaScript e o funcionamento dos frameworks.
Intermediário: Enfrenta desafios na implementação de funcionalidades mais complexas e na integração de APIs externas, exigindo um entendimento mais profundo do JavaScript e dos frameworks escolhidos.
Avançado: Pode se deparar com desafios relacionados à otimização de desempenho, arquitetura escalável e integração com outras tecnologias.
-Objetivos e Metas:
Aprendizado contínuo: Utilizar a experiência adquirida para aprimorar habilidades técnicas, explorar novas tecnologias e se manter atualizado com as melhores práticas de desenvolvimento.
Melhoria da qualidade do código: Estabelecer metas para escrever código limpo, modular e bem documentado, visando facilitar a manutenção e colaboração no projeto.
Entrega de valor ao usuário: Focar em criar uma experiência de usuário intuitiva e eficiente, garantindo que o sistema de recomendação atenda às necessidades e expectativas dos jogadores de League of Legends.
-Próximos Passos na Formação Profissional:
Aprofundamento em JavaScript: Investir em cursos e tutoriais para fortalecer o entendimento de conceitos avançados de JavaScript, como closures, promises e programação funcional.
Especialização em Frameworks: Explorar recursos avançados de frameworks como React, Vue.js ou Angular, e aprender a otimizar o desempenho e a escalabilidade de aplicações frontend.
Certificação e Certificações: Considerar a obtenção de certificações em tecnologias relevantes, como React Certification ou Vue.js Certification, para validar habilidades e aumentar a credibilidade profissional.