Olá! Me chamo Elioenai Gonçalves e sou um desenvolvedor Full Stack Júnior em formação. Gosto MUITO da área de tecnologia e tenho certeza que posso contribuir em qualquer time com as minhas habilidades.
Estou sempre me desafiando com novos projetos e participando de comunidades de programação para buscar conhecimento e feedback de outros desenvolvedores e desenvolvedoras. Além de tentar ajudar essas pessoas com o que eu já aprendi. Procuro aprender sempre com os meus erros, além de aprender com os outros erros.
Sou dedicado, esforçado, persistente e gosto de concluir aquilo que comecei, a não ser que seja preciso dar outra prioridade no trabalho. 😁
Ah, gosto de jogos eletrônicos, jogos de tabuleiro, filmes, séries, animes e outras nerdices. 😎
Gosto também de tocar bateria, jogar bola, jogar paintball, passear com a família e com os amigos.
Utilizo Angular para criar projetos front end web e mobile, utilizando o Angular CLI, com seus Módulos, Decorators, definindo componentes para navegação, criando rotas, usando data bindings, pipes, criando diretivas de decisões.
Faço atualizações de versões de pacotes de acordo com o necessário, debugando a aplicação, utilizando serviços HttpClient, consumindo API através de Back End. Faço deploys com Ivy também, pois acho mais rápido e performático.
Utilizo o framework de estilização Bootstrap, pois facilita muito o estilo da minha aplicação, utilizando códigos chaves, aonde consigo gerar estilos com mais agilidade e praticidade.
Utilizo o dotNet para criar projetos Console Application e Projetos Web também.
Utilizo O ASP.NET para criações de projetos Web, projetos MVC, projetos RazorPages, projetos Blazor (SPA), Razor Library e projetos WebAPI também.
Configurando os projetos com seus LaunchSettings, AppSettings em suas classes, utilizando pacotes Nuget, manipulando os dados com os Middlewares dos requests e responses, ou seja, os pipelines. Utilizando Hostings, com in-process hosting com IIS ou utilizado out-of-process hosting para proxys reversos.
Utilizo o C# para criação de aplicações Web e aplicações em geral. Gosto do C# pois é uma linguagem fortemente tipada, compilada e gerenciada. Uso para criação de projetos ASP.NET Web, ASP.NET MVC e ASP.NET WebAPI. Uso com seus devidos NameSpaces, Using, class, com builders, structs, métodos, funções, objetos e arrays. Faço conversões implícitas, explicitas, usando o Parse, Convert, com operadores em geral (aritméticos, atribuição, comparação, lógicos, condicionais), usando laços de repetições também. Tudo isso fazendo testes e disparando exceções.
Utilizo o Node.js rodar o JavaScript do lado do servidor. Uso criando módulos, tanto nativos quanto externos. Criando servidores HTTP, com portas locais e externas, criando rotas, utilizando o gerenciador de pacotes NPM, com escopos globais, locais e de desenvolvimento. Gosto de utilizar a ferramenta Nodemon para o monitoramento do meu servidor, mas se for necessário, utilizo o comando de observação watch no package.json também.
Uso o DBeaver como interface gráfica para acessar o banco SQL que utilizo, através do PostgreSQL. Utilizo tipando os dados, utilizando chaves primárias, chaves estrangeiras, com comandos de C.R.U.D, ou seja, criando, lendo, atualizando e deletando dados, através de inserts, selects, updates e deletes. Utilizo técnicas de Join, como Inner Join, Left Join, Right Join e Full Outer Join. Manipulo os dados com operadores lógicos, como and, or, between, is null, is not null, in, not in e matemáticos também.
Gosto de utilizar o framework do Node.js, Express.js, pois acho ideal para a criação de aplicativos web e mobile. Utilizo ele testando com a extensão do VS Code, Thunder Client, pois me dá praticidade nos testes de requisições e respostas. Utilizo rotas no Express.js, rotas com parâmetros, usando métodos de respostas e métodos de requisições diferentes, utilizando chain of responsability (cadeias de responsabilidades), criando Middlewares, de Application-level, Error Handing, de terceiros e do próprio Express.js também. Crio grupos de rotas, usando route handlers (manipuladores de rotas), servindo arquivos estáticos, tratando erros diretamente no Express.js e utilizando aliases.
Utilizo uma conexão direta com o DB (data bank) através do Prisma. Deixo o código padronizado com ESLint, criando models de banco de dados já existentes, fazendo cadastros, validações, atualizações, remoções e filtros de dados com o Prisma. Uso também a ferramenta "Swagger" para documentações e end points, configurando ele as documentações necessárias, assim como no Prisma, ou seja, cadastros, validações, atualizações, remoções e filtros de dados da mesma forma.
Também gosto de utilizo o Render para fazer o deploy dos meus projetos, por ser um servidor bem simples e de facil de fazer os deploys das minhas APIs, apesar de terem muitas outros servidores de hospedagem, até bem famosos como o AWS e Azure.
Uso o TypeScript para poder manter o meu código organizado e com uma camada extra de proteção com verificação de erros. Gosto de utilizar as verificações dos tipos estáticos, usando tipos Tuples, Tipos Enums, raramente, só quando o necessário, utilizo o tipo Any. Uso as tipagens em funções, com Unions, tipo Aliases, tipando objetos com propriedades e parâmetros opcionais, quando necessários. Uso tipos Assertions, Types, Interfaces, tipos Generics, importando e exportando módulos, assim como no JavaScript. Gosto de encurtar minhas importações TS com Aliases, fazendo configurações, quando necessárias, no "tsconfig".
Uso a tecnologia React de forma bem ampla. Crio projetos com o "creat-react-app", mas prefiro usar o "Vite", pois é mais moderno e atual. Uso sempre em meus componentes com conceitos de "Props", tanto com "PropsTypes", quanto com "DefaultProps" também e suas "Props childrens". Gosto sempre de usar "key" para identificá-las melhor.
Usando muito os "Hooks" de "States" ("useState", "useEffect"). Crio formulários com "React Hook Form" também, se preciso. Uso também "Custom Hooks", caso seja necessário. Faço estilizações com "Styled Components" e com "Global Styles" usando o "createGlobalStyle", de acordo com a necessidade. Uso o "React Query" também para facilitar o gerenciamento assíncronos também se solicitado, principalmente para usar em conjunto com o "Axios".
Também não posso deixar de citar que gosto muito de usar o "Context API" para poder passar dados entre os componentes de uma forma única e compartilhada entre eles.
Gosto de utilizar sempre que possível um sistema de roteamento eficiente com o "React Router", criando rotas interativas entre diversas páginas e componentes, fluindo com um sistema de páginas internas e de navegações, sempre que necessário. Gosto de usar essa tecnologia pois gera uma interface mais fluida e interativa, como se fosse um aplicativo de celular, graças ao sistema SPA (Single Page Aplication), que atualiza e adiciona dados a página, sem ter que carregá-la novamente e totalmente.
Gosto de consumir API's utilizando a tecnologia AXIOS, pois tem um uma sintaxe simples e fácil de usar para fazer requisições GET HTTP. Ainda me transforma os dados de requisições e respostas automaticamente, funcionando bem compatível com navegadores e ambientes "Node.js".
Uso essa tecnologia para gerenciar os estados das aplicações de uma forma mais centralizada, utilizando o "Flux", ou seja, o fluxo de dados unidirecionais, tais como os seus componentes principais ("actions", "reducers", "dispatch", "selectors" e "store") para facilitar esse gerenciamento. Uso somente para projetos grandes, pois para projetos menores, poderá aplicar um excesso de complexidade desnecessariamente.
Excelente tecnologia que utilizo muito para criar projetos em "React". Prefiro muito utilizar ele ao invés do "creat-react-app", pois acho mais simples, rápido, moderno, atual e mais utilizado pela comunidade de desenvolvedores mundialmente. Simples, dinâmico, fácil de escolher o nome do projeto, se quero criar em "JavaScript" puro, em "TypeScript", usando framework de "Vanilla", "Vue", "React", "Preact", "Lit", "Svelte", "Solid", "Qwik", entre outros.
Utilizo muito essa tecnologia para realizar testes simples, mas totalmente rápidos, eficazes e lisos. Normalmente uso como alternativa do "Jest", em alguns casos e incompatibilidades de versões, já que uso o "Vite" para criar projetos.
Tecnologia muito útil! Uso sempre que finalizo um projeto JavaScript, utilizo esse ótimo teste unitário para garantir que o meu código está rodando liso e sem erros.
Uma das tecnologias que mais utilizo, o tempo todo tenho que estar usando um código "JavaScript". Vou citar algumas propriedades, atributos e métodos que mais utilizo no JavaScript aqui abaixo, então segue aí:
Atualmente tenho utilizado somente o "NPM" (Node Package Manager), apesar do "Yarn" também ser muito utilizado entre os desenvolvedores. Acho esse gerenciador de pacotes excelente para as instalações, atualizações e gerenciamentos das dependências dos meus pacotes e bibliotecas em ambiente de execução do "Node.js", além de um ótimo controle de versões dos mesmos.
Claramente, o que seria o nosso projeto sem um estilo e personalização, não é? Gosto muito de estilizar projetos e vou citar aqui as principais propriedades, atributos e métodos que mais utilizo em nossos projetos:
O HTML, a base de tudo! O que seriam nossas estilizações sem o "esqueleto" base do nosso projeto, certo? Claramente é o primeiro passo em que faço em um projeto, pois é a nossa linguagem de marcação básica. Vou passar um resumo aqui abaixo das tecnologias, propriedades e métodos que mais utilizo no HTML5, então vamos lá:
O GitHub é nossa rede social, ou seja, a rede social do desenvolvedor, não tem como não o usar hoje em dia para tudo o que preciso e ele tem sido o meu grande companheiro de projetos. Criação de repositórios facilmente. Facilidade ao subir projetos para a nuvem. Uma interface muito intuitiva e ainda possibilita a criação de "site", "página pessoal" através do GitHub Pages, tudo isso num compartilhamento coletivo entre os devs, excelente ferramenta.
Uso sempre o sistema de controle de versão Git, normalmente com o programa GitBash, pois hoje em dia as plataformas têm facilitado bastante para não o usar, mas faço questão pois acho bem prático, rápido, melhor e nostálgico.
Particularmente, por questões de usabilidade maior da comunidade, normalmente utilizado o "HTTPS" para a conexão direta como GitHub entre outros, porém se for preciso, ou seja, para algum projeto maior ou uma empresa grande, utilizo o método de comunicação SSH (Secure Shell), pois como sabemos, é muito mais seguro e prático para essa interação com as nossas chaves privadas. Além de ser totalmente útil para assinaturas de confirmações SSH.
Como sabemos, o VS Code é a nossa base do código, ou seja, é o nosso editor de códigos principal e o ambiente de desenvolvimento integrado (IDE) mais popular e utilizados pelos programadores. Gosto muito dele pois além de ser gratuito, tem uma extensibilidade, funciona em múltiplas plataformas, tem um ótimo desempenho leve, rápido e intuitivo, além de sua integração nativa com o Git.