Negocio

Mapeando código usando contornos e fluxogramas

Esboços e fluxogramas

Nesta lição, vamos explorar o uso de contornos e fluxogramas para mapear como nosso código terá que fluir ou funcionar. Um esboço é um plano para uma abordagem a um projeto ou problema. Normalmente pensamos em esboços em conexão com um trabalho de conclusão de curso ou como um resumo de um documento. Também é um excelente ponto de partida para qualquer projeto de codificação, incluindo o meu.

Um fluxograma é uma representação gráfica de um processo. Você pode usar um esboço, um fluxograma ou ambos. Por exemplo, você pode começar com um esboço e, em seguida, usá-lo para construir um fluxograma. Seu chefe pode ter preferência por um ou outro para documentar seu programa, por isso é importante conhecer os dois!

Mapeando o Projeto

Vamos ver como os contornos e fluxogramas podem nos ajudar com nosso projeto de codificação. Fred, o dono da Pancake House, me contratou para programar Foobar, um robô que substituirá Sue, sua cozinheira aposentada.

Portanto, para o projeto, desenhei um fluxograma de atividades simples. Usei-o para começar a construir o código para a demonstração do protótipo que meu robô, Foobar, fez para Fred. Foi bastante simplificado, com apenas quatro atividades:

  1. Verifique a grelha
  2. Despeje a massa da panqueca
  3. Vire as panquecas
  4. Coloque as panquecas

Um fluxograma de atividades simples para o projeto Foobar.
Fluxograma de mapeamento de projeto

Como meu objetivo era apenas demonstrar que era possível para meu robô, Foobar, cozinhar panquecas, não me preocupei em fazer nenhum dos diferentes sabores de panqueca do menu ou cozinhar ovos ou bacon. E, depois de uma falha ou duas, conseguimos e Fred ficou animado.

Mas, ainda havia muito trabalho a ser feito para fazer Foobar corresponder às expectativas de Fred de um bot de grelha competente. Eu tinha mais pesquisas para fazer para que pudesse começar a obter mais detalhes sobre o que eu precisava codificar. Voltei para a Pancake House e passei mais tempo com Sue, a cozinheira prestes a se aposentar. Eu precisava ter uma compreensão melhor e mais específica de como ela administrava todos os pratos em um pedido e como administrava vários pedidos. Acabei com alguns fluxogramas de modelo de atividade séria e estava confiante de que poderia trabalhar com eles para criar o bot de grelha competente ideal. Comecei com um esboço.

Contornos

Um esboço é um plano ou abordagem para um problema ou projeto. Geralmente pensamos em um esboço como o ponto de partida para um trabalho de conclusão de curso ou livro. Vamos ver como migrei dos novos fluxogramas de atividades que desenhei (depois de passar mais tempo com Sue) para um esboço do projeto.

A próxima pergunta lógica para o projeto parece ser: a Foobar pode fazer um pedido completo para um cliente? Isso é mais complicado do que apenas fritar algumas panquecas, mas ainda é muito menos complicado do que fazer um pedido completo para uma mesa de quatro. E isso, por sua vez, é muito menos complicado do que gerenciar todos os pedidos de todos os clientes da Pancake House!

Você pode ver que este modelo de atividade ainda é muito simples:


Fluxograma de fim de atividade para o projeto Foobar
fluxograma do modelo de atividade

Não fazemos nenhum loop até chegarmos ao ponto de realmente cozinhar algo. E por enquanto, estou fingindo que nunca ficamos sem ovos ou bacon de repente. Essa parte, conhecida como tratamento de erros, vem depois.

Então, Sue obtém o pedido de um item do menu. Ela lê e pega tudo o que precisa para fazer, incluindo quaisquer extras para as panquecas, como frutas ou chantilly. Em seguida, ela prioriza os itens que deve fazer. Embora algumas coisas demorem mais para cozinhar do que outras, tudo tem que estar pronto para o prato ao mesmo tempo. Então, quando alguém pede o Aperitivo do Lenhador (panquecas, ovos, linguiça, bacon ou presunto e batatas fritas), as batatas fritas devem ser iniciadas primeiro porque são mais demoradas. Sue tem que descobrir a sequência para cozinhar os itens, para que saiam ao mesmo tempo.

