Giter VIP home page Giter VIP logo

Olá, sou o Gabriel Gregório 👋 🇧🇷

Atualmente trabalho como desenvolvedor frontend pleno no Pravaler, gosto de seguir boas práticas, refatorar código, criar testes automatizados e estou sempre em busca de aprender mais e melhorar.

Amo a comunidade open source, já fiz algumas contribuições em projetos open source como o react icons 876 e 900, mas a maioria das minhas contribuições ainda são em projetos privados, de qualquer forma pretendo continuar com essas contribuições à comunidade sempre que possível.

Alguns projetos meus que gosto muito

  • Quick Note, uma extensão para anotações rápidas apertando ALT+A para Chrome e Edge
  • Youtube Reload Um projeto para você talvez redescobrir algumas músicas legais.
  • create-tag-and-release um github action que permite você criar releases e tags
  • eslint-plugin-canonical-vocabulary Um plugin para eslint para impor um vocabulário coerente, evitando termos que possam gerar confusão, é um plugin super específico.
  • Meu dia, um projeto para ser usado com uma Raspbery pi e com uma tela sensível ao toque, permitindo você definir tasks diárias e até definir cronômetros rápidos.
  • page-text-replacer uma extensão do Chrome para editar páginas web, por exemplo, para deixar logs mais legíveis ou testar mudanças de textos em página web de sem precisar de mexer na aplicação.
  • Dicas de Valorant, um projeto de estudos do SSR e SSG do nextjs
  • Mod Camisa do Typescript no Cyberpunk é literalmente isso haha
  • Jogo da velha Gamer, simplesmente me diverti bastante nesse projeto de faculdade.
  • Linguagem Safira, um dos meus primeiros e piores projetos em termos de qualidade de código, estava no comecinho de carreira e queria entender até onde dava para levar um projeto sem seguir boas práticas (até porque eu nem sabia o que era isso, só queria sentir na pele a experiência de desenvolver uma aplicação complexa), foi divertido, nada escalável, mas criei uma IDE e uma linguagem de programação usando expressões regulares e criando do zero minha própria forma de criar algo que se parecesse com uma linguagem de programação.
  • ESLint, um pouco além do básico Apenas algumas dicas de ESLint

Eu tenho vários outros projetos, mas esses acho que já estão de bom tamanho, foram os 7 primeiros que lembrei.

Alguns jogos que gosto muito

  • Cyberpunk 2077, meu jogo preferido atualmente, já zerei várias vezes e acho que a CD Projekt RED fez um excelente trabalho consertando o jogo. Olha essa vista.
  • Microsoft Flight Simulator 2020, é maravilho pilotar um F18 Super Hornet ou tentar ligar um 737-700. Eu facilmente viro o dia nesse simulador, e no modo sem ajuda é ainda mais divertido.
  • Valorant, é divertido, não tem como negar haha
  • Cod modern warfare 2019, um jogo incrível, sem palavras.
  • Call of Duty 4: Modern Warfare, me ensinou a ficar longe de carros em um tiroteio haha
  • Grand Theft Auto III, um dos jogos que mais me marcaram e talvez o mais importante para a Rockstar Games.
  • Grand Theft Auto: San Andreas, um dos melhores jogos já criados na história.
  • Guitar Hero III: Legends of Rock, um jogo muito divertido.
  • Horizon Zero Dawn, um jogo espetacular.
  • Far Cry 3, um dos melhores jogos já feitos, com o vilão mais icônico dos games para min.

De vez enquanto eu

  • Gosto de tirar fotos do ambiente ao meu redor, algumas vezes elas ficam bem legais.

Minhas redes

Icone do linkedin Icone do instagram

Para mim, projetos legais têm:

Linguagem

Typescript, com strict mode, proibição de anys, detecção de nulos e paths alias.

IDE

O vscode que é meu editor/IDE preferido, ele deve estar configurado e o projeto deve ter um .vscode integrando ESLint com o Prettier, e com regras adotadas no projeto. O output do Vscode deve estar sem erros.

Linting

Para mim, o eslint deve estar configurado e sempre tendo evoluções, as regras devem ajudar a diminuir apontamentos em code reviews, detectar bugs e problemas, de forma sempre a otimizar a produtividade. Quando o ESLint começa a agilizar o desenvolvimento, para mim, esse é o momento em que o objetivo máximo do ESLint foi alcançado.

Para testes unitários.

Para min, é fundamental ter ferramentas de testes configuradas, como Jest, React Testing Library, Vitest e com cobertura integrada

Para testes e2e

Para testes e2e atualmente eu tenho mais experiência no Cypress e gosto muito de usar essa ferramenta no dia a dia, criando intercepts e até encontrando bugs usando diretamente o Cypress, sem precisar de recriar cenários mirabolantes e complexos em produção.

Paixões

