Heim  >  Artikel  >  Java  >  Aufbau eines Auftragsverarbeitungsdienstes mit ChatGPT (Mitwirken) und in wenigen Tagen abgeschlossen

Aufbau eines Auftragsverarbeitungsdienstes mit ChatGPT (Mitwirken) und in wenigen Tagen abgeschlossen

DDD
DDDOriginal
2024-09-25 17:50:02588Durchsuche

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

KI hat dazu beigetragen, meine tägliche Arbeit zu verändern und die Effizienz zu steigern

Als Entwickler kann sich der Aufbau eines Auftragsabwicklungsdienstes manchmal überwältigend anfühlen, wenn der Zeitrahmen begrenzt ist. Mit der Leistungsfähigkeit von KI-gesteuerten Entwicklungstools wie ChatGPT können Sie den Prozess jedoch erheblich beschleunigen, indem Sie Code generieren, Entitäten entwerfen und Probleme Schritt für Schritt lösen. In diesem Artikel erkläre ich Ihnen, wie ich mit ChatGPT in nur 2 Tagen einen voll funktionsfähigen Auftragsabwicklungsdienst aufgebaut habe, von der Erfassung der Anforderungen bis zur Fertigstellung.

Ehrlich gesagt gibt es viele kleine Threads und Anregungen für verschiedene kleine Aufgaben, die ich nicht zu einem vollständigen Projekt zusammenfassen kann, aber insgesamt... hat es mir zu 70 - 80 % geholfen. Darüber hinaus ist hier ein Teil des Originalcodes. Nachdem ich ihn überprüft habe, wurde er möglicherweise manuell geändert, sodass Sie diese Funktion möglicherweise nicht auf Github finden, den ich geteilt habe.

Tag 1: Anforderungen verstehen und einrichten

Schritt 1: Anforderungen erfassen und klären

Als erstes habe ich die für den Dienst erforderlichen Kernfunktionen aufgelistet. Hier sind die wichtigsten Funktionen, die ich brauchte:

  1. Benutzerregistrierung: Ermöglichen Sie Benutzern die Registrierung mit ihrer Mobiltelefonnummer und Adresse.
  2. Franchise-Standortsuche: Ermöglichen Sie Kunden, Kaffee-Franchise-Unternehmen in der Nähe anzuzeigen und zu finden.
  3. Auftragserteilung: Kunden können eine Bestellung mit mehreren Artikeln aus einem Menü aufgeben.
  4. Warteschlangenverwaltung: Verfolgen Sie die Position eines Kunden in einer Warteschlange und geben Sie die voraussichtliche Wartezeit an.
  5. Stornierung der Bestellung: Kunden können die Warteschlange jederzeit verlassen und ihre Bestellung stornieren.

Schritt 2: API-Endpunkte mit ChatGPT generieren

Ich habe ChatGPT gebeten, mir beim Entwerfen der API-Struktur für die Anforderungen zu helfen. Hier ist ein Beispiel für die erste Eingabeaufforderung, die ich verwendet habe:

Eingabeaufforderung:

Erstellen Sie API-Endpunkte für ein Benutzerregistrierungssystem mit Spring Boot, bei dem sich Benutzer mit ihrem Namen, ihrer Mobiltelefonnummer und ihrer Adresse registrieren können.

Ergebnis: ChatGPT hat mehrere Endpunkte generiert:

  • POST /users/register: Um einen neuen Benutzer zu registrieren.
  • GET /franchises/nearby: Um Kaffee-Franchises in der Nähe basierend auf Breiten- und Längengrad zu finden.
  • POST /Bestellungen: Um eine Bestellung mit mehreren Artikeln aufzugeben.
  • GET /orders/{orderId}/queue-position: Um die Position des Benutzers in der Warteschlange zu überprüfen.
  • DELETE /orders/{orderId}: Um die Bestellung zu stornieren und die Warteschlange zu verlassen.

Schritt 3: Entitätsdesign

Für den Bestellverarbeitungsdienst benötigten wir Entitäten für Benutzer, Franchise, Bestellung, Warteschlange und Bestellelement. Ich habe ChatGPT verwendet, um diese Entitäten mit den erforderlichen Feldern zu definieren.

Eingabeaufforderung:

Entwerfen Sie die Benutzerentität für das System. Der Benutzer kann eine Mobiltelefonnummer, eine Adresse und eine Rolle (z. B. KUNDE) haben.

Ergebnis: ChatGPT hat eine einfache Benutzerentität mithilfe von JPA bereitgestellt:

@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
}

Ich habe diesen Vorgang für die Entitäten Franchise, Bestellung und Warteschlange wiederholt.

Tag 2: Geschäftslogik implementieren

Schritt 4: Logik zur Auftragserteilung

Nachdem die grundlegende API und die Entitäten eingerichtet waren, ging ich zur Implementierung der Geschäftslogik für die Auftragserteilung über. Dies war der kritische Teil des Dienstes, da mehrere Menüpunkte verwaltet und Warteschlangenpositionen verwaltet werden mussten.

Eingabeaufforderung:

Implementieren Sie die Logik zum Aufgeben einer Bestellung mit mehreren Artikeln, wobei jeder Artikel mit einem bestimmten Menü im Franchise verknüpft ist.

Ergebnis: ChatGPT hat mich durch die Entwicklung eines OrderService zur Bewältigung dieses Problems geführt. Hier ist ein Teil der Implementierung:

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

Schritt 5: Warteschlangenverwaltung

Als nächstes habe ich ChatGPT gebeten, mir beim Entwerfen der Logik zum Platzieren eines Kunden in der Warteschlange und zum Verfolgen seiner Position zu helfen.

Eingabeaufforderung:

Wie kann ich die Warteschlangenposition und Wartezeit für eine Bestellung in einem Kaffee-Franchise-System berechnen?

Ergebnis: ChatGPT schlug die Erstellung eines QueueService vor, der Bestellungen verfolgt und ihnen basierend auf Zeitstempeln Positionen zuweist. Ich habe es wie folgt umgesetzt:

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

Es gab auch Hinweise zur Schätzung der Wartezeiten basierend auf der durchschnittlichen Auftragsbearbeitungszeit.

Schritt 6: Stornierung der Bestellung

Schließlich habe ich die Logik implementiert, die es Kunden ermöglicht, ihre Bestellungen zu stornieren und die Warteschlange zu verlassen:

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

Finalizing the Project

By the end of Day 2, I had a fully functional service that allowed customers to:

  • Register using their mobile number and address.
  • View nearby franchises.
  • Place orders with multiple items from the menu.
  • Check their queue position and waiting time.
  • Cancel their order at any time.

Key Takeaways

  • Leverage AI for Routine Tasks: ChatGPT sped up repetitive tasks like designing APIs, generating boilerplate code, and implementing common business logic patterns.
  • Divide and Conquer: By breaking the project into small, manageable tasks (such as user registration, queue management, and order placement), I was able to implement each feature sequentially.
  • AI-Assisted Learning: While ChatGPT provided a lot of code, I still had to understand the underlying logic and tweak it to fit my project’s needs, which was a great learning experience.
  • Real-Time Debugging: ChatGPT helped me solve real-time issues by guiding me through errors and exceptions I encountered during implementation, which kept the project on track.

I have a few more steps to create the documentation, use liquidbase and have chatGPT generate sample data for easier testing.

Conclusion

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

Das obige ist der detaillierte Inhalt vonAufbau eines Auftragsverarbeitungsdienstes mit ChatGPT (Mitwirken) und in wenigen Tagen abgeschlossen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn