Fatia de experiência pessoal: desenvolvimento, solicitações de recebimento, confirmações, habilidades de software


Olá Habrahabr! Neste artigo, compartilharei minha opinião sobre o desenvolvimento de software. Estive em tecnologia da informação há pouco tempo, mas desenvolvi uma forte atitude em relação ao desenvolvimento, desde os nomes dos commits até o esclarecimento dos requisitos para a tarefa.

Desenvolvimento


Mudanças homogêneas


Imagine que você tenha uma tarefa na qual primeiro precise desenvolver uma solução otimizada e, em seguida, use-a em vez da antiga em uma dúzia de arquivos no projeto. Primeiro, avalie se sua abordagem para resolver o problema está correta e depois refatorar. Decida fazer tudo de uma vez - você pode obter comentários e correções críticas da solução na revisão de código. Então você terá que reescrever todos os arquivos nos quais você aplicou o novo código.

Implementação de tarefas


Não resolva o problema com um sabre, não tome decisões importantes com pressa, mesmo que pareça que sua abordagem esteja correta. Siga estas diretrizes:

  • Faça uma análise das implementações existentes no projeto ou na rede, atualize os princípios e padrões de design em sua memória.
  • Não gaste mais de 20 minutos resolvendo problemas típicos ou muito complexos; isso não é eficaz. Provavelmente, se você não encontrou a abordagem correta rapidamente, a solução não é óbvia.
  • Peça ajuda a colegas, incluindo desenvolvedores líderes.
  • Resolva o problema como parte das subtarefas passo a passo, não pule - "Farei o difícil mais tarde". Pode acontecer que não haja soluções corretas, e as existentes não são adequadas e a tarefa precisa ser revisada.
  • Resolva o problema começando pelas coisas fundamentais, verifique se as áreas conceituais funcionam. Pode acontecer que individualmente sua funcionalidade seja viável, e conectá-la exigirá “muletas” ou outra abordagem integrada, o que levará tempo extra.

Solicitações Pull


Título


O título deve descrever a tese das mudanças - seja conciso e conciso. Siga as regras de design do cabeçalho:

  • comece com uma letra maiúscula
  • sem um ponto no final
  • ter um humor imperativo.

Ticket-295: Add base cat interface and British cat realization 

Descrição do produto


Esta seção da solicitação pull deve ser escrita corretamente em um idioma compreensível para um especialista não técnico, dividido por carga semântica e divulgar as alterações da seguinte maneira:

  • o resultado em várias frases,
  • o que precedeu as mudanças
  • por que e por que eles tinham que ser feitos,
  • o que exatamente você fez
  • como você implementou isso?

 The base cats interface was created to provide the common cats functionality and attributes. Also the realization of the British cats was created as the individual one. Our business-analytics have provided for product owner that they want to interact with cats on out platform too, not only with docs. So developers got the tasks to design and implement basic implementation of the cats interface to describe the common patterns of the interaction with it by user. Also the goal was to create one demo cat called British cats (British Shorthair) with its great noses. 

Ajuda


Por fim, deixe os links para os tópicos abordados na solicitação pull. Se outro desenvolvedor precisar entender melhor as alterações, ele poderá procurar lá. Também algumas regras:

  • Descreva brevemente para onde a ajuda direciona
  • se possível - crie links completos,
  • caso contrário, reduza com git.io e bit.ly ,
  • faça uma lista.

 References: • British cats — https://en.wikipedia.org/wiki/British_Shorthair • Cats anatomy — https://en.wikipedia.org/wiki/Cat_anatomy 

Confirma


Confirmar fusão


Ao trabalhar em novas alterações, você o faz em uma ramificação de trabalho separada. As confirmações em uma ramificação de trabalho estão documentando automaticamente as alterações de uma linha.

 $ git log --oneline 4336d35 Create cats interface 7bc2ba9 Implement Persian cat realization 5f330fd Add Persian cat documentation ... 

