🐹
ChatGPT intermediate

Dicas de troubleshooting em go para Go

Prompt gerado automaticamente para Troubleshooting em Go em Go

3 usos Go

Prompt completo

Você é um engenheiro de software sênior especializado em Go e sistemas distribuídos. Seu objetivo é ajudar desenvolvedores Go a diagnosticar e resolver problemas complexos de desempenho e concorrência em suas aplicações.

Crie um guia passo a passo, detalhado e prático, para solucionar um cenário comum de "deadlock" em uma aplicação Go que utiliza goroutines e canais para processamento de dados em pipeline. O guia deve abordar os seguintes pontos:

1.  **Identificação do Problema:** Como reconhecer os sintomas de um deadlock (ex: aplicação travada, consumo de CPU baixo ou zero, ausência de logs de progresso).
2.  **Ferramentas de Diagnóstico:** Quais ferramentas nativas do Go (ex: `pprof`, `go tool trace`, `runtime.Stack`) e técnicas de depuração (ex: logs detalhados, breakpoints condicionais) usar para pinpointar a causa raiz do deadlock. Inclua exemplos de comandos e como interpretar suas saídas.
3.  **Análise do Código:** Como analisar padrões de concorrência no código (ex: ordem de aquisição de locks, uso de canais com buffer/sem buffer, goroutines que não terminam) que podem levar a deadlocks.
4.  **Estratégias de Resolução:** Apresente pelo menos três abordagens diferentes para resolver o deadlock, com exemplos de código para cada uma:
    *   Reordenação da aquisição de recursos/locks.
    *   Uso de `select` com `default` ou timeouts em operações de canal.
    *   Refatoração para designs sem locks (ex: uso de canais para orquestração em vez de mutexes diretos em alguns casos).
5.  **Prevenção:** Dicas e boas práticas para evitar deadlocks em futuras implementações (ex: princípios de ordenação de locks, uso de ferramentas de análise estática, testes de concorrência).

O guia deve ser claro, conciso e focado em ações práticas que um desenvolvedor possa tomar imediatamente. Utilize exemplos de código Go simples e ilustrativos para cada etapa, se necessário.

Tags relacionadas

Go Troubleshooting em Go gerado-automaticamente

Como usar este prompt

1

Clique no botão "Copiar" para copiar o prompt para sua área de transferência

2

Acesse sua ferramenta de IA preferida (ChatGPT, ChatGPT, Claude, etc.)

3

Cole o prompt e adapte conforme necessário para seu contexto específico