"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > إنشاء خدمة معالجة الطلبات باستخدام ChatGPT (المساهمة في الجهود) والانتهاء منها في فترة زمنية قصيرة

إنشاء خدمة معالجة الطلبات باستخدام ChatGPT (المساهمة في الجهود) والانتهاء منها في فترة زمنية قصيرة

تم النشر بتاريخ 2024-11-06
تصفح:594

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

ساهم الذكاء الاصطناعي في تغيير وزيادة الكفاءة في عملي اليومي

كمطور، قد يكون بناء خدمة معالجة الطلبات مرهقًا في بعض الأحيان عندما يكون لديك إطار زمني محدود. ومع ذلك، بفضل قوة أدوات التطوير المعتمدة على الذكاء الاصطناعي مثل ChatGPT، يمكنك تسريع العملية بشكل كبير من خلال إنشاء التعليمات البرمجية وتصميم الكيانات وحل المشكلات خطوة بخطوة. في هذه المقالة، سأشرح لك كيفية استخدام ChatGPT لإنشاء خدمة معالجة طلبات كاملة الوظائف في يومين فقط، بدءًا من جمع المتطلبات وحتى الاكتمال.

بصراحة، هناك العديد من المواضيع الصغيرة والمطالبات لمهام صغيرة مختلفة لا يمكنني تلخيصها في مشروع كامل، ولكن بشكل عام... لقد ساعدني ذلك بنسبة 70 - 80٪. بالإضافة إلى ذلك، إليك بعض الكود الأصلي، بعد أن قمت بمراجعته، ربما تم تعديله يدويًا، لذلك قد لا تجد هذه الوظيفة على جيثب التي قمت بمشاركتها.

اليوم الأول: فهم المتطلبات والإعداد

الخطوة 1: جمع وتوضيح المتطلبات

أول شيء فعلته هو إدراج الميزات الأساسية المطلوبة للخدمة. فيما يلي الوظائف الأساسية التي أحتاجها:

  1. تسجيل المستخدم: السماح للمستخدمين بالتسجيل باستخدام رقم هاتفهم المحمول وعناوينهم.
  2. البحث عن موقع الامتياز: تمكين العملاء من عرض امتيازات القهوة والعثور عليها في مكان قريب.
  3. وضع الطلب: يمكن للعملاء تقديم طلب يتضمن عناصر متعددة من القائمة.
  4. إدارة قائمة الانتظار: تتبع موقع العميل في قائمة الانتظار وتوفير وقت الانتظار المتوقع.
  5. إلغاء الطلب: يمكن للعملاء الخروج من قائمة الانتظار وإلغاء طلباتهم في أي وقت.

الخطوة 2: إنشاء نقاط نهاية واجهة برمجة التطبيقات باستخدام ChatGPT

طلبت من ChatGPT مساعدتي في تصميم بنية واجهة برمجة التطبيقات (API) للمتطلبات. فيما يلي مثال للمطالبة الأولى التي استخدمتها:

اِسْتَدْعَى:

إنشاء نقاط نهاية لواجهة برمجة التطبيقات (API) لنظام تسجيل المستخدم باستخدام Spring Boot، حيث يمكن للمستخدمين التسجيل باسمهم ورقم هاتفهم المحمول وعنوانهم.

النتيجة: أنشأ ChatGPT عدة نقاط نهاية:

  • POST /users/register: لتسجيل مستخدم جديد.
  • احصل على /franchises/nearby: للعثور على امتيازات القهوة القريبة بناءً على خطوط الطول والعرض.
  • POST /orders: لتقديم طلب يتضمن عناصر متعددة.
  • الحصول على /orders/{orderId}/queue-position: للتحقق من موقع المستخدم في قائمة الانتظار.
  • حذف /orders/{orderId}: لإلغاء الطلب والخروج من قائمة الانتظار.

الخطوة 3: تصميم الكيان

بالنسبة لخدمة معالجة الطلب، كنا بحاجة إلى كيانات للمستخدم والامتياز والطلب وقائمة الانتظار وعنصر الطلب. لقد استخدمت ChatGPT لتحديد هذه الكيانات باستخدام الحقول الضرورية.

اِسْتَدْعَى:

تصميم كيان المستخدم للنظام. يمكن أن يكون لدى المستخدم رقم جوال وعنوان ودور (مثل العميل).

النتيجة: قدم ChatGPT كيان مستخدم بسيط باستخدام 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
}

لقد كررت هذه العملية لكيانات الامتياز والطلب وقائمة الانتظار.

اليوم الثاني: تنفيذ منطق الأعمال

الخطوة 4: منطق موضع الطلب

