Executando verificação de segurança...
8

Regras de convívio profissional [Para Devs]

Algumas coisas que eu vou colocar aqui servem para qualquer área, outra são específicas para nosso clubinho de dev, afinal nosso meio isso tudo - regras de convívio - fica muito mais evidente, já que trabalhamos com criatividade, linha de raciocínio, segmentação de tarefas etc. É muito difícil lidar com interrupções, distrações e, até mesmo, informações excessivas.

O primeiro ponto que me chama atenção é:

Vá direto ao ponto.
Principalmente se você quiser trabalhar ou estiver trabalhando para uma empresa estrangeira. Nós brasileiros gostamos de falar de amenidades, perguntar do time de futebol, puxar um assunto aleatório, etc, mas isso não é comum em outros países. Claro que existe o momento mais relax, mas não será na hora de tirar uma dúvida, por exemplo. Então, quando for perguntar algo para alguém, vá direto ao ponto. Evite mandar 10 mensagens separada do tipo: "Bom dia" [ENTER], "Tudo bem" [ENTER], "Espero que sim" [ENTER], "Queria te perguntar uma coisa" [ENTER]...
Percebeu? Isso é extremamente irritante fora que, independentemente do sistema de mensagens que você utilize, isso vai levantar notificações na tela do interlocutor e o fará se distrair de sua tarefa.
Ao invés disso, diga simplesmente: "Olá, bom dia. Tudo bem com você. Preciso tirar uma dúvida. A task XXXXX é para ser feita dessa forma: [seu code snipet aqui]?". Pronto. Você fez sua pergunta e foi educado, sem atrapalhar o interlocutor.

Uma segunda dica que eu obtive ao longo desses quase 14 anos de carreira dev é:

Capriche nas mensagens de commit
Obviamente isso é específico para dev. Porém, se você transportar isso para "capriche nos títulos de e-mails" também serve para além do ambiente dev.
Mensagens de commit (aquilo que você adiciona com git commit -m "mensagem de commit") devem ser claras e resumir o que aquele commit adiciona ao código. O revisor tem que entender o que ele irá revisar. E vou além: se sua empresa - ou sua pipeline - utilizar isso para gerar um changelog, é fundamental que essa mensagem seja bem feita.
Coisas do tipo: "added new file", "second commit", "add tests", são terríveis. Treine sua capacidade de sumarização e substitua por "feat(files): Added new file to src/files for blablabla". Isso é um padrão bastante utilziado para commits, onde é possível saber que o commit é relacionado a uma feature, essa feature diz respeito a um milestone/story/ticket chamado "files" por exemplo, e seu commit adicionou "files" na pasta "src/files" para uma ação específica. Percebeu a diferença? Isso facilitará até para você mesmo entender o histórico do que você fez. Caso você queira entender e aperfeiçoar suas mensagens, dê uma olhada aqui.

Dica bônus dessa dica do commit:
Não faça mais de um commit com a mesma mensagem!
Mesmo que seja para incluir uma linha de código que faltou por falta de salvar um arquivo antes de comitar. Mude a mensagem. Lembre-se: Commit history precisa ser um histórico bonito do que você fez.

Bom, essa contribuição minha saiu maior do que o esperado, então vou parar por aqui e deixar mais para outro dia.

Espero ter ajudado você, principalmente se você está começando.
Nossa profissão depende DEMAIS de organização, padrões e histórico. Se não fizermos isso, no futuro, códigos serão insustentáveis.

[]'s

Carregando publicação patrocinada...
4

Parabéns pelo post!!!

Eu pessoalmente gosto de pensar bem antes de commitar e fazer commits que façam sentido. Sobre esse ponto:

Não faça mais de um commit com a mesma mensagem

Tenho uma dica caso você se veja nessa necessidade. Geralmente isso acontece quando pensamos que já terminamos uma feature X, e a commitamos, mas depois percebemos que ainda vamos ter que trabalhar nela. Se isso acontecer, você não precisa fazer outro commit com o mesmo nome, além da opção óbvia de criar um commit com uma mensagem diferente, você pode usar o comando git commit --ammend, que irá adicionar as novas alterações (que estiverem em stage) ao seu último commit local. Além disso, se você tiver feito besteira e precisar reorganizar seus commits, pode usar o seguinte comando:

git rebase --interactive hash_do_commit

Ele abrirá uma lista de opções para você escolher, podendo excluir ou juntar commits. Vale a pena estudar um pouquinho sobre esse comando.

pick bae6596 chore(SEO): add index tag
pick 2f9dd16 chore(SEO): update index tag

# Rebase 144b615..2f9dd16 onto 144b615 (2 commands)
#
# Commands:
# p, pick <commit> = use commit
# r, reword <commit> = use commit, but edit the commit message
# e, edit <commit> = use commit, but stop for amending
# s, squash <commit> = use commit, but meld into previous commit
# f, fixup [-C | -c] <commit> = like "squash" but keep only the previous
#                    commit's log message, unless -C is used, in which case
#                    keep only this commit's message; -c is same as -C but
#                    opens the editor
# x, exec <command> = run command (the rest of the line) using shell
# b, break = stop here (continue rebase later with 'git rebase --continue')
# d, drop <commit> = remove commit
# l, label <label> = label current HEAD with a name
# t, reset <label> = reset HEAD to a label
# m, merge [-C <commit> | -c <commit>] <label> [# <oneline>]
# .       create a merge commit using the original merge commit's
# .       message (or the oneline, if no original merge commit was
# .       specified); use -c <commit> to reword the commit message
#
# These lines can be re-ordered; they are executed from top to bottom.
#
# If you remove a line here THAT COMMIT WILL BE LOST.
#
# However, if you remove everything, the rebase will be aborted.
#

Tradeoffs dessa abordagem

Vale ressaltar que se você está trabalhando em um time, precisa ter cuidado ao sobreescrever o histórico de commits que você já deu push, porque nesse caso, você pode acabar apagando o commit de alguém ou causando conflitos desnecessários, por isso tome cuidado.

2

Prefiro usar estrategia de Pull Request do que Rebase, apesar de criar um commit de merge mas o risco eh menor, no meu entendimento. Usar o git flow tambem ajuda muito na organizacao do fluxo e semantic commits tambem.

1
1
0
3

Uma coisa que tem me ajudado muito e acredito que tornam os commits muito legíveis é a extensão Conventional Commits pro VS Code. Usando essa extensão, de uma forma bem prática, você é guiado em passos para:

  1. Tipo do commit (feat, fix, build, refactor, etc)
  2. Escopo do commit (sem escopo, com escopo e escopo de uso único)
  3. Emoji para o commit (esse é opcional)
  4. Descrição curta (uma descrição breve do conteúdo do commit)
  5. Descrição longa (a descrição detalhada do commit)
  6. Breaking changes (aqui pode-se listar as alterações ou as issues que são fechadas com esse commit)

Recomendo demais para quem quer manter tudo organizado. Para quem quiser ler mais sobre o Conventional Commits, eles tem uma documentação em PT-br bem esmiuçada que explica a convenção todinha 😄

1
2
2
2