Sou dev, eu sou sinistro!

Vinicius Reis
Training Center
Published in
6 min readApr 6, 2018

Este artigo tem o propósito de instigar você a pensar um pouco mais sobre críticas e na qualidade do código que você produz.

Antes de começar, preciso contextualizar o título, ele não remete exatamente o conteúdo deste artigo, porém foi a gíria mais próxima que consegui, entendedores entenderam. Aos demais, deixo este vídeo relaxante.

Motivação

Estou com este artigo na gaveta faz alguns meses, na época recebi a seguinte mensagem no meu Telegram.

Vinicius eu fiz uma pergunta no grupo de javascript não pedi uma critica de cada linha de código que eu escrevo e nem a bosta de uma critica do jeito que eu faço minha pergunta até porque não entrei em um grupo de portuguêsEu tenho 19 anos e aprendi a programar sozinho, nunca tive nenhum professor pra ficar me ensinando a programar, tanto que hoje sou freelancer e programo em android, web e iOSMais não aceito que critiquem o jeito que eu escrevo a porra do meu código 👍

Este rapaz havia postado uma dúvida no grupo de JavaScript no Telegram, relacionado a um problema em replace de palavras com cases diferentes.
Ele também enviou 2 prints um com o layout, exemplificando o problema, e com o código que ele escreveu.

Ninguém interagiu com ele por um bom tempo, e quando eu fui olhar as mensagens que eu não havia lido encontrei esta pergunta, logo entendi o problema e expliquei para ele que a abordagem do problema estava errada, e dei alguns toques de como melhorar a qualidade do código dele.

Vinicius Reis, [31.07.17 13:09]
sua estratégia q esta errada
Vinicius Reis, [31.07.17 13:10]
1. ta usando binds de jquery desnecessários
Vinicius Reis, [31.07.17 13:11]
const $this = $(this)
const newContent = $this.text().replace(...)
$this.html(newContent)
Vinicius Reis, [31.07.17 13:12]
2. vc poderia usar regex diretamente e não uma função do jquery
Vinicius Reis, [31.07.17 13:13]
const newContent = $this.text().replace(regexAqui, ...)
Vinicius Reis, [31.07.17 13:14]
com o regex certo vc consegue capturar qqr case
Vinicius Reis, [31.07.17 13:14]
porém ainda vai haver o problema de injetar o valor errado
Vinicius Reis, [31.07.17 13:15]
por isso vc deve aprimorar a função para não substituir diretamente, e sim extrair o texto e só depois fazer a mudança com o valor extraído
Vinicius Reis, [31.07.17 13:15]
com isso sempre terá um bom resultado visual
Vinicius Reis, [31.07.17 13:15]
aprimore a lógica doq vc esta fazendo @fulaninho
Vinicius Reis, [31.07.17 13:15]
veja além das limitações, foque em um código limpo e sem repetições
Vinicius Reis, [31.07.17 13:16]
explore as possibilidades doq vc esta usando
Vinicius Reis, [31.07.17 13:16]
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace
Vinicius Reis, [31.07.17 13:19]
mais uma dica, @fulaninho contexto é bom, mas saiba identificar quando o problema/dúvida não tem relação com oq vc esta escrevendo, e tente ser um pouco mais técnico
"quero pintar a palavra digitada..."
quando na vdd é
"preciso aplicar um replace em uma string independente do case dela"

Infelizmente fulaninho saiu do grupo e apagou sua mensagem.

Não sou o tipo que deixa a ajuda pela metade, sempre passo mais informações como melhorar o código ou prevenir problemas, principalmente quando identifico um novato.

Você já deve imaginar o tamanho da surpresa que foi receber a resposta dele.

Eu mandei a seguinte resposta para ele:

Então hora de começar a aprender amigo. 
Também sou autodidata, trabalho desde meus 16 anos, e NUNCA tive instrução
Então, melhor aprender a identificar críticas construtivas se quer evoluir como profissional e ser humanoA crítica não foi feita para te humilhar, muito pelo contrárioE se não tem a humildade de ver quando estão te dando instruções para melhorar, então peço desculpas.
Não te aborrecerei novamente
Te desejo tudo de melhor 👍🏻

Neste texto eu vou expandir a resposta original que enviei para ele. Infelizmente não é a primeira vez que vejo este tipo de comportamento em alguém. E mais infelizmente ainda, ele não leu minha resposta, pois mandou a mensagem e em seguida me bloqueou no Telegram, até mesmo apagou a publicação dele no grupo saindo do grupo em seguida.

