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

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);
}
</orderitem></orderitemdto>

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;
}
</customerqueue>

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
Apakah beberapa strategi untuk mengurangkan isu khusus platform dalam aplikasi Java?Apakah beberapa strategi untuk mengurangkan isu khusus platform dalam aplikasi Java?May 01, 2025 am 12:20 AM

Bagaimanakah Java mengurangkan masalah khusus platform? Java melaksanakan platform bebas melalui JVM dan perpustakaan standard. 1) Gunakan bytecode dan JVM untuk abstrak perbezaan sistem operasi; 2) Perpustakaan standard menyediakan API silang platform, seperti laluan fail pemprosesan kelas Paths, dan pengekodan aksara pemprosesan kelas charset; 3) Gunakan fail konfigurasi dan ujian pelbagai platform dalam projek sebenar untuk pengoptimuman dan debugging.

Apakah hubungan antara kebebasan platform Java dan seni bina microservices?Apakah hubungan antara kebebasan platform Java dan seni bina microservices?May 01, 2025 am 12:16 AM

Java'splatformindependenceEnhancesMicroservicesarchitectureByOfferingDeploymentflexability, konsistensi, skalabilitas, andPortability.1) DeploymentflexabilityAllowsMicroserviceStorunonAnanyplatformWithAjvm.2) ConsistencyAcsServicSservicesSimpliesDevelanDanDevelan

Bagaimanakah GraalVM berkaitan dengan matlamat kemerdekaan platform Java?Bagaimanakah GraalVM berkaitan dengan matlamat kemerdekaan platform Java?May 01, 2025 am 12:14 AM

GraalVM meningkatkan kemerdekaan platform Java dalam tiga cara: 1. 2. Persekitaran Runtime Bebas, menyusun program Java ke dalam fail boleh laku tempatan melalui GraalvmnativeImage; 3. Pengoptimuman Prestasi, Graal Compiler menjana kod mesin yang cekap untuk meningkatkan prestasi dan konsistensi program Java.

Bagaimana anda menguji aplikasi Java untuk keserasian platform?Bagaimana anda menguji aplikasi Java untuk keserasian platform?May 01, 2025 am 12:09 AM

Toeffectivelytestjavaapplicationsforplatformcompatebility, ikutiTheSesteps: 1) setupautomatedtestingacrossmultiplePlatformsusingcitoolslikejenkinsorgithubithubactions.2) conductManualtestingonrealhardwaretocatchiscatscienvironments.2)

Apakah peranan pengkompil Java (JAVAC) dalam mencapai kemerdekaan platform?Apakah peranan pengkompil Java (JAVAC) dalam mencapai kemerdekaan platform?May 01, 2025 am 12:06 AM

Penyusun Java menyedari kemerdekaan platform Java dengan menukar kod sumber ke dalam bytecode bebas platform, yang membolehkan program Java dijalankan pada mana-mana sistem operasi dengan JVM dipasang.

Apakah kelebihan menggunakan bytecode ke atas kod asli untuk kemerdekaan platform?Apakah kelebihan menggunakan bytecode ke atas kod asli untuk kemerdekaan platform?Apr 30, 2025 am 12:24 AM

BytecodeachievesplatformindependenceBebyBeingExecutedyavirtualMachine (VM), membolehkanCodeTorunonanyplatformWithTheAppropriatevm.Forexample, JavabytecodecanrunonanydeviceVmm, enabling "

Adakah Java benar-benar 100% platform bebas? Mengapa atau mengapa tidak?Adakah Java benar-benar 100% platform bebas? Mengapa atau mengapa tidak?Apr 30, 2025 am 12:18 AM

Java tidak dapat mencapai kemerdekaan platform 100%, tetapi kemerdekaan platformnya dilaksanakan melalui JVM dan bytecode untuk memastikan kod tersebut berjalan pada platform yang berbeza. Pelaksanaan spesifik termasuk: 1. Kompilasi ke bytecode; 2. Tafsiran dan pelaksanaan JVM; 3. Konsistensi Perpustakaan Standard. Walau bagaimanapun, perbezaan pelaksanaan JVM, sistem operasi dan perbezaan perkakasan, dan keserasian perpustakaan pihak ketiga boleh menjejaskan kebebasan platformnya.

Bagaimanakah pemantauan kod sokongan kemerdekaan platform Java?Bagaimanakah pemantauan kod sokongan kemerdekaan platform Java?Apr 30, 2025 am 12:15 AM

Java menyedari kemerdekaan platform melalui "Tulis sekali, jalankan di mana -mana" dan meningkatkan pemeliharaan kod: 1. Penggunaan semula kod tinggi dan mengurangkan pembangunan pendua; 2. Kos penyelenggaraan yang rendah, hanya satu pengubahsuaian yang diperlukan; 3. Kecekapan kerjasama pasukan tinggi adalah tinggi, mudah untuk perkongsian pengetahuan.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

MantisBT

MantisBT

Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

mPDF

mPDF

mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),

Versi Mac WebStorm

Versi Mac WebStorm

Alat pembangunan JavaScript yang berguna

VSCode Windows 64-bit Muat Turun

VSCode Windows 64-bit Muat Turun

Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft