"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Construindo um serviço de processamento de pedidos com ChatGPT (contribuir com esforços) e concluído em tempo hábil

Construindo um serviço de processamento de pedidos com ChatGPT (contribuir com esforços) e concluído em tempo hábil

Publicado em 2024-11-06
Navegar:279

Building an Orders Processing Service with ChatGPT (contribute  efforts) and Finished in ays

A IA contribuiu para mudar e aumentar a eficiência no meu trabalho diário

Como desenvolvedor, criar um serviço de processamento de pedidos às vezes pode parecer cansativo quando você tem um prazo limitado. No entanto, com o poder das ferramentas de desenvolvimento orientadas por IA, como ChatGPT, você pode acelerar significativamente o processo gerando código, projetando entidades e resolvendo problemas passo a passo. Neste artigo, explicarei como usei o ChatGPT para construir um serviço de processamento de pedidos totalmente funcional em apenas 2 dias, desde a coleta dos requisitos até a conclusão.

Honestamente, existem muitos pequenos tópicos e solicitações para pequenas tarefas diferentes que não consigo resumir em um projeto completo, mas no geral... isso me ajudou de 70 a 80%. Além disso, aqui está parte do código original, depois de revisá-lo, ele pode ter sido modificado manualmente, então você pode não encontrar esta função no github que compartilhei.

Dia 1: Noções básicas sobre requisitos e configuração

Etapa 1: reunir e esclarecer os requisitos

A primeira coisa que fiz foi listar os principais recursos necessários para o serviço. Aqui estão as principais funcionalidades que eu precisava:

  1. Registro do usuário: permite que os usuários se registrem usando seu número de celular e endereço.
  2. Pesquisa de localização de franquia: permite que os clientes visualizem e encontrem franquias de café próximas.
  3. Colocação de pedidos: os clientes podem fazer um pedido com vários itens de um menu.
  4. Gerenciamento de filas: rastreie a posição de um cliente em uma fila e forneça o tempo de espera esperado.
  5. Cancelamento de pedido: os clientes podem sair da fila e cancelar seu pedido a qualquer momento.

Etapa 2: gerar endpoints de API com ChatGPT

Pedi ao ChatGPT para me ajudar a projetar a estrutura da API para os requisitos. Aqui está um exemplo do primeiro prompt que usei:

Incitar:

Crie endpoints de API para um sistema de registro de usuários usando Spring Boot, onde os usuários podem se registrar com seu nome, número de celular e endereço.

Resultado: ChatGPT gerou vários endpoints:

  • POST /users/register: Para registrar um novo usuário.
  • GET /franchises/nearby: Para encontrar franquias de café próximas com base na latitude e longitude.
  • POST /orders: Para fazer um pedido com vários itens.
  • GET /orders/{orderId}/queue-position: Para verificar a posição do usuário na fila.
  • DELETE /orders/{orderId}: Para cancelar o pedido e sair da fila.

Etapa 3: design da entidade

Para o serviço de processamento de pedidos, precisávamos de entidades para Usuário, Franquia, Pedido, Fila e OrderItem. Usei ChatGPT para definir essas entidades com os campos necessários.

Incitar:

Projete a entidade Usuário para o sistema. O usuário pode ter um número de celular, endereço e uma função (como CLIENTE).

Resultado: ChatGPT forneceu uma entidade User simples usando JPA:

@Entity
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private UUID id;

    @Column(nullable = false, unique = true)
    private String username;
    @Column(nullable = false)
    private String password;
    private String mobileNumber;
    private String address;
    private UserRole role; // CUSTOMER, ADMIN
}

Repeti esse processo para as entidades Franquia, Pedido e Fila.

Dia 2: implementação da lógica de negócios

Etapa 4: lógica de colocação de pedidos

Depois que a API básica e as entidades foram configuradas, passei a implementar a lógica de negócios para a colocação de pedidos. Essa era a parte crítica do serviço, pois precisava lidar com vários itens do menu e gerenciar posições na fila.

Incitar:

Implementar a lógica de realização de pedido com múltiplos itens, onde cada item está vinculado a um menu específico da Franquia.

