Article image
Fabiana Penteado
Fabiana Penteado17/04/2024 13:11
Share

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.

Share
Comments (0)