Sou apaixonado pelo processo de linting, sempre fico feliz quando minhas aplicações chegam a um nível onde o linting começa a evitar dores de cabeças. Para mim, esse é o ponto perfeito do linting, aquele em que você agradece o seu eu do passado por configurar essa ferramenta maravilhosa, também é onde a produtividade começa a aumentar de forma significativa.

Também é muito satisfatório quando testes quebram devido a um erro que cometi e não tinha percebido, isso faz a gente agradecer por criar aquele teste.

Docker

Ter ambiente de dev, de testes e um make file são fundamentais para ter ambientes locais robustos, no frontend nem tanto, mas em backends complexos é fundamental. Eu gosto muito de configurar tudo e criar os atalhos no Makefile.

Cultura

Valorizo muito a cultura de criticar sempre, de mexer no código alheio e de não ter medo de mexer no código que não é seu, gosto muito de não ter essas fronteiras, para min isso garante o desenvolvimento saudável de qualquer aplicação.

Banco de dados

Atualmente eu gosto bastante de usar o mongodb, deve ser porque a maioria dos projetos mais recentes meus fazia sentido usá-lo.

Framework de estilização

O tailwindcss atualmente é meu framework css preferido, ele traz os poderes do css de uma forma muito simples e dinâmica, e de cara ajuda a evitar important, combinando perfeitamente com frameworks modernos como react

Sistema operacional

Atualmente uso muito o Ubuntu, é meu sistema favorito há anos e nunca me deixou na mão, além de trazer a melhor experiência para desenvolvimento web sem concorrentes na minha experiência.

Framework frontend

Atualmente o Nextjs e Vite são as minhas ferramentas preferidas de frontend, permitindo criarmos frontends estáveis, bonitos, eficientes e otimizados e de uma forma bem simples.

Boas práticas

Acho fundamental seguir boas práticas, como não usar abreviações, manter padrões de escrita, manter padrões de formatação, tendo um prettier integrado ao ESLint e atuando continuamente, e resolvendo os problemas sozinhos ao salvar as mudanças com o CTRL+S. Também acho fundamental evitar códigos complexos, profundos, mágicos, etc. (existem dezenas ou centenas de boas práticas, e algumas podem não ser boas práticas em certos contextos.)

Pré-Commit

O projeto deve estar com commit lint, husk e ferramentas similares para detectar vulnerabilidades, rodar os testes, verificar se o commit está no padrão, etc.

CICD

Uma pipeline completa de cicd com o gcp ou github actions, com testes e linting já é muito produtiva.

É um bônus se a pipeline tiver um pré-build, criação de tags, releases, preenchimento de prs já, teste de acessibilidade, integração com coverage, deploy de storybook, criação de ambientes dinâmicos, etc. Existe um mundo em CICD, o básico já é bom, mas tem como ir bem além do básico.

Deploy

Uma coisa que gosto muito é a possibilidade de revert rápidos, como o que o argocd permite, eu ainda não sei configurar, mas é uma feature que é extremamente util e valiosa para manter a aplicação estável.

Observabilidade

Em um frontend, para min é preciso ter pelo menos o Sentry configurado, observando não apenas erros na aplicação, mas erros nas requests também, e conectadas a canais como slack, Telegram ou e-mail. Isso nos permite descobrir quando um problema começa desde a primeira request com problema, isso já abre caminhos para uma investigação e uma correção, muitas vezes antes de ter qualquer report de incidente.

Para um backend, para min é fundamental termos os logs da aplicação, de forma simples, clara, com informações uteis, sem contaminação e de uma forma que até algum leigo possa entender, isso nos permite criar métricas, dashboards, alertas e até queries de anomalias, onde você cria uma quey que dispara alertas caso surja qualquer log novo (anomalia).

Com um ambiente dessa forma, o frontend e o backend estão continuamente vivos e reportando quando acontece qualquer coisa estranha, isso nos permite detectar scans, regressões do projeto ou externas, criar dashboards de fluxo de produto e muito mais.

Toque de realidade

Logicamente, nem sempre tem como ter tudo isso, e às vezes temos que deixar algumas coisas de lado, mas faz parte, o importante é nunca se acomodar, e sempre voltar para resolver os problemas.

Além disso, essas são algumas preferências minhas quando escrevi esse texto. As coisas mudam e faz parte, eu entendo e mudo junto conforme a necessidade.

Programando a mais de

wakatime

Contribuições

Snake animation

Gabriel Gregório's Projects

mark-tested-specs icon mark-tested-specs

📦 This CLI library helps you mark the specifications that were tested in a markdown file.

messenger icon messenger

👨‍💻 Chat simples feito usando nodejs com websockets

my-daily icon my-daily

This is a control of the day project made to be used on tables or mini computers like Raspberry Pi.

outworld-front icon outworld-front

💻 Rede social, frontend com vuejs e backend com nodejs e TDD

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.