Resultado: ChatGPT me orientou no design de um OrderService para lidar com isso. Aqui está parte da implementação:

public Order createOrder(UUID customerId, UUID franchiseId, List items) {
    Order order = new Order();
    order.setCustomer(userRepository.findById(customerId).orElseThrow());
    order.setFranchise(franchiseRepository.findById(franchiseId).orElseThrow());

    List orderItems = items.stream()
        .map(itemDto -> new OrderItem(menuItemRepository.findById(itemDto.getMenuItemId()), itemDto.getQuantity()))
        .collect(Collectors.toList());
    order.setItems(orderItems);
    order.setQueuePosition(findQueuePositionForFranchise(franchiseId));
    return orderRepository.save(order);
}

Etapa 5: gerenciamento de filas

Em seguida, pedi ao ChatGPT para me ajudar a projetar a lógica para colocar um cliente na fila e rastrear sua posição.

Incitar:

Como posso calcular a posição na fila e o tempo de espera de um pedido em um sistema de franquia de café?

Resultado: ChatGPT sugeriu a criação de um QueueService que rastreia pedidos e atribui posições a eles com base em carimbos de data/hora. Eu implementei da seguinte maneira:

public int findQueuePositionForFranchise(UUID franchiseId) {
    List queue = customerQueueRepository.findAllByFranchiseId(franchiseId);
    return queue.size()   1;
}

Também forneceu orientação sobre como estimar o tempo de espera com base no tempo médio de processamento de pedidos.

Etapa 6: cancelamento do pedido

Finalmente, implementei a lógica para permitir que os clientes cancelem seus pedidos e saiam da fila:

public void cancelOrder(UUID orderId) {
    Order order = orderRepository.findById(orderId).orElseThrow();
    queueService.removeFromQueue(order.getQueue().getId(), order.getId());
    orderRepository.delete(order);
}

Finalizando o Projeto

No final do dia 2, eu tinha um serviço totalmente funcional que permitia aos clientes:

  • Registre-se usando seu número de celular e endereço.
  • Ver franquias próximas.
  • Faça pedidos com vários itens do menu.
  • Verifique a posição da fila e o tempo de espera.
  • Cancele o pedido a qualquer momento.

Principais conclusões

  • Aproveite a IA para tarefas de rotina: ChatGPT acelerou tarefas repetitivas, como projetar APIs, gerar código padrão e implementar padrões de lógica de negócios comuns.
  • Dividir e conquistar: Ao dividir o projeto em tarefas pequenas e gerenciáveis ​​(como registro de usuários, gerenciamento de filas e colocação de pedidos), consegui implementar cada recurso sequencialmente.
  • Aprendizagem Assistida por IA: Embora o ChatGPT fornecesse muito código, eu ainda precisava entender a lógica subjacente e ajustá-la para atender às necessidades do meu projeto, o que foi uma ótima experiência de aprendizado.
  • Depuração em tempo real: ChatGPT me ajudou a resolver problemas em tempo real, orientando-me através de erros e exceções que encontrei durante a implementação, o que manteve o projeto no caminho certo.

Tenho mais algumas etapas para criar a documentação, usar o liquidbase e fazer com que o chatGPT gere dados de amostra para facilitar os testes.

Conclusão

Construir um sistema de processamento de pedidos para uma cafeteria em 2 dias pode parecer assustador, mas com a ajuda da IA, é possível. ChatGPT atuou como um assistente de codificação, ajudando-me a transformar rapidamente requisitos abstratos em um sistema funcional. Embora a IA possa fornecer uma base, refinar e personalizar o código ainda é uma habilidade essencial. Este projeto me ensinou como maximizar o valor das ferramentas de IA sem perder o controle do processo de desenvolvimento.

Seguindo as etapas que segui, você pode acelerar seus próprios projetos e se concentrar na resolução de problemas de nível superior, deixando a geração de código de rotina e a orientação para a IA.

Github completo

Declaração de lançamento Este artigo foi reproduzido em: https://dev.to/jackynote/building-an-orders-processing-service-with-chatgpt-contribute-70-80-efforts-and-finished-in-2-days-3klf? 1, pois se houver alguma violação, entre em contato com [email protected] para excluí-la.
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3