"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Création d'un service de traitement des commandes avec ChatGPT (contribuer aux efforts) et terminé en quelques jours

Création d'un service de traitement des commandes avec ChatGPT (contribuer aux efforts) et terminé en quelques jours

Publié le 2024-11-06
Parcourir:106

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

L'IA a contribué à changer et à accroître l'efficacité de mon travail quotidien

En tant que développeur, créer un service de traitement des commandes peut parfois sembler insurmontable lorsque vous disposez d'un délai limité. Cependant, grâce à la puissance des outils de développement basés sur l'IA tels que ChatGPT, vous pouvez accélérer considérablement le processus en générant du code, en concevant des entités et en résolvant les problèmes étape par étape. Dans cet article, je vais vous expliquer comment j'ai utilisé ChatGPT pour créer un service de traitement des commandes entièrement fonctionnel en seulement 2 jours, de la collecte des exigences à l'achèvement.

Honnêtement, il existe de nombreux petits fils de discussion et invites pour différentes petites tâches que je ne peux pas résumer dans un projet complet, mais dans l'ensemble... cela m'a aidé à 70 - 80 %. De plus, voici une partie du code original, après l'avoir examiné, il a peut-être été modifié à la main, vous ne trouverez donc peut-être pas cette fonction sur github que j'ai partagée.

Jour 1 : Comprendre les exigences et la configuration

Étape 1 : Rassembler et clarifier les exigences

La première chose que j'ai faite a été de lister les fonctionnalités de base requises pour le service. Voici les principales fonctionnalités dont j'avais besoin :

  1. Inscription de l'utilisateur : permet aux utilisateurs de s'inscrire en utilisant leur numéro de téléphone portable et leur adresse.
  2. Recherche d'emplacement de franchise : permet aux clients d'afficher et de trouver des franchises de café à proximité.
  3. Passer une commande : les clients peuvent passer une commande avec plusieurs articles à partir d'un menu.
  4. Gestion des files d'attente : suivez la position d'un client dans une file d'attente et indiquez le temps d'attente prévu.
  5. Annulation de commande : les clients peuvent quitter la file d'attente et annuler leur commande à tout moment.

Étape 2 : Générer des points de terminaison d'API avec ChatGPT

J'ai demandé à ChatGPT de m'aider à concevoir la structure de l'API pour les exigences. Voici un exemple de la première invite que j'ai utilisée :

Rapide:

Créez des points de terminaison d'API pour un système d'enregistrement d'utilisateurs à l'aide de Spring Boot, où les utilisateurs peuvent s'inscrire avec leur nom, leur numéro de mobile et leur adresse.

Résultat : ChatGPT a généré plusieurs points de terminaison :

  • POST /users/register : Pour enregistrer un nouvel utilisateur.
  • GET /franchises/nearby : pour trouver des franchises de café à proximité en fonction de la latitude et de la longitude.
  • POST /commandes : pour passer une commande avec plusieurs articles.
  • GET /orders/{orderId}/queue-position : Pour vérifier la position de l'utilisateur dans la file d'attente.
  • DELETE /orders/{orderId} : pour annuler la commande et quitter la file d'attente.

Étape 3 : Conception de l'entité

Pour le service de traitement des commandes, nous avions besoin d'entités pour l'utilisateur, la franchise, la commande, la file d'attente et l'article de commande. J'ai utilisé ChatGPT pour définir ces entités avec les champs nécessaires.

Rapide:

Concevez l'entité utilisateur pour le système. L'utilisateur peut avoir un numéro de mobile, une adresse et un rôle (comme CLIENT).

Résultat : ChatGPT a fourni une entité utilisateur simple utilisant 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
}

J'ai répété ce processus pour les entités Franchise, Commande et File d'attente.

Jour 2 : Mise en œuvre de la logique métier

Étape 4 : Logique de passation de commande