Breve história sobre mim

Quem já leu uma breve entrevista minha no Training Center sabe quem sou e como comecei minha carreira. Mas vou resumi-la aqui:

Trabalho desde meus 16 anos, não fiz faculdade e conheci as comunidades de desenvolvimento muito tarde. Mas se hoje sei de alguma coisa, foi graças a caras como Vitor Mattos e Raphael Almeida que me mostraram que o mundo é maior do que as linhas de código que eu escrevo.
Mais tarde graças ao Professor Fabio Vedovelli conheci o Laravel e desde então não consigo sair de perto das comunidade de desenvolvimento. Hoje tenho muito orgulho de dizer que tenho o Vedovelli como um grande amigo e parceiro de projetos.

Tudo isso e mais consegui graças ao apoio das comunidades, posso até ser autodidata, mas eu não teria metade do conhecimento que tenho hoje sem a comunidade.

Como diz o ditado, juntos somos mais fortes.

Geração mi-mi-mi?

Longe de mim dar uma de antropólogo, nem de sabichão, to novo demais (apesar dos pesares…) para isso. Porém se mostra evidente que há uma grande massa de pessoas que não tolera nenhuma opinião ou ação contraria aquilo que assumem como verdade ou correto.

Este não foi o primeiro caso que presenciei, muito menos será o último. Conheço muitas pessoas que se afastam completamente das comunidade por causa de pessoas como nosso amigo fulaninho.

Este é um problema de várias causas e sintomas… Honestamente não faço ideia de como poderemos ter futuro como nação ou como humanos, se mais pessoas pensarem e agirem como fulaninho.
Imagine o que fulaninho faria quando seu chefe criticar alguma coisa no seu trabalho, ou se um erro dele custar um cliente ou muito prejuízo para a empresa!?

Seu código pode custar mais caro do que você imagina

Somos diretamente responsáveis pelo impacto que nosso código gera.

Nosso código faz parte do nosso legado. Você sai da empresa ou do projeto, mas seu código fica. E com o Git da para saber exatamente quem fez aquele código.

Porém nem precisamos ir tão longe, se você não faz um código bem feito você pode gerar um bug. E bugs podem custar muito caro, seja em valor monetário ou até mesmo a vida de uma pessoa.

Você pode argumentar: “o projeto não é importante ou grande para eu me preocupar com isso.”
Eu te respondo: “e quando você precisar, vai saber fazer?”

Sem que isso faça parte do seu dia-a-dia não é possível aplicar boas práticas quando elas forem necessárias. Boas práticas são necessárias sempre, e sem prática é inviável aplica-las.

Ouvir faz parte do aprendizado

Não se trata de alguém “mais velho” passando uma “lição de moral”.
Se trata de um profissional mais experiente passando a experiência dele para frente. Não há nenhuma obrigação de que quem escuta essas dicas deve segui-las.

Porém é sinal de maturidade aproveitar essa experiência para evitar que se caia nos mesmos erros, ou quando cair, saber como sair deles. Vão existir aqueles babacas, que vão dizer e fazer babaquices, entretanto com o tempo também se aprende a conviver e evita-los.

O Importante é funcionar #SQN

Há uma vertente de pensamento no desenvolvimento de software que prega faz tempo: “o importante é funcionar”.
Gambiarra todos já fizeram ou fazem, é natural, acontece. Entretanto ela deve ser a exceção, não a regra. Há excelentes vídeos do Filipe Deschamps que abordam esse assunto.

Nosso aprendizado é um processo constante, na área de desenvolvimento de software nunca paramos de aprender de evoluir. Se você olhar para seu código de dois meses no passado e não ver “problemas” nele, é um péssimo sinal. Sinal que você não esta evoluindo.

Seja humilde, busque constantemente por conhecimento, por dicas… Cole em outros devs em comunidades de devs. Participe, seja ativo, dê sua opinião fale sobre suas experiencias e dúvidas, você ajuda não apenas a si mesmo, mas também a comunidade.

Se quiser saber mais sobre meu trabalho, visite codecasts.com.br. Lá você vai ver vídeos sobre JavaScript, jQuery, Gulp, ES6, Vue.JS, Docker, e muito mais.
Também não deixe de seguir nosso blog blog.codecasts.com.br

that’s all folks

--

--

Vinicius Reis
Training Center

Fiquei sem meus peões, meu cavalo, minha torre, meu bispo… E até a rainha… Mas ainda é muito cedo para um xeque-mate. Roy Mustang — Fullmetal Alchemist