Perfil no GitHub e bons padrões de escrita de código
Alguns de vocês já devem saber que o GitHub lançou recentemente um tipo especial de repositórios. Se você criar um repositório que tenha o mesmo nome que a sua conta, o arquivo README.md desse repositório será mostrado na página do seu perfil no GitHub. Se você ainda não viu, dê uma olhada no meu perfil.
TL;DR
Com um simples exercício ao tentar fazer um resumo de quem eu sou em forma de código, consegui notar o quão importante é escrever código que será lido por uma outra pessoa, ao invés de escrever código que máquinas vão interpretar.
Aqui está o repositório com o model que usei para me descrever: https://github.com/arleypadua/arleypadua
Story
Como eu achei a feature bem interessante, eu acabei notando que teria a capacidade de descrever um pouco sobre quem eu sou, relacionada a minha profissão e paixão. Eu comecei a pensar, ok… o que eu posso colocar aqui? Será algo chato, semelhante descrições profissionais no LinkedIn? Quem irá ler isso?
Eu escrevi algumas palavras, mas nenhuma pareceu se encaixar com o propósito da plataforma, quando então decidi escrever um resumo do meu perfil utilizando uma linguagem de programação.
Eu estabeleci algumas regras para essa brincadeira:
- Utilizar a linguagem que tenho mais afinidade
- Tem que ser legível
- Embora seja código, qualquer um tem que entender.
A partir do perfil que tenho em algumas plataformas sociais por aí, rapidamente consegui criar um rascunho de como se pareceria:
Developer arley = Developer
.Married()
.Musician("🎷", Level.Ok)
.BornIn(Countries.Brazil, year: 1991)
.LivesIn(Countries.Netherlands, since: 2017)
.CodesIn(language => language
.CSharp()
.TypeScript()
.JavaScript())
.Interested(@in => @in
.SoftwareArchitecture()
.DomainDrivenDesign()
.DistributedSystems()
.ShareIdeas(at: "https://medium.com/@arleypadua"))
.Found(at => at
.Twitter("https://twitter.com/_arleypadua")
.LinkedIn("https://www.linkedin.com/in/arleypadua/"));while (arley.HasLife)
{
arley.Travel();
arley.EnjoyLife();
arley.Code();
}// todo: find out what is next 😅
Eu até mostrei pra minha esposa, que não tem afinidade com linguages de programação e… SUCESSO! Ela entendeu a mensagem.
Então me lembrei de uma fala interessante:
Qualquer um pode escrever código que máquinas entendem, mas bons programadores escrevem código que humanos entendem. — Martin Fowler
Isso se encaixa perfeitamente na vida diária de um desenvolvedor, em que máquinas sempre vão entender instruções, mas como sempre temos que adaptar os nossos códigos à realidade dos negócios que estão em constante mudança, é com bastante frequência que nos vemos indo de volta às instruções, tendo que mudá-las.
Se as instruções não estão legíveis, boa sorte ao tentar um problema e dar aos stakeholders uma mensagem clara de como está o estado atual. Por outro lado, se você tem uma base de código boa, legível, chame seu stakeholder, e converse com ele sobre o que está escrito.
O aprendizado do exercício é: se você quer se tornar um desenvolvedor melhor, pare de desenvolver código que irá simplesmente funcionar e comece a desenvolver código que tenha um real significado.
Arigo pequeno, muito tempo sem escrever por aqui, mas uma lição com algum valor.
Se quiser entrar em contato, estou disponível no Twitter @_arleypadua.