Une fois l'API et les entités de base configurées, je suis passé à la mise en œuvre d'une logique métier pour le passage des commandes. Il s'agissait de la partie critique du service car elle devait gérer plusieurs éléments du menu et gérer les positions dans la file d'attente.

Rapide:

Implémenter la logique pour passer une commande avec plusieurs articles, où chaque article est lié à un menu spécifique dans la franchise.

Résultat : ChatGPT m'a guidé dans la conception d'un OrderService pour gérer cela. Voici une partie de la mise en œuvre :

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);
}

Étape 5 : Gestion des files d'attente

Ensuite, j'ai demandé à ChatGPT de m'aider à concevoir la logique permettant de placer un client dans la file d'attente et de suivre sa position.

Rapide:

Comment puis-je calculer la position dans la file d'attente et le temps d'attente pour une commande dans un système de franchise de café ?

Résultat : ChatGPT a suggéré de créer un QueueService qui suit les commandes et leur attribue des positions en fonction des horodatages. Je l'ai implémenté comme suit :

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

Il a également fourni des conseils sur l'estimation des temps d'attente en fonction du temps moyen de traitement des commandes.

Étape 6 : Annulation de la commande

Enfin, j'ai implémenté la logique permettant aux clients d'annuler leurs commandes et de sortir de la file d'attente :

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

Finaliser le projet

À la fin du deuxième jour, je disposais d'un service entièrement fonctionnel qui permettait aux clients de :

  • Inscrivez-vous en utilisant leur numéro de téléphone portable et leur adresse.
  • Affichez les franchises à proximité.
  • Passez des commandes avec plusieurs éléments du menu.
  • Vérifiez leur position dans la file d'attente et le temps d'attente.
  • Annuler leur commande à tout moment.

Points clés à retenir

  • Exploiter l'IA pour les tâches de routine : ChatGPT a accéléré les tâches répétitives telles que la conception d'API, la génération de code passe-partout et la mise en œuvre de modèles de logique métier courants.
  • Diviser pour conquérir : en divisant le projet en petites tâches faciles à gérer (telles que l'enregistrement des utilisateurs, la gestion des files d'attente et le passage des commandes), j'ai pu implémenter chaque fonctionnalité de manière séquentielle.
  • Apprentissage assisté par l'IA : Bien que ChatGPT ait fourni beaucoup de code, je devais encore comprendre la logique sous-jacente et l'ajuster pour l'adapter aux besoins de mon projet, ce qui a été une excellente expérience d'apprentissage.
  • Débogage en temps réel : ChatGPT m'a aidé à résoudre les problèmes en temps réel en me guidant à travers les erreurs et les exceptions que j'ai rencontrées lors de la mise en œuvre, ce qui a permis de maintenir le projet sur la bonne voie.

J'ai encore quelques étapes pour créer la documentation, utiliser liquidbase et demander à chatGPT de générer des exemples de données pour des tests plus faciles.

Conclusion

Construire un système de traitement des commandes pour un café en 2 jours peut sembler intimidant, mais avec l'aide de l'IA, c'est réalisable. ChatGPT a agi comme un assistant de codage, m'aidant à transformer rapidement des exigences abstraites en un système fonctionnel. Même si l’IA peut constituer une base, affiner et personnaliser le code reste une compétence essentielle. Ce projet m'a appris à maximiser la valeur des outils d'IA sans perdre le contrôle du processus de développement.

En suivant les étapes que j'ai suivies, vous pouvez accélérer vos propres projets et vous concentrer sur la résolution de problèmes de plus haut niveau, en laissant la génération de code de routine et les conseils à l'IA.

Github source complète

Déclaration de sortie Cet article est reproduit sur : https://dev.to/jackynote/building-an-orders-processing-service-with-chatgpt-contribute-70-80-efforts-and-finished-in-2-days-3klf? 1 comme s'il y a une infraction, veuillez contacter [email protected] pour la supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3