Executando verificação de segurança...
6

Eu sei o que é DDD

Mas sabe implementar? Sabe quais são as regras? os fundamentos? ou só o que se vê em vídeo de youtuber?

Pega o livro e leia, estude, implemente em um projeto seu

e hoje eu cheguei no ponto em que já ensinei tanto a IA sobre o meu trabalho que, só de eu passar a documentação da task, ela faz tudo pra mim.

Essa frase reflete que você não está criando uma coisa nova, só repetindo o mesmo várias e várias vezes.

Se a IA consegue fazer tudo que você faz, qual o seu real valor?

Qual o caminho pra ser um sênior de verdade?

Um sênior de verdade sabe como as ferramentas funcionam, e não só usar elas.

  • Qual banco de dados é melhor para um projeto específico? e porque?
  • Qual arquitetura é melhor pra esse projeto?
  • Qual padrão de projeto pode ser utilizado para resolver um problema?
  • Como usar a melhor forma de cache no projeto (cache em memória, cache distribuída)
  • Qual a melhor técnica de ler uma tarefa em paralelo?
  • Qual a melhor estratégia de autenticação e autorização para cada projeto?

São diversas perguntas, diversos caminhos, não tem uma fórmula mágica.

exemplos que eu uso no dia a dia e um pleno mediano não usaria naturalmente:

  • Cursor ao ler muitos dados no banco de dados
  • Separar leitura e processamento de um arquivo grande em threads diferentes (1 thread lê o arquivo para a memória, 1 ou mais threads processam cada linha desse arquivo)

Resposta do Claude

Prompt: Quais são os conhecimentos básicos de um dev sênior em C#?
Um desenvolvedor sênior em C# deve dominar uma ampla gama de conceitos técnicos e arquiteturais. Aqui estão os conhecimentos fundamentais:
Fundamentos da Linguagem
Tipos e Conceitos Avançados: Domínio completo de tipos de valor vs referência, boxing/unboxing, generics com covariância e contravariância, delegates, events, expressões lambda, e LINQ (sintaxe de consulta e método).
Programação Assíncrona: Proficiência em async/await, Task Parallel Library (TPL), tratamento de exceções assíncronas, configuração de contexto de sincronização, e padrões para evitar deadlocks.
Gerenciamento de Memória: Compreensão do Garbage Collector (gerações, modos de coleta), IDisposable pattern, finalizers, spans e memory para alta performance, e técnicas para evitar memory leaks.
Design e Arquitetura
Princípios SOLID: Aplicação prática dos cinco princípios para código manutenível e escalável.
Padrões de Design: Conhecimento de padrões GoF (Factory, Strategy, Observer, Decorator, etc.), padrões de arquitetura (Repository, Unit of Work, CQRS), e quando aplicá-los apropriadamente.
Clean Architecture: Separação de responsabilidades em camadas, inversão de dependências, e design orientado a domínio (DDD).
Frameworks e Tecnologias
ASP.NET Core: Desenvolvimento de APIs REST, middleware pipeline, dependency injection, configuração, autenticação/autorização (JWT, OAuth), e performance tuning.
Entity Framework Core: Mapeamento objeto-relacional, migrações, consultas otimizadas, relacionamentos, lazy loading vs eager loading, e estratégias para evitar problemas de N+1.
Testes: Unit testing (xUnit, NUnit, MSTest), mocking (Moq), integration testing, e práticas de TDD/BDD.
Conhecimentos Adicionais
Segurança: Validação de entrada, proteção contra injeções SQL e XSS, criptografia, hashing de senhas, e princípios de least privilege.
Performance e Otimização: Profiling de aplicações, identificação de gargalos, otimização de consultas, caching strategies (in-memory, distributed), e uso eficiente de recursos.
Versionamento e Deploy: Git avançado, CI/CD pipelines, containerização com Docker, e práticas de DevOps.
Habilidades Soft: Mentoria de desenvolvedores júnior/pleno, code review eficaz, comunicação técnica clara, e capacidade de tomar decisões arquiteturais fundamentadas considerando trade-offs.
Um sênior também deve estar atualizado com as novidades do .NET (atualmente .NET 8/9), compreender microserviços, message brokers (RabbitMQ, Kafka), e ter experiência prática resolvendo problemas complexos em produção.

O próprio Claude, com um prompt bem mal feito deu um monte de ideias do que estudar.

me perguntaram um monte de coisa que eu sabia do que se tratava

Mas e aí, você jáfoi atrás de estudar? ou vai continuar sendo um pleno mediano pro resto da vida?

Carregando publicação patrocinada...
1

Da em média uns 2, 3 meses em cada um dos conceitos acima. Arquitetura e Design agora se tornam mais do que importantes dado que as IA já fazem o trabalho mais chato, agora para saber se o que ela implementou é bom ai ter esses conhecimentos mais amplos é essencial.

4

Da em média uns 2, 3 meses em cada um dos conceitos acima.

Depende de quanto você se dedicar.

agora para saber se o que ela implementou é bom

Não é só saber se é bom, é saber melhorar também.

Lembrei que pedi pra IA criar um componente de calendário em que pode selecionar os dias. O copilot gerou um componente de 270 linhas.

LOTADO de useEffect, useMemo, useCallback, propriedades desnecessárias.

Fui retirando tudo que não era necessário, agrupando os hooks em um só quando eles deveriam executar juntos.

Basicamente refiz o compnente usando o gerado como base

deu 70 linhas.

Esse Trabalho jamais vai ser substituído por IA

"Ah mas diminuir a quantidade de linhas é irrelevante" Não foi só isso

  • O código anterior estava tão complexo que chegava ser ilegível, ninguém ia conseguir dar manutenção
  • Sobrecarregar com o uso de hooks em um componente não faz diferença, em centenas de componente começa degradar a performance, consumir mais banda e bateria dos dispositivos (isso a IA não pensa)
  • O código novo faz somente o que foi proposto, direto ao ponto, sem firula, sem rodeio