image

Acesse bootcamps ilimitados e +650 cursos pra sempre

60
%OFF
Matheus Oliveira
Matheus Oliveira30/05/2025 18:05
Compartilhe

O que realmente torna alguém um bom desenvolvedor?

  • #.NET
  • #Boas práticas
  • #C #

Ser um bom desenvolvedor não é só saber C#, usar .Where() ou conhecer o último recurso do .NET. O que realmente diferencia bons profissionais é como eles pensam, como estruturam seus projetos e como conseguem escrever código que continua funcionando e sendo entendido meses ou anos depois.

Todo sistema começa simples… até que não é mais. E é nesse momento que se revela quem escreveu pensando no futuro e quem apenas quis "fazer funcionar".

1. Organização: pensar na arquitetura antes do código

Um bom desenvolvedor sabe que cada linha escrita hoje é dívida técnica em potencial amanhã, e que todo código só se justifica se for fácil de manter, testar e adaptar.

Mesmo em tarefas simples, bons profissionais se perguntam:

  • Onde essa lógica realmente deveria estar?
  • Essa classe tem mais de uma responsabilidade?
  • Meu código está acoplado a detalhes técnicos (como banco de dados, e-mail, API externa)?

Essa preocupação leva à prática da separação de responsabilidades e à organização em camadas lógicas como domínio, aplicação e infraestrutura mesmo sem usar um framework pesado.

Isso não é sobre usar “Clean Architecture” porque está na moda. É sobre entender os limites do seu sistema e tornar seu crescimento saudável.

2. Testabilidade: projetar código previsível, mesmo sem testes automatizados

Testes são importantes. Mas antes de falar em testar, precisamos falar em escrever código que permite ser testado.

Isso significa:

  • Reduzir dependências diretas
  • Tornar comportamentos previsíveis
  • Evitar efeitos colaterais ocultos

Mesmo sem frameworks de teste, um código testável é mais claro, mais coeso e menos frágil. Essa clareza se reflete em manutenção mais simples e menos bugs em produção.

Código testável é, essencialmente, código bem pensado.

3. Decisão técnica consciente: usar o recurso certo na hora certa

Conhecer os recursos modernos do C# como record, pattern matching, Span<T>, async streams é ótimo.

Mas um bom desenvolvedor usa esses recursos com propósito, não para “mostrar que sabe”.

Saber escolher entre:

  • um ORM ou SQL manual
  • uma classe nova ou reutilização
  • um padrão sofisticado ou uma solução direta

…é mais valioso do que decorar a linguagem.

A maturidade está menos em "saber tudo" e mais em escolher bem, com base no contexto do projeto.

4. Clareza: escrever para humanos, não para o compilador

Todo bom desenvolvedor entende que escrever código é uma forma de comunicação com outras pessoas.

Mesmo quando se trabalha sozinho, é o “você do futuro” que terá que ler, entender e dar manutenção naquele código.

Por isso, é essencial:

  • Escolher nomes descritivos
  • Dividir métodos em pequenas unidades de responsabilidade
  • Evitar "gambiarras inteligentes" que só o autor entende
  • Comentar quando for realmente necessário, mas preferir código autoexplicativo
  • Clareza é uma forma de respeito com o time, com a empresa e com o próprio trabalho.

5. Manutenção acima da entrega rápida

A maior parte do tempo de vida de um software não está no seu desenvolvimento inicial, mas na manutenção.

Muitos desenvolvedores focam demais na entrega e esquecem que:

  • código entregue às pressas vira retrabalho
  • atalhos hoje geram problemas amanhã
  • uma estrutura bem feita hoje permite que o sistema cresça sem colapsar

É claro que prazos existem. Mas o bom profissional concilia entregas com organização, mesmo sob pressão. Isso exige priorização, diálogo com o time e visão sistêmica.

No fim de tudo o que torna alguém um bom desenvolvedor não é a fluência em C# ou domínio do último recurso do .NET, ou mesmo qualquer outra linguagem de programação, no fim importa mais a mentalidade com que se escreve e mantém o código.

Essa mentalidade inclui:

  • Pensar arquitetonicamente, mesmo em projetos pequenos
  • Escrever código testável e claro, mesmo sem testes formalizados
  • Tomar decisões técnicas com equilíbrio e intenção
  • Manter foco na comunicação e manutenção do código
  • Usar a linguagem como uma ferramenta de clareza, não como vitrine de conhecimento

Essas são atitudes que se aplicam a qualquer linguagem, time ou cenário e que definem a diferença entre apenas programar e realmente desenvolver software.

Compartilhe
Recomendados para você
Ri Happy - Front-end do Zero #2
Avanade - Back-end com .NET e IA
Akad - Fullstack Developer
Comentários (4)
Matheus Oliveira
Matheus Oliveira - 04/06/2025 19:02

Muito obrigado pelo feedback, Dio Community!

Sobre sua pergunta, na minha experiência, o maior desafio não é exatamente o prazo em si é o custo invisível da má decisão que não aparece no curto prazo.

Muitas vezes, o desenvolvedor até sabe que está fazendo um "remendo", mas o impacto disso só vai surgir depois que aquele código já estiver em produção e for tocado por outras pessoas. Como o efeito é retardado, a escolha errada parece “gratuita” no momento. Esse tipo de dívida técnica silenciosa é o que mais dificulta equilibrar entrega e manutenção. Não é só sobre escrever rápido ou devagar, mas sobre entender que todo código vira legado mais rápido do que imaginamos e escrever algo que o nosso "eu do futuro" ou o time consiga lidar bem.

Uma prática que tento adotar é pensar: “Esse código que estou escrevendo agora conseguiria ser entendido por alguém que nunca me viu, daqui a 6 meses?”

Se a resposta for não, vale desacelerar e repensar. Isso economiza muito tempo depois.

Matheus Oliveira
Matheus Oliveira - 04/06/2025 19:00

Valeu demais, Arthur!

Essa urgência constante que a gente vive, tanto na tecnologia quanto na sociedade como um todo, às vezes nos impede de fazer as escolhas certas com calma. Pensar a longo prazo parece “luxo”, mas no fim é o que sustenta qualquer sistema saudável.

Adorei a conexão filosófica. No fundo, escrever código bem feito é uma forma de resistir ao imediatismo, né?

Arthur Soares
Arthur Soares - 31/05/2025 12:07

Você aborda um tema bastante interessante que talvez eu generalizasse como falta de planejamento, pensar a longo prazo, antever possíveis consequências de nossas atitudes atuais etc..., que é uma efeito de nossa sociedade imediatista (já indo pro campo filosófico). Tem uma uma frase que é atribuida a Abraham Lincoln que diz:

“Se eu tivesse 8 horas para cortar uma árvore, gastaria 6 horas afiando meu machado"

Se trouxermos isso pra hoje em dia, você imagina como seria essa frase. Excelente tema!

DIO Community
DIO Community - 02/06/2025 15:26

Excelente, Matheus! Seu artigo aborda com profundidade e clareza o que realmente torna alguém um bom desenvolvedor, indo muito além do conhecimento técnico em C# ou .NET. É inspirador ver como você destaca a importância da mentalidade, organização e visão de futuro na escrita de código.

Considerando que a maior parte do tempo de vida de um software não está no seu desenvolvimento inicial, mas na manutenção, qual você diria que é o maior desafio para um desenvolvedor ao tentar conciliar prazos de entrega com a necessidade de escrever código de fácil manutenção?