Quando chega a hora de fazer essas alterações no ramo padrão, isso é feito em um grande commit com um cabeçalho e uma descrição abrangente do que foi feito e por quê. A boa prática de mesclar alterações é usar a interface da web de sistemas de armazenamento de código-fonte como o Github e o Gitlab .

 $ git log --oneline d2ccf1a Ticket-299: Prevent cats graph be stopped unexpectedly (#301) 82a921a Ticket-295: Add base cat interface and british cat realization (#293) ... 

Como resultado, a ramificação padrão é preenchida com confirmações com uma descrição detalhada das alterações.

 Ticket-299: Prevent cats graph be stopped unexpectedly There was a situation when cats graph is stopped unexpectedly without any verbose information and traceback. The socket connection between two web-servers (back-end and front-end) was successfully debugged and founded the socket library async latent behavior. Implemented: — Create handler for async socket connection as sync. The consumer doesnt specify a condition for ending the while loop and stream, so the application checker in Daphne cleans up the task if the protocol disconnects and the app doesnt handle it. So `channel_layer` is wrapped to `async_to_sync`. — Fix low latency between pushing the cats graph data and its output on the user interface. There was a high coupling between interface class that proxy via a few client to the realization. The separated cats graph message class was created. References: • Socket channel layers — https://channels.docs.io/channel_layers.html • Daphne handle_reply() — https://git.io/fgVzK Issue: #56 

Siga estas diretrizes ao fazer confirmações de mesclagem:

  • todas as mudanças em um commit;
  • o título e os blocos de texto com diferentes cargas semânticas são separados por uma linha vazia;
  • Descreva as mudanças: por que eram necessárias, que problema resolviam;
  • descreva cada alteração em detalhes como uma lista: entre em detalhes e consequências,
  • torne sua decisão óbvia;
  • Deixe links para ajudar, documentação, fóruns, discussão de problemas;
  • consulte tópicos ou solicitações pull se suas alterações estiverem relacionadas a eles;
  • limite o comprimento das linhas na mensagem a 72 caracteres.

Soft skills


Comunicação escrita


Todos os dias, os desenvolvedores realizam comunicação por escrito sobre tópicos técnicos, sobre projetos, abordagens para resolver problemas, mas nem sempre o fazem bem. A pessoa com quem você está se comunicando não lê seus pensamentos, não pensa da mesma maneira que você e não se lembra dos detalhes do tópico da proposta que você está conduzindo. Como esse processo pode ser aprimorado:

  • Siga as regras de ortografia e pontuação para delimitar o texto em significado.
  • Use quebras de linha e deixe linhas em branco entre blocos de texto não relacionados.
  • Use listas para destacar uma sequência ou rotular frases.
  • Use serviços para compartilhar parte do código ou use ferramentas corporativas: Pastebin , Github Gist , Codeshare ou, por exemplo, o Slack messenger tem uma função no chat de código ou snippet de texto .
  • Destaque seus próprios nomes, palavras importantes e detalhes com a ajuda da marcação integrada no seu messenger. Agora, qualquer mensageiro moderno suporta a seleção de texto pelo tipo disso.
  • Apoie sua discussão com links para documentação, artigos ou postagens no fórum.
  • Não escreva ou mostre informações desnecessárias ao interlocutor. Por exemplo, não preencha a captura de tela tirada com o nome no formato de data Screen Shot 23-06-2018 às 12.17.31, se a outra pessoa vir essa inscrição. Dê uma olhada no Traceback durante o tópico de discussão process.jpg de registro do usuário .

Responsabilidade


Você cresce como profissional não apenas quando ganha novas experiências e conhecimentos, mas também se:

  • ao resolver problemas, consulte especialistas;
  • seu trabalho pode ser feito melhor - melhore;
  • você pode fazer um trabalho melhor como colega - conte a ele sobre isso;
  • você não sabe algo - reconheça e peça ajuda;
  • Melhore processos, traga coisas novas e não ignore os problemas.

Obrigado por reservar um tempo para publicar. Deixe comentários em mensagens privadas ou comentários, terei prazer em discutir.

Source: https://habr.com/ru/post/pt416545/


All Articles