Pular para o conteúdo principal

Já complicou a solução para ficar divertida?

Já complicou a solução para ficar divertida?

Fala, pessoal, tudo bem com vocês?

Em uma das conversas que tive com o Michel fundador da Jaya ele disse a seguinte frase:

 — De vez em quando, os programadores pegam algo simples e aumentam a complexidade para ficar divertido.

Bom, neste artigo quero compartilhar com vocês uma coisa que fiz certa vez que vai de encontro com isto.

Quando aprendi Generics com C# em 2012–2013, eu pensei: por que não construir uma solução inteira com Generics, afinal tudo acabava sendo mesmo um grande CRUD no contexto que eu trabalhava. Bom, comecei essa empreitada na época em que já se falava e usava DDD. Com a ajuda de um artigo que vou compartilhar no final, consegui criar essa solução que, até então, achava genial. O ponto complicado é que o genial nem sempre é o simples, afinal você adicionou complexidade em uma coisa simples. Na época, a equipe em que eu trabalhava tinha 1 desenvolvedor SR e os demais Juniors e Plenos. O desenvolvedor SR olhou e disse: “Leco, a solução está muito bacana, mas acho que a equipe que temos vai sofrer muito com essa solução, ela está complexa demais”. Na hora, doeu um pouco escutar isso. Eu era muito apegado ao que fazia e senti que a vida do meu filho corria risco. Mas senti que o que ele estava falando tinha relevância e fazia sentido. Então, chamei nosso Dev mais recente e disse:

 — Eu quero que você crie uma tela para a entidade de produtos.

À primeira vista, foi um sucesso. Ele adicionou uma entidade no domínio e simplesmente criou-se a tela, a tabela no banco de dados e o service. Pensei: bom, talvez tenha sido só impressão dele, acho que ficou no geral bem simples fazer as coisas. E adivinha? A tela do produto precisava ter alguns comportamentos e 💣boom💣, não foi tão fácil assim. Pelo contrário, tudo que se fazia parecia gambiarra e, de fato, alguns eram.

Agora, um comparativo: essa solução toda com Generics eu levei mais de 1 mês para deixá-la funcionando, era meu projeto em paralelo, a princípio de estudo também, e para montar o CRUD que atenderia à necessidade do projeto eu levei apenas 3 dias, pois já tínhamos muitas coisas prontas que precisamos apenas adicionar no projeto.

O que eu aprendi:

  • Não tente fazer tudo absolutamente sozinho, compartilhe logo no início e pegue os feedbacks da sua equipe.
  • Cuidado com as complexidades divertidas que você adiciona ao seu projeto.
  • O divertido a longo prazo pode ser mais cansativo do que pensa. Já pensou se eu tivesse que fazer sempre um monte de gambiarra para cada tela nova que devesse ter comportamentos distintos?
  • Divertido para você muitas vezes não é para todos.

Dicas

Com o tempo acabei encontrando um artigo sobre Zen Python, extrai da lista 4 princípios que acredito que ajudam muito quando estamos desenvolvendo, espero que te ajude também.

  • Bonito é melhor que feio.
  • Explícito é melhor que implícito.
  • Simples é melhor que complexo.
  • Complexo é melhor que complicado.

Bom pessoal espero que você tenha se divertido assim como eu relembrando o passado, grande abraço.

Links


Comentários

Postagens mais visitadas deste blog

Resumo e Análise do Livro "Nascido Escravo", de Martinho Lutero

  Introdução Paz e graça, meus irmãos. Hoje eu gostaria de trazer para vocês um resumo, mas acima de tudo, uma análise do livro Nascido Escravo , de Martinho Lutero, editado por Clifford Pond e publicado pela Editora Fiel. Confesso que, ao iniciar a leitura desse livro, deparei-me com alguns conceitos que já havia encontrado no livro Os Cinco Pontos do Calvinismo , representados pelo acrônimo TULIP. Martinho Lutero inicia esta obra como uma resposta a algumas publicações feitas por Erasmo de Rotterdam. Erasmo defendia o livre-arbítrio, enquanto Lutero se opunha a essa ideia. Mas quais eram as bases para essa oposição? A primeira pergunta que encontramos logo no início do livro é: pode um ser humano, voluntariamente e sem qualquer ajuda, voltar-se para Cristo? Refletindo sobre essa questão e prosseguindo na leitura, percebi claramente o que Lutero queria expressar. Ora, se o ser humano, por sua própria capacidade mental e intelectual, fosse capaz de voltar-se a Deus, reverenciá-Lo e...

Josias: Um Exemplo de Restauração e Obediência

A Paz, meus irmãos! Hoje gostaria de compartilhar com vocês uma reflexão sobre Josias, um dos reis que realizou ações emblemáticas em Israel. Sua história é narrada com profundidade no Segundo Livro de Reis, e suas atitudes são um exemplo poderoso de restauração espiritual e obediência à vontade de Deus. Vamos explorar o contexto histórico e as lições que podemos aprender com esse grande líder. O Contexto Histórico dos Reis de Israel Para entender a importância de Josias, precisamos voltar um pouco na história dos reis de Israel: Saul foi o primeiro rei, reinando por quase 40 anos. Esbozete, seu filho, reinou por aproximadamente 7 anos. Davi governou por 40 anos, seguido por Salomão, que também reinou por 40 anos. Apesar de Davi ser um homem segundo o coração de Deus (1 Samuel 13 … e versículo 14), ele permitiu que práticas pagãs começassem a se infiltrar em Israel. Salomão, por sua vez, se corrompeu ao final de seu reinado, introduzindo idolatrias e outros costumes abomináveis (1 Reis...

Arquitetura de Computadores: Lembranças de um Fundamento Esquecido

Introdução: Um olhar para trás para entender o agora Talvez esteja ficando cada vez mais raro, mas vale a pena perguntar: você já parou para refletir sobre como o computador realmente funciona por dentro? Quando comecei meus estudos na área de tecnologia, por volta de 2008, um dos primeiros tópicos que exploramos era a estrutura e arquitetura dos computadores. Isso não era por acaso — era essencial entender como o hardware e o software se relacionavam. Muitas vezes, um simples programa precisava ser compilado e executado na mesma máquina, com a mesma arquitetura, para funcionar corretamente. Não havia tanta abstração como temos hoje. Recentemente, ao iniciar o curso de Ciência de Dados na Univesp, tive a oportunidade de revisitar esse tema. E me surpreendi ao perceber como muitos conceitos fundamentais continuam relevantes, apesar de estarem, em muitos casos, esquecidos no dia a dia de quem desenvolve software. Este artigo é um convite a revisitar esses fundamentos. Vamos juntos re...