Dev Experience não é só pra código
Muito se fala sobre a DevEx no uso de APIs, ferramentas e bibliotecas, mas a DevEx não se limita a esse campo. Outras áreas como conforto, relação com o time e ambiente de desenvolvimento são igualmente importantes para uma DevEx positiva. É por isso que tempo de espera para rodar testes e ambiente desconfortável te deixam menos produtiva.
Você não precisa ser especialista em DevEX para perceber o que está incomodando, afinal você é o usuário. Nesse blogpost eu vou te mostrar algumas dicas que serviram para aumentar minha experiência de desenvolvedor durante minha carreira.
Ambiente de desenvolvimento
Me incomoda muito ter que todos os dias configurar o ambiente de desenvolvimento para rodar o projeto. Eu precisava que as coisas fossem minimamente automatizadas pra que eu não precisasse digitar comandos longos.
Alias
O alias te ajuda a simplificar os comandos e até unificar vários comandos em um só, por isso essa é uma prática muito comum no meu ambiente de desenvolvimento. De rodar o projeto até configurar tela e conectar fone bluetooth, tudo eu faço com alias. Eles são simples de configurar e você pode dar nomes minúsculos como 'conectar_fone' para conectar o fone de ouvido pelo terminal, sem necessidade de abrir a interface do sistema.
Os aliases são como apelidos para comandos, para adicionar alias ao seu terminal você precisa editar os arquivos .zshrc (ou .bashrc dependendo do shell que você usar), digitar alias nome_do_alias = ‘comando a ser executado aqui’
e salvar. Após isso, reinicie o terminal e os aliases ficarão disponíveis como comandos do terminal.
O céu é o limite para os aliases e eu uso bastante eles no meu dia a dia, abaixo eu listo alguns exemplos que foram testados usando Pop_OS!, uma distribuição Linux baseada em Ubuntu. Caso seu sistema seja diferente, use os especialistas GPTs do Windows e do MacOS para adaptar o código para o seu sistema
Mudar posição do monitor
Meu setup conta com um monitor ultrawide que fica na esquerda e meu notebook que sempre fica na direita. O sistema operacional nunca respeita essa ordem e eu sempre tenho que manualmente abrir as configurações para mudar a posição dos monitores. Agora com um simples comando screen
no terminal, em segundos eu tenho tudo configurado do jeito que eu gosto. ✨
alias screen="xrandr --output eDP-1 --mode 1920x1080 --pos 2560x0 --rotate normal --output HDMI-1 --mode 2560x1080 --pos 0x0 --rotate normal --primary"
Rodar projeto
Assim como a configuração da tela, para rodar o projeto, você não precisa digitar um comando gigante. Basta criar seu alias e rodar ele no seu terminal na pasta do projeto.
# Run project with alias
alias run_project="docker compose -f local.yml up -d && pyenv activate your-env && python manage.py migrate && python manage.py runserver"
# Stop the project with alias
alias stop_project="sudo docker stop your_containers_here"
Conectar fone e outros equipamentos via bluetooth
Em distribuições Linux, o bluetooth não costuma funcionar bem como em outros sistemas operacionais. Por causa disso, eu criei um alias para me certificar de que o fone está conectado, sem precisar entrar nas configurações do sistema.
# Alias para conectar o fone bluetooth
alias conectar_fone="bluetoothctl connect ENDERECO_DO_FONE"
# Alias para desconectar o fone bluetooth
alias desconectar_fone="bluetoothctl disconnect ENDERECO_DO_FONE"
Extensões de navegador
Extensões são um recurso de fácil acesso pois estão no navegador e a maioria delas não precisa de configurações complexas para funcionar bem. Elas são recursos que você deve usar para diminuir incômodos e melhorar sua DevExperience
Abaixo eu listo algumas extensões que utilizo no meu dia a dia para simplificar trabalhos, diminuir trabalho manual e gravar tela de forma simples
Bitwarden
O Bitwarden é um gerenciador de senhas e sua extensão detecta o site que você está no momento e permite que você preencha o login automaticamente.
VisBug
O Visbug é uma extensão é para as pessoas frontenders. Ela ajuda você a medir a distância entre um elemento e outro e conta com outros recursos interessantes que facilitam a vida dos frontenders.
SCRE.IO
A extensão SCRE.IO te ajuda a gravar vídeos da tela. Ela não se limita ao navegador, consegue gravar tela toda, janelas, abas do navegador. É muito simples de usar e é totalmente gratuita.
Fake filler
A extensão Fake Filler te ajuda a preencher formulários de forma rápida por meio de atalhos de teclado. Ela é muito interessante em situações que você precisar testar fluxos que tem muitos campos de formulário.
IA
Outro ponto que tem me ajudado bastante são as ferramentas de IA como ChatGpt e Github Copilot. Elas são amigas da DevEx, mas é preciso tomar cuidado com as permissões em relação ao uso de dados. Alinhe com sua empresa o uso dessas ferramentas, anonimização dos dados e limitações.
ChatGPT
A mais famosa das IA generativas, o Chatgpt conta com GPTs que são versões personalizadas com vários propósitos. No meu caso tenho usado bastante assistente de código para tirar dúvidas sobre programação, "qual o equivalente de .includes do javascript em python?" ou um professor de inglês para corrigir mensagens antes de enviar.
Github Copilot
O Copilot é outra IA que tem aumentado minha DevEx. Você pode pedir para ele escrever o código ou deixar que ele autocomplete o código que você está escrevendo. Na maioria das vezes ele acerta o que você precisa, mas em alguns casos ele erra, então é bom ter atenção ao usar.
Espero que tenha curtido minhas dicas. O que você tem usado por aí para aumentar sua DevExperience?