Então, assim como Sue, quando Foobar iniciou o último item, ele deve voltar para o primeiro e verificar se precisa ser girado ou virado ou se já está feito. Se for necessário invertê-lo, vire-o e vá para o próximo item. Caso contrário, vá para o próximo item. Se estiver pronto, retire e aplique uma placa. Partindo do princípio de que todos os itens foram priorizados e iniciados corretamente, todos eles devem sair da grelha e ir para o prato em sequência rápida. Assim que estão no prato, Sue enfeita o prato, coloca-o na mesa e chama o garçom.

Vamos traduzir isso em um esboço. Uma maneira de começar é fazer uma lista de cada atividade no fluxograma:

  • Pegue o pedido
  • Leia o pedido
  • Consiga ingredientes para panquecas
  • Obtenha itens colaterais para pedido
  • Priorize os itens do pedido (o que demorar mais, comece primeiro)
  • Misture massa de panqueca com extras
  • Comece cada item em ordem de prioridade
  • Verifique cada item
  • Vire ou gire conforme necessário
  • Continue verificando até que todos os itens sejam concluídos
  • Pratos
  • Enfeitar itens
  • Configure o pedido
  • Ligue para o servidor

Assim que tivermos isso, podemos começar a adicionar detalhes. Há um pouco mais de atividade que precisa acontecer entre ‘ler o pedido’ e pegar os ingredientes para as panquecas e acompanhamentos:

  • Leia o pedido
  • Verifique o menu
  • Pegue as receitas
  • Crie uma lista de ingredientes para o pedido
  • Verifique se os ingredientes estão disponíveis
  • Se estiver acabando, configure o prepper mais
  • Consiga ingredientes para panquecas
  • Obtenha itens colaterais para pedido

E, esse é o novo material. Você continua expandindo o esboço até cobrir tudo o que precisa ser codificado.

Fluxogramas

Cada programador tem sua própria abordagem. Alguns gostam de usar o formato de esboço. Alguns preferem trabalhar com fluxogramas . Alguns gostam de fazer um esboço e usá-lo como o início de um fluxograma. Você pode descobrir que seu empregador tem uma preferência, por isso é importante entender as duas ferramentas!

Vamos dar uma olhada na aparência do fluxograma para a seção que acabamos de descrever:


A seção do fluxograma para esta parte do processo de pedido
fluxograma para informações resumidas

Começamos e vamos pegar o pedido. Em seguida, comparamos com o menu para ter certeza de que é algo no menu. Se não estiver no menu, Sue pode improvisar, mas não Foobar, então ele terá que recuperar o servidor.

A seguir, extraímos a receita de cada item, para que possamos fazer a lista dos ingredientes de que precisamos, e também determinar os tempos de cozimento de cada item para que possamos priorizar sua ordem de início. Depois de fazermos a lista de ingredientes, vamos buscá-los. Quando o fazemos, também verificamos se algo está acabando. Se for, pedimos ao preparador para configurar um pouco mais. Recolhemos os ingredientes e acabamos com esta pequena parte do processo.

Validação contínua

O processo de programação é uma conversa com seu cliente. Pode ser curto ou contínuo. No meu caso, quero voltar e verificar com Fred e Sue para ter certeza de que ainda estou no caminho certo. Vou guiá-los pelo processo conforme o entendo, passo a passo, usando meu fluxograma. Novamente, eles podem me dizer onde eu perdi coisas, fazer perguntas ou dar sugestões. E também posso oferecer sugestões. Se houver algo que eu possa sugerir que possa melhorar o negócio, eles podem se interessar.

Resumo da lição

Os programadores podem usar contornos ou fluxogramas para mapear como seu programa irá fluir. Um esboço é um plano para uma abordagem a um projeto ou problema. Um fluxograma é uma representação gráfica de um processo. Ele pode ser usado em vez de um esboço ou com base em um esboço que foi criado primeiro.

Assim que tivermos nosso fluxo de programa bem documentado, podemos começar a criar algo que se pareça com um código para nos ajudar a pensar sobre como realmente escrever nosso programa. Mas, antes de fazermos isso, precisamos entender as cinco coisas que você precisa para ser capaz de codificar para que seu programa possa realmente fazer algo! Faremos isso na próxima lição.

Resultado de aprendizagem

Depois de assistir a este vídeo, você será capaz de explicar como os programadores usam contornos e fluxogramas.