بمجرد إعداد واجهة برمجة التطبيقات والكيانات الأساسية، انتقلت إلى تنفيذ منطق الأعمال لوضع الطلب. كان هذا هو الجزء المهم من الخدمة لأنه كان بحاجة إلى التعامل مع عناصر متعددة من القائمة وإدارة مواضع قائمة الانتظار.

اِسْتَدْعَى:

تنفيذ منطق تقديم طلب بعناصر متعددة، حيث يرتبط كل عنصر بقائمة محددة في الامتياز.

النتيجة: أرشدني ChatGPT خلال تصميم خدمة OrderService للتعامل مع هذا الأمر. إليك جزء من التنفيذ:

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

الخطوة 5: إدارة قائمة الانتظار

بعد ذلك، طلبت من ChatGPT مساعدتي في تصميم المنطق لوضع العميل في قائمة الانتظار وتتبع موقعه.

اِسْتَدْعَى:

كيف يمكنني حساب موقف الانتظار ووقت الانتظار للطلب في نظام امتياز القهوة؟

النتيجة: اقترح ChatGPT إنشاء خدمة قائمة انتظار لتتبع الطلبات وتعيين مواضعها بناءً على الطوابع الزمنية. لقد قمت بتطبيقه على النحو التالي:

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

كما قدمت إرشادات حول تقدير أوقات الانتظار بناءً على متوسط ​​وقت معالجة الطلب.

الخطوة 6: إلغاء الطلب

أخيرًا، قمت بتنفيذ منطق السماح للعملاء بإلغاء طلباتهم والخروج من قائمة الانتظار:

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

الانتهاء من المشروع

بحلول نهاية اليوم الثاني، حصلت على خدمة كاملة الوظائف تتيح للعملاء:

  • التسجيل باستخدام رقم الجوال والعنوان.
  • عرض الامتيازات القريبة.
  • تقديم طلبات تحتوي على عناصر متعددة من القائمة.
  • التحقق من موقعهم في قائمة الانتظار ووقت الانتظار.
  • إلغاء الطلب في أي وقت.

الوجبات السريعة الرئيسية

  • الاستفادة من الذكاء الاصطناعي للمهام الروتينية: يعمل ChatGPT على تسريع المهام المتكررة مثل تصميم واجهات برمجة التطبيقات، وتوليد التعليمات البرمجية المعيارية، وتنفيذ أنماط منطق الأعمال الشائعة.
  • تقسيم وقهر: من خلال تقسيم المشروع إلى مهام صغيرة يمكن التحكم فيها (مثل تسجيل المستخدم، وإدارة قائمة الانتظار، وتقديم الطلبات)، تمكنت من تنفيذ كل ميزة بالتسلسل.
  • التعلم بمساعدة الذكاء الاصطناعي: على الرغم من أن ChatGPT قدم الكثير من التعليمات البرمجية، إلا أنه لا يزال يتعين علي فهم المنطق الأساسي وتعديله ليناسب احتياجات مشروعي، والتي كانت تجربة تعليمية رائعة.
  • تصحيح الأخطاء في الوقت الفعلي: ساعدني ChatGPT في حل المشكلات في الوقت الفعلي من خلال إرشادي خلال الأخطاء والاستثناءات التي واجهتها أثناء التنفيذ، مما أبقى المشروع على المسار الصحيح.

لدي بضع خطوات إضافية لإنشاء الوثائق، واستخدام Liquidbase وجعل chatGPT ينشئ بيانات نموذجية لتسهيل الاختبار.

خاتمة

قد يبدو بناء نظام معالجة الطلبات لمقهى في يومين أمرًا شاقًا، ولكن بمساعدة الذكاء الاصطناعي، يمكن تحقيقه. كان ChatGPT بمثابة مساعد ترميز، حيث ساعدني في تحويل المتطلبات المجردة إلى نظام عمل بسرعة. في حين أن الذكاء الاصطناعي يمكن أن يوفر الأساس، إلا أن تحسين التعليمات البرمجية وتخصيصها لا يزال مهارة أساسية. لقد علمني هذا المشروع كيفية تعظيم قيمة أدوات الذكاء الاصطناعي دون فقدان السيطرة على عملية التطوير.

من خلال اتباع الخطوات التي اتخذتها، يمكنك تسريع مشاريعك الخاصة والتركيز على حل المشكلات ذات المستوى الأعلى، وترك إنشاء التعليمات البرمجية الروتينية والتوجيه للذكاء الاصطناعي.

المصدر الكامل جيثب

بيان الافراج تم إعادة إنتاج هذه المقالة على: https://dev.to/jackynote/building-an-orders-processing-service-with-chatgpt-contribute-70-80-efforts-and-finished-in-2-days-3klf؟ 1. في حالة وجود أي انتهاك، يرجى التواصل مع [email protected] لحذفه.
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3