Estratégias de debugging em code review em Code Review

Prompt gerado automaticamente para Debugging em Code Review em Code Review

5.0
42 usos
ChatGPT
Usar no ChatGPT
"Você é um engenheiro de software sênior especializado em depuração de código Python. Um colega júnior submeteu um pull request para uma nova funcionalidade, e durante o Code Review, você identificou um bug sutil relacionado a uma condição de corrida em um trecho de código assíncrono.

O trecho de código problemático é o seguinte:

```python
import asyncio

class UserProcessor:
    def __init__(self):
        self.processed_count = 0
        self.lock = asyncio.Lock()

    async def process_user_data(self, user_id):
        # Simula uma operação I/O demorada
        await asyncio.sleep(0.1) 
        
        # AQUI ESTÁ O TRECHO PROBLEMÁTICO
        async with self.lock:
            # Lógica que deveria ser atômica
            current_count = self.processed_count
            await asyncio.sleep(0.01) # Simula um pequeno atraso dentro da seção crítica
            self.processed_count = current_count + 1
        return f"User {user_id} processed."

async def main():
    processor = UserProcessor()
    users_to_process = range(10)
    tasks = [processor.process_user_data(user_id) for user_id in users_to_process]
    await asyncio.gather(*tasks)
    print(f"Total processed users: {processor.processed_count}")

if __name__ == "__main__":
    asyncio.run(main())
```

**Sua tarefa é:**

1.  **Identificar e explicar** detalhadamente a condição de corrida presente no código e por que o `asyncio.Lock` não a resolve completamente neste cenário específico.
2.  **Propor uma solução** para corrigir o bug, modificando o trecho de código problemático de forma concisa e eficiente.
3.  **Justificar a sua solução**, explicando como ela garante a atomicidade da operação e previne a condição de corrida.
4.  **Fornecer um exemplo de teste** simples (não necessariamente um teste unitário formal, mas um trecho de código executável) que demonstre que a sua correção funciona conforme o esperado,

Como Usar este Prompt

1

Clique no botão "Copiar Prompt" para copiar o conteúdo completo.

2

Abra sua ferramenta de IA de preferência (ChatGPT e etc.).

3

Cole o prompt e substitua as variáveis (se houver) com suas informações.

Compartilhe

Gostou deste prompt? Ajude outras pessoas a encontrá-lo!

Outros prompts de Code Review

Continue explorando prompts nesta categoria.

Melhores práticas de casos de uso práticos em code review para Code Review

Prompt gerado automaticamente para Casos de uso práticos em Code Review em Code Review

Guia para troubleshooting em code review em Code Review

Prompt gerado automaticamente para Troubleshooting em Code Review em Code Review

Guia para melhores práticas em code review em Code Review

Prompt gerado automaticamente para Melhores práticas em Code Review em Code Review