Skip to content

Instantly share code, notes, and snippets.

@jonataa
Created June 24, 2025 13:22
Show Gist options
  • Select an option

  • Save jonataa/0026d3fd9f956783ee05b1414bb40044 to your computer and use it in GitHub Desktop.

Select an option

Save jonataa/0026d3fd9f956783ee05b1414bb40044 to your computer and use it in GitHub Desktop.
Desafio de Live Coding: Gerenciador de Tarefas Simplificado

Desafio de Live Coding: Gerenciador de Tarefas Simplificado


Olá! Seja bem-vindo ao nosso desafio de live coding. Este exercício foi desenhado para nos ajudar a entender sua forma de pensar e suas habilidades de programação na prática. Sinta-se à vontade para perguntar se tiver qualquer dúvida durante o processo.


Contexto

Vamos imaginar que estamos no início do desenvolvimento de um aplicativo de gerenciamento de tarefas. Para começar, precisamos da funcionalidade central: um sistema que possa adicionar, remover, listar e marcar tarefas como concluídas.


Seu Desafio

Sua tarefa é implementar um programa na linguagem de sua escolha que atenda aos seguintes requisitos:

  1. Adicionar Tarefa

    Crie uma função que permita adicionar uma nova tarefa à nossa lista. Cada tarefa deve ter:

    • Um ID único (pode ser um número sequencial simples ou o índice na lista para simplificar).
    • Uma descrição (texto).
    • Um status inicial de "pendente".
  2. Listar Tarefas

    Implemente uma função que mostre todas as tarefas cadastradas, exibindo seu ID, descrição e status atual.

  3. Marcar Tarefa como Concluída

    Crie uma função que, recebendo o ID de uma tarefa, altere seu status para "concluída". Se o ID não corresponder a uma tarefa existente, exiba uma mensagem de erro.

  4. Remover Tarefa

    Desenvolva uma função que, recebendo o ID de uma tarefa, a remova da lista. Assim como na função anterior, se a tarefa não for encontrada, exiba uma mensagem de erro.


O Que Observaremos

Além da funcionalidade principal, ficaremos atentos a alguns pontos importantes que demonstram seu raciocínio e boas práticas:

  • Escolha da Estrutura de Dados: Qual estrutura você usará para armazenar as tarefas (ex: lista de dicionários/objetos)? Sinta-se à vontade para justificar sua escolha.
  • Tratamento de Erros: Como você lida com situações como um ID inválido ou uma tarefa que não existe?
  • Organização do Código: Buscamos um código limpo, legível e bem estruturado, com funções claras e nomes de variáveis significativos.
  • Comunicação: Gostaríamos de ouvir seu processo de pensamento em voz alta. Compartilhe suas ideias, suas decisões e se tiver alguma dúvida. Não se preocupe em ser perfeito; o processo é mais importante.

Sinta-se à vontade para começar. Boa sorte!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment