image

Accede a bootcamps ilimitados y a más de 650 cursos

50
%OFF
Matheus Oliveira
Matheus Oliveira30/05/2025 18:05
Compartir
WEX - End to End EngineeringRecomendado para tiWEX - End to End Engineering

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.

Compartir
Recomendado para ti
TONNIE - Java and AI in Europe
Microsoft - Azure Administrator Certification (AZ-104)
WEX - End to End Engineering
Comentarios (1)
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!

Recomendado para tiWEX - End to End Engineering