# Como (tentar) ser mais produtivo como Dev --- <!-- .slide: data-background="#f71302" --> ## Atenção! Minha conexão está instável, pode cair (valeu NET!) --- ## Quem sou eu? - Fabio Perrella - Líder Técnico do time "Projetos Estruturantes" (é o novo "Novo-provisionamento") --- ## Também já trabalhei nos projetos... - Email, SMTP, Criador de Sites (PHP/Wordpress e Rails/BackboneJS), Email Marketing (PHP e Rails/Mongo), Webstore, etc.. --- <!-- .slide: data-background="#df03fc" --> ## De onde veio a ideia dessa talk? Frete de "Pareamento entre equipes diferentes" --- ## Agenda - Velocidade na digitação :runner: - Dicas para o editor de texto - Dicas no terminal - Dicas de git - Dicas com a gem VCR - Dicas no Gitlab - Dicas no Firefox :heartpulse: - Dicas no Ubuntu - Dicas de Print Screen :heart_eyes: - Outras ferramentas --- # Antes de tudo.. A tarefa que vou começar está bem especificada? Não vou jogar meu tempo fora? <!-- .slide: data-background="#fcb603" --> --- # Algumas regras para ser mais eficiente... --- <!-- .slide: data-background="#1A237E" --> # 1. **Evitar usar o mouse!** --- <!-- .slide: data-background="#aab531" --> # 2. Tentar melhorar processos repetitivos por outros mais eficientes --- ## Exemplo Troquei o Gitk pelo Tig! - Gitk é lento, feio, velho e exige o uso do mouse. - Tig é leve, rápido, elegante e tem atalhos que não preciso do mouse. --- ## Exemplo 2 (TODO) ### Criar RITM para change: 1. verificar disponibilidade da data/horário 1. abrir service now e clicar no catálogo 1. preencher formulário 1. adicionar evento ao meu calendário 1. avisar na sala do rocket e escrever o texto pra isso --- <!-- .slide: data-background="#1fab44" --> # Digitação --- ![](https://i.imgur.com/EnWNenw.png) [Segundo o Akita](https://www.youtube.com/watch?v=tEXX1jdpZN8), se estivermos abaixo de 70 palavras por minuto, precisamos treinar! --- ## Teste https://10fastfingers.com (pra mim deu uma média de 55 :cry:) ### Sites pra aprender - typingclub.com (estou treinando) - keybr.com - typing.io --- <!-- .slide: data-background="#ab361f" --> # Dicas no editor de texto --- Uso o Sublime Text, mas acho que as dicas se aplicam pra qualquer editor! --- A idéia é mostrar coisas que dá pra fazer. **Mas não aconselho tentar adotar tudo de uma vez!** --- ## Editor de texto - fuzzy open file (ctrl + p) :exclamation: - uso de projetos - ctrl + alt + p pra trocar projeto - uso o plugin [ProjectManager](https://github.com/randy3k/ProjectManager) pra facilitar --- ## Editor de texto - atalho para fazer folding de trecho de código (procurar por `"command": "fold"` nos key bindings) - plugin para salvar o estado do code folding/cursor num projeto (plugin [BufferScroll](https://github.com/titoBouzout/BufferScroll)) :exclamation: --- ## Editor de texto - atalho para fechar todos os arquivos abertos, criei esse: ```json { "keys": ["ctrl+alt+c"], "command": "close_all" }`) ``` - atalho para selecionar todas ocorrências (alt+F3) - atalho para selecionar próximas ocorrências de uma seleção (ctrl+d / F3) - seleção vertical para editar múltiplas linhas (alt + shift + arrow (up/down)) --- ## Editor de texto - atalho *go to definition* :exclamation: - F12 ou *ctrl+t+t* (com plugin [Ctags](https://github.com/SublimeText/CTags)) - ctrl - ou < para voltar - atalho *jump back* (alt + -) :exclamation: - atalho *jump foward* (alt + shift + -) --- ## Editor de texto - split de tela :exclamation: - limitar linha em 80 rows - atalho para slipt, mover cursor entre os panels - atalho para mover arquivo de um panel para outro - [post que fiz com essas dicas](https://blog.locaweb.com.br/artigos/dicas-para-aumentar-produtividade-com-sublime-text-3/) --- ## Editor de texto - atalho para selecionar o texto dentro de uma string (plugin [Select Quote](https://packagecontrol.io/packages/Select%20Quoted)) - atalho para copiar o path com a linha de onde esta o cursor :exclamation: - plugin [Copy Filepath With Line Numbers](https://packagecontrol.io/packages/Copy%20Filepath%20With%20Line%20Numbers) - criação de atalho ```json { "keys": ["ctrl+alt+."], "command": "copy_reference" } ``` . --- ## Editor de texto - atalho para duplicar linha (ctrl + shift + d) - atalho para excluir linha (ctrl + shift + k) - atalho para juntar linha de baixo com a atual (ctrl + j) - atalho para paste and indent (ctrl + shift + v) --- ## Editor de texto - atalho para switch entre teste e código :exclamation: - plugin [rails_go_to_spec](https://github.com/sporto/rails_go_to_spec) - atalho para rodar comandos (ctrl + shift + p) - atalho para mostrar arquivo no sidebar ```json { "keys": ["ctrl+shift+r"], "command": "reveal_in_side_bar"}, ``` --- ## Editor de texto - atalho para mostrar/esconder o *side bar* (ctrl + k + b) - atalho para ir para a linha X (ctrl + g) - atalho para "ir ao símbolo" (ctrl + r). É um jeito fácil de pular para as definições de um método --- <!-- .slide: data-background="#1a3d11" --> # Dicas no terminal --- ## Terminal - atalho para busca de comandos (`ctrl + r`) - atalho para limpar a tela (`ctrl + l`) - [autojump](https://github.com/wting/autojump) para mudar de diretório - usar alias ([meus alias](https://github.com/fabioperrella/dotfiles/blob/master/dotfiles/.aliasesrc)), exemplos: ```bash alias be="bundle exec" alias r="bundle exec rspec" alias ro="bundle exec rspec --only-failures" alias rr="VCR_MODE=rec r" alias rn="r --next-failure" alias t="tig" alias b="bundle install" ``` --- ## Terminal - TMUX - para digitar token da nibbler só 1 vez! - split de tela - para não perder sessão se a rede cair - difícil, mas vale a pena [aprender](https://www.youtube.com/watch?v=5iXzqN8-34E) - [usar o ~/.ssh/config](https://linuxize.com/post/using-the-ssh-config-file/) - usar gsh para fazer ssh em várias máquinas ao mesmo tempo --- ## Terminal ### Navegação do cursor ![](https://i.imgur.com/wkQO60M.png) github.com/fliptheweb/bash-shortcuts-cheat-sheet --- ## Terminal Configurar o PS1 mostrando branch do git ![](https://i.imgur.com/0YmfiEv.png) Código deste está [aqui](https://github.com/fabioperrella/dotfiles/blob/master/dotfiles/.gitpromptrc) --- ## Terminal Tenha uma boa ferramenta de diff. Exemplo: [Meld](https://meldmerge.org/) ![](https://i.imgur.com/C4wxSKl.png) --- <!-- .slide: data-background="#0e6962" --> # Dicas de Git --- ## Git Uso de um client facilita em algumas tarefas: - histórico de alterações de 1 arquivo - *git add* interativo - git log bonito: ![](https://i.imgur.com/R7Co5pz.png) --- ## Git ### Client Tig - github.com/jonas/tig - Fiz um post falando sobre ele [no blog da Locaweb](https://blog.locaweb.com.br/geral/tig-client-para-git-no-terminal/) --- ## Git Uso de aliases do git, ex: ```bash [alias] d = diff --color a = add st = status pt = push --tags ``` Mais exemplos no [meu dotfiles](https://github.com/fabioperrella/dotfiles/blob/master/dotfiles/.gitconfig) --- ## Git Algumas confs para facilitar trabalhar com branches: ```bash [branch] autosetuprebase = always [merge] ff = no commit = no tool = meld [pull] rebase = preserve [push] default = current ``` --- ## Git Diff mais bonito com o [diff-so-fancy](https://github.com/so-fancy/diff-so-fancy) ```bash [core] pager = diff-so-fancy | less --tabs=4 -RFX ``` ![](https://i.imgur.com/S8h3YgY.png) --- <!-- .slide: data-background="#880ced" --> # Testes com a gem VCR --- ## VCR Fiz um [post com 10 dicas de VCR](https://fabioperrella.github.io/10_tips_to_help_using_the_VCR_gem_in_your_ruby_test_suite.html) Ex: Tenha um jeito fácil de regravar o cassette de um teste específico ```bash $ VCR_MODE=rec bundle exec rspec spec/some_class_spec.rb:30 # com meus alias $ rr spec/some_class_spec.rb:30 ``` --- <!-- .slide: data-background="#b0d6bb" --> ## Gitlab --- ## Gitlab - abuse do histórico do browser! ex: *code prod merg* (Firefox :heart:) - em um projeto, o alias `t` abre o *find by path* - em um MR, o `n` e o `p` navegam entre as dicussões - em um MR, o `j` e o `k` navegam entre os arquivos Mais em docs.gitlab.com/ee/user/shortcuts.html --- ## No client de Email - agrupar mensagens tipo thread para facilitar leitura dos comentários em MRs ![](https://i.imgur.com/Yc5PlCG.png) Obs: uso o Thunderbird principalmente para ter um calendário com alerta. --- <!-- .slide: data-background="#c45f1b" --> ## Browser (Firefox) --- ## Firefox - Plugin [Multi-Account Containers](https://github.com/mozilla/multi-account-containers#readme) para ter seções diferentes em cada aba! - atalho para navegar entre as abas (ctrl + PgUp / ctrl + PgDown) - atalho para mover abas (ctrl + shift + PgUp / ctrl + shift + PgDown) - atalho para fechar aba (ctrl + w) - atalho para voltar a url anterior (alt + left) --- <!-- .slide: data-background="#142ce0" --> ## Zoom --- ## Zoom Configuração para copiar a url da meeting automaticamente ![](https://i.imgur.com/LitlBRU.png) --- <!-- .slide: data-background="#7f068a" --> ## Rocketchat --- ## Rocketchat - atalho ctrl + k para pesquisar por sala / pessoa - seta pra cima pra editar última mensagem - atalho **"+:"** para [reaction na ultima msg](https://github.com/RocketChat/Rocket.Chat/pull/7569) --- <!-- .slide: data-background="#726d73" --> ## Ubuntu --- ## Ubuntu - atalho para play/pause/próxima música - atalho para aumentar/diminuir volume - atalho para travar tela - atalho para maximizar tela - atalho para posicionar telas "lado a lado" --- <!-- .slide: data-background="#ff1500" --> ## Print Screen -> clipboard -> ctrl + v Economizei muitos anos de vida com essa! ![](https://i.imgur.com/6JR6yPY.png) --- <!-- .slide: data-background="#c2979c" --> ## Outras ferramentas/coisas --- ## Outros - hackmd.io (markdown, slides, etc..) - https://hackmd.io/s/how-to-create-slide-deck - jsonlint.com (formatação de json) --- ## Outros (Locaweb) - https://hank.locaweb.com.br/resources (para fazer requests com service-ticket) ![](https://i.imgur.com/csrAulj.png) --- ## Outros (Locaweb) - gem [locaweb-tools](https://code.locaweb.com.br/locawebcommon/locaweb_tools) para incrementar tag de repositório Git ```bash $ lwt bumptag minor ``` --- <!-- .slide: data-background="#276e29" --> # Valeu! `@fabioperrella` [Formulário de feeback](https://forms.gle/4QMe3niPJoC3ghpT7) ![](https://i.imgur.com/c9NR5Xq.png)
{"metaMigratedAt":"2023-06-15T08:03:09.546Z","metaMigratedFrom":"YAML","title":"Como (tentar) ser mais produtivo como Dev","breaks":true,"description":"O que uso de ferramentas para (tentar) melhorar minha produtividade","contributors":"[{\"id\":\"36c0d3a9-a53e-4b0d-98a4-47132925bdd4\",\"add\":14029,\"del\":3401}]"}
    1311 views