Maison >Java >javaDidacticiel >Création d'un service de traitement des commandes avec ChatGPT (contribuer aux efforts) et terminé en quelques jours
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 écrasant 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.
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 :
J'ai demandé à ChatGPT de m'aider à concevoir la structure de l'API en fonction des exigences. Voici un exemple de la première invite que j'ai utilisée :
Invite :
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 :
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.
Invite :
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.
Une fois l'API de base et les entités configurées, je suis passé à la mise en œuvre de la 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.
Invite :
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<OrderItemDTO> items) { Order order = new Order(); order.setCustomer(userRepository.findById(customerId).orElseThrow()); order.setFranchise(franchiseRepository.findById(franchiseId).orElseThrow()); List<OrderItem> 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); }
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.
Invite :
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 d'horodatages. Je l'ai implémenté comme suit :
public int findQueuePositionForFranchise(UUID franchiseId) { List<CustomerQueue> 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.
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); }
By the end of Day 2, I had a fully functional service that allowed customers to:
I have a few more steps to create the documentation, use liquidbase and have chatGPT generate sample data for easier testing.
Building an order processing system for a coffee shop in 2 days may sound daunting, but with AI assistance, it’s achievable. ChatGPT acted like a coding assistant, helping me transform abstract requirements into a working system quickly. While AI can provide a foundation, refining and customizing code is still an essential skill. This project taught me how to maximize the value of AI tools without losing control of the development process.
By following the steps I took, you can speed up your own projects and focus on higher-level problem-solving, leaving the routine code generation and guidance to AI.
Full source Github
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!