Rumah  >  Artikel  >  Java  >  Membina Perkhidmatan Pemprosesan Pesanan dengan ChatGPT (usaha menyumbang) dan Selesai dalam ays

Membina Perkhidmatan Pemprosesan Pesanan dengan ChatGPT (usaha menyumbang) dan Selesai dalam ays

DDD
DDDasal
2024-09-25 17:50:02588semak imbas

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

AI telah menyumbang kepada perubahan dan peningkatan kecekapan dalam kerja harian saya

Sebagai pembangun, membina perkhidmatan pemprosesan pesanan kadangkala boleh berasa sukar apabila anda mempunyai tempoh masa yang terhad. Walau bagaimanapun, dengan kuasa alat pembangunan dipacu AI seperti ChatGPT, anda boleh mempercepatkan proses dengan ketara dengan menjana kod, mereka bentuk entiti dan menyelesaikan masalah langkah demi langkah. Dalam artikel ini, saya akan membimbing anda melalui cara saya menggunakan ChatGPT untuk membina perkhidmatan pemprosesan pesanan berfungsi sepenuhnya hanya dalam 2 hari, daripada mengumpul keperluan sehingga selesai.

Sejujurnya, terdapat banyak benang kecil dan gesaan untuk tugasan kecil yang berbeza yang tidak dapat saya rumuskan menjadi projek yang lengkap, tetapi secara keseluruhannya... ia membantu saya 70 - 80%. Selain itu, berikut ialah beberapa kod asal, selepas saya menyemaknya, ia mungkin telah diubah suai dengan tangan, jadi anda mungkin tidak menemui fungsi ini pada github yang saya kongsikan.

Hari 1: Memahami Keperluan dan Menyediakan 

Langkah 1: Kumpul dan Jelaskan Keperluan

Perkara pertama yang saya lakukan ialah menyenaraikan ciri teras yang diperlukan untuk perkhidmatan tersebut. Berikut ialah fungsi utama yang saya perlukan:

  1. Pendaftaran Pengguna: Benarkan pengguna mendaftar menggunakan nombor mudah alih dan alamat mereka.
  2. Carian Lokasi Francais: Membolehkan pelanggan melihat dan mencari francais kopi berdekatan.
  3. Peletakan Pesanan: Pelanggan boleh membuat pesanan dengan berbilang item daripada menu.
  4. Pengurusan Baris Gilir: Jejaki kedudukan pelanggan dalam baris gilir dan sediakan jangkaan masa menunggu.
  5. Pembatalan Pesanan: Pelanggan boleh keluar dari baris gilir dan membatalkan pesanan mereka pada bila-bila masa.

Langkah 2: Jana Titik Akhir API dengan ChatGPT

Saya meminta ChatGPT untuk membantu saya mereka bentuk struktur API untuk keperluan. Berikut ialah contoh gesaan pertama yang saya gunakan:

Prompt:

Buat titik akhir API untuk sistem pendaftaran pengguna menggunakan Spring Boot, di mana pengguna boleh mendaftar dengan nama, nombor mudah alih dan alamat mereka.

Keputusan: ChatGPT menjana beberapa titik akhir:

  • POST /users/register: Untuk mendaftarkan pengguna baharu.
  • DAPATKAN /francais/berdekatan: Untuk mencari francais kopi berdekatan berdasarkan latitud dan longitud.
  • POS /pesanan: Untuk membuat pesanan dengan berbilang item.
  • DAPATKAN /orders/{orderId}/queue-position: Untuk menyemak kedudukan pengguna dalam baris gilir.
  • PADAM /orders/{orderId}: Untuk membatalkan pesanan dan keluar dari baris gilir.

Langkah 3: Reka Bentuk Entiti

Untuk perkhidmatan pemprosesan pesanan, kami memerlukan entiti untuk Pengguna, Francais, Pesanan, Baris Gilir dan Item Pesanan. Saya menggunakan ChatGPT untuk mentakrifkan entiti ini dengan medan yang diperlukan.

Prompt:

Reka bentuk entiti Pengguna untuk sistem. Pengguna boleh mempunyai nombor mudah alih, alamat dan peranan (seperti PELANGGAN).

Keputusan: ChatGPT menyediakan entiti Pengguna yang mudah menggunakan 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
}

Saya mengulangi proses ini untuk entiti Francais, Pesanan dan Baris Gilir.

Hari 2: Melaksanakan Logik Perniagaan

Langkah 4: Logik Peletakan Pesanan

Setelah API dan entiti asas disediakan, saya beralih kepada melaksanakan logik perniagaan untuk penempatan pesanan. Ini adalah bahagian kritikal perkhidmatan kerana ia perlu mengendalikan berbilang item daripada menu dan mengurus kedudukan baris gilir.

Prompt:

Laksanakan logik untuk membuat pesanan dengan berbilang item, di mana setiap item dipautkan ke menu tertentu dalam Francais.

Hasil: ChatGPT membimbing saya melalui mereka bentuk OrderService untuk mengendalikan perkara ini. Berikut ialah sebahagian daripada pelaksanaan:

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

Langkah 5: Pengurusan Baris Gilir

Seterusnya, saya meminta ChatGPT untuk membantu saya mereka bentuk logik untuk meletakkan pelanggan dalam baris gilir dan menjejaki kedudukan mereka.

Prompt:

Bagaimanakah saya boleh mengira kedudukan baris gilir dan masa menunggu untuk pesanan dalam sistem francais kopi?

Keputusan: ChatGPT mencadangkan membuat QueueService yang menjejak pesanan dan memberikan mereka kedudukan berdasarkan cap masa. Saya melaksanakannya seperti berikut:

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

Ia juga memberikan panduan tentang menganggarkan masa menunggu berdasarkan purata masa pemprosesan pesanan.

Langkah 6: Pembatalan Pesanan

Akhir sekali, saya melaksanakan logik untuk membenarkan pelanggan membatalkan pesanan mereka dan keluar dari baris gilir:

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

Atas ialah kandungan terperinci Membina Perkhidmatan Pemprosesan Pesanan dengan ChatGPT (usaha menyumbang) dan Selesai dalam ays. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn