كنت أقضي ساعاتي في كتابة الكود المتكرر: كيف أنقذني ‘المبرمج الزوجي الاصطناعي’ من جحيم إعادة اختراع العجلة؟

يا جماعة الخير، السلام عليكم ورحمة الله.

اسمحولي أبدأ بقصة صغيرة صارت معي قبل كم سنة. كنت شغال على مشروع ضخم لعميل، مشروع فيه تحليل بيانات ومعالجتها من مصادر مختلفة. الشغل كان فيه جزء كبير ممل ومكرر بشكل لا يطاق، وهو كتابة “محللات” (Parsers) لكل مصدر بيانات. كل محلل كان بيشبه أخوه، نفس المنطق تقريباً مع اختلافات بسيطة في أسماء الحقول أو طريقة ترتيب البيانات. والله يا جماعة، وصلت لمرحلة كنت أحلم فيها وأنا بكتب `try…catch` وبعمل `map` على المصفوفات. كنت حاسس حالي مش مبرمج، كأني موظف إدخال بيانات بس بلغة بايثون. شغلة كانت “بتجلط” بمعنى الكلمة، وضيعت عليها أسابيع من عمري كان ممكن أستثمرها في حل مشاكل أكثر تعقيداً وإبداعاً.

في ليلة من الليالي، وأنا شبه منهار من الملل والتكرار، قرأت عن أداة جديدة اسمها GitHub Copilot. في البداية كنت متشكك، قلت “شو هالحكي الفاضي؟ ذكاء اصطناعي يكتب كود؟ أكيد بكتب خرابيش”. بس من باب اليأس والفضول، قررت أجربها. وهون يا جماعة كانت الصدمة… كانت اللحظة اللي تغير فيها كل اشي.

ما هو “المبرمج الزوجي الاصطناعي” (AI Pair Programmer)؟

قبل ما أكمل قصتي، خلينا نوضح شو هو “الأشي هاد”.

زمان، كنا بنستخدم تقنية اسمها “البرمجة الزوجية” (Pair Programming)، وهي إنه مبرمجين اثنين يقعدوا على جهاز واحد. واحد بيكتب الكود (اسمه السائق)، والثاني بيراقب وبفكر بشكل استراتيجي وبيقترح أفكار (اسمه الملاح). الفكرة ممتازة لتبادل الخبرات وتقليل الأخطاء.

المبرمج الزوجي الاصطناعي هو نفس المبدأ، لكن “الملاح” تبعك هو نموذج ذكاء اصطناعي فائق الذكاء، تدرب على مليارات الأسطر من الكود المفتوح المصدر. هو رفيقك اللي ساكن جوا محرر الأكواد تبعك (زي VS Code)، بيشوف أنت شو بتكتب، وبيحاول يتوقع ويكمل الكود عنك. أشهر مثال عليه هو GitHub Copilot، لكن فيه أدوات ثانية ممتازة زي Amazon CodeWhisperer و Tabnine.

ببساطة، هو مش مجرد أداة إكمال تلقائي (Autocomplete) غبية، هو فاهم السياق، فاهم نيتك من خلال تعليقاتك وأسماء المتغيرات، وبيقترح عليك كتل برمجية كاملة، من دوال بسيطة إلى كلاسات معقدة.

تجربتي الأولى: كيف تحول الشك إلى يقين

نرجع لقصتي مع مشروع تحليل البيانات. بعد ما ثبتت إضافة Copilot، فتحت ملف بايثون جديد وبدأت أكتب تعليق بسيط، مجرد وصف للمهمة اللي بدي أعملها:


# function to read a json file, parse user data, and extract name and email

ما كبست Enter حتى… وفجأة، ظهر كود مقترح باللون الرمادي، كأنه شبح في الشاشة. الكود كان عبارة عن دالة بايثون كاملة، بتستورد مكتبة `json`، وبتفتح الملف، وبتعمل حلقة `for` على البيانات، وبتستخرج الحقول المطلوبة بالضبط، وحتى حطلي معالجة للأخطاء `try…except`.

والله يا جماعة، للحظة حسيت كأنه في “جنّي” قاعد جنبي وشايف اللي براسي! قعدت أضحك لحالي من الصدمة. عدّلت شوي على الكود المقترح ليناسب حالتي 100%، وفي أقل من دقيقة، كنت مخلص “محلل” كامل كان بياخذ مني ربع ساعة من الكتابة والتركيز. كررت العملية مع باقي المصادر، وكل مرة كنت أكتب تعليق يوصف الاختلاف البسيط، وكان Copilot يفهمني ويولد الكود المناسب. المشروع اللي كان مسببلي كابوس، خلصته في يومين بدل أسابيع.

أمثلة عملية من شغلي اليومي

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

1. التخلص من الكود المتكرر (Boilerplate)

هاي أكبر فائدة. كلنا بنعرف قديش ممل نكتب نفس الكود المبدئي في كل مشروع. مثلاً، لو بدي أعمل نقطة نهاية (endpoint) جديدة في سيرفر Express.js لجلب بيانات مستخدم.

زمان كنت أكتب كل هاد يدويًا:


const express = require('express');
const router = express.Router();
const User = require('../models/User');

// Get user by ID
router.get('/:id', async (req, res) => {
  try {
    const user = await User.findById(req.params.id);
    if (!user) {
      return res.status(404).json({ msg: 'User not found' });
    }
    res.json(user);
  } catch (err) {
    console.error(err.message);
    res.status(500).send('Server Error');
  }
});

module.exports = router;

اليوم، كل اللي بعمله هو كتابة تعليق بسيط:


// Express route to get user by id

والذكاء الاصطناعي بيكمل الباقي. أنا بس بتأكد من منطق العمل وبكبس Tab للموافقة. توفير هائل للوقت والجهد الذهني.

2. كتابة الوحدات الاختبارية (Unit Tests)

كتابة الاختبارات شغلة مهمة جداً لكنها مملة. المبرمج الزوجي الاصطناعي عبقري في هاي الشغلة. لو عندي دالة بسيطة زي هاي:


// utils.js
function calculateDiscount(price, percentage) {
  if (price < 0 || percentage  100) {
    throw new Error('Invalid input');
  }
  return price - (price * (percentage / 100));
}

بروح على ملف الاختبار، وبكتب تعليق:


// test for calculateDiscount function

فوراً بيقترح عليّ اختبارات للحالات الطبيعية، للحالات الحدّية (edge cases) مثل الخصم 0% أو 100%، وحتى اختبارات للتأكد من أنه يرمي خطأ (throw error) عند إدخال قيم خاطئة. شغلة بتخلي عملية الاختبار أسرع وأكثر متعة.

3. حل المشاكل المعقدة وتعلم أشياء جديدة

الأداة هاي مش بس للكود المتكرر. أحياناً بستخدمها لمساعدتي في كتابة خوارزميات معقدة أو تعابير نمطية (Regex). مثلاً، مرة احتجت أكتب تعبير نمطي للتحقق من صحة رقم جوال (بغض النظر عن الدولة). كتبت تعليق:


// regex for international phone number format like +123-456-7890

وأعطاني تعبير نمطي ممتاز كبداية، عدلت عليه تعديلات بسيطة ليناسب احتياجي. الأجمل من هيك، لما أكون بتعلم لغة جديدة أو مكتبة جديدة، هو بساعدني أكتب كود “اصطلاحي” (idiomatic) – يعني الكود اللي بينكتب بالطريقة الصحيحة والمتبعة في مجتمع هاي اللغة، مش مجرد كود شغال والسلام.

نصائح أبو عمر الذهبية لاستخدام المبرمج الزوجي الاصطناعي

بعد فترة من الاستخدام، صار عندي شوية قواعد وملاحظات بحب أشاركها معكم لتستفيدوا أقصى استفادة وتتجنبوا المشاكل:

  1. ثق ولكن تحقق: هاي أهم نصيحة. الكود اللي بيقترحه الذكاء الاصطناعي مش دايماً صحيح 100%، وأحياناً بيكون فيه أخطاء منطقية أو ثغرات أمنية. هو مساعدك، مش بديل عن عقلك. دايماً اقرأ الكود المقترح، افهمه، وتأكد من سلامته قبل ما تعتمده.
  2. فن كتابة التعليقات (Prompts): جودة المخرجات من جودة المدخلات. كل ما كان تعليقك أو بداية الكود اللي بتكتبه أوضح وأكثر تحديداً، كل ما كان الاقتراح أفضل. بدل ما تكتب `// get data`، اكتب `// fetch active users from the database, sorted by registration date descending`.
  3. لا تستخدمه للغش، بل للتعلم: إذا كنت طالب أو مبتدئ، لا تخلي الأداة تحل عنك واجباتك بدون ما تفهم. استخدمها كفرصة للتعلم. لما يقترح عليك كود، اسأل حالك: “ليش كتبه بهاي الطريقة؟ شو هاي الدالة بتعمل؟”. هيك بتطور حالك أسرع.
  4. انتبه للخصوصية والأمان: تذكر أن الكود اللي بتكتبه (والتعليقات) ممكن يتم إرساله لخوادم الشركة (مثل GitHub/Microsoft) لتحسين النموذج. تجنب كتابة أي معلومات حساسة جداً مثل كلمات سر، مفاتيح API، أو بيانات شخصية في الكود اللي بتشاركه مع الأداة.

الخلاصة: هل سيأخذ الذكاء الاصطناعي وظائفنا؟

بعد كل هالحكي، بيجي السؤال الكبير: هل هاي الأدوات رح تخلينا كبشر بلا وظيفة؟

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

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

نصيحتي الأخيرة لكل مبرمج ومبرمجة: لا تخافوا من هاي الأدوات، بل احتضنوها. جربوها، تعلموا عليها، وخلّوها تكون “الملاح” الذكي في رحلتكم البرمجية. رح تتفاجأوا بحجم الوقت والجهد اللي رح توفروه، وبحجم الإبداع اللي رح تطلقوه. 🚀

والله ولي التوفيق.

أبو عمر

سجل دخولك لعمل نقاش تفاعلي

كافة المحادثات خاصة ولا يتم عرضها على الموقع نهائياً

آراء من النقاشات

لا توجد آراء منشورة بعد. كن أول من يشارك رأيه!

آخر المدونات

اختبارات الاداء والجودة

اختباراتي كانت تمر، لكن الكود كان هشًا: كيف أنقذني ‘الاختبار الطفري’ (Mutation Testing) من جحيم الثقة الزائفة؟

كنت أظن أن تغطية الاختبارات بنسبة 100% هي درع الأمان لكودي، إلى أن كشف لي "الاختبار الطفري" (Mutation Testing) عن هشاشة هذه الثقة. في هذه...

30 مارس، 2026 قراءة المزيد
نصائح برمجية

الكود الخاص بي كان هرمًا: كيف أنقذتني ‘شروط الحماية’ (Guard Clauses) من جحيم الكود السهمي؟

أتذكر جيدًا ذلك الكود الذي يشبه هرمًا مائلاً، مجموعة من الشروط المتداخلة التي جعلت حياتي جحيمًا. في هذه المقالة، أشارككم تجربتي وكيف أنقذتني تقنية بسيطة...

30 مارس، 2026 قراءة المزيد
​معمارية البرمجيات

تطبيقي المونوليثي كان وحشًا: كيف أنقذني نمط ‘التين الخانق’ (Strangler Fig) من جحيم التحديث المستحيل؟

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

30 مارس، 2026 قراءة المزيد
خوارزميات

بحثي كان يقرأ كل سطر: كيف أنقذتني خوارزمية ‘البحث الثنائي’ (Binary Search) من جحيم الانتظار الطويل؟

أشارككم قصة حقيقية من بداياتي في البرمجة، عندما كان كود البحث البطيء كابوساً يؤرقني. اكتشفوا معي كيف غيرت خوارزمية البحث الثنائي البسيطة كل شيء، وحولت...

30 مارس، 2026 قراءة المزيد
تسويق رقمي

ميزانيتي التسويقية كانت ثقبًا أسود: كيف أنقذني ‘نموذج الإحالة’ (Attribution Model) من جحيم الإنفاق الأعمى؟

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

30 مارس، 2026 قراءة المزيد
تجربة المستخدم والابداع البصري

واجهاتي كانت فوضى من الألوان والأزرار: كيف أنقذني ‘نظام التصميم’ (Design System) من جحيم التناقض البصري؟

أشارككم تجربتي كـ "أبو عمر"، مبرمج فلسطيني، مع الفوضى البصرية في المشاريع وكيف كان "نظام التصميم" (Design System) هو طوق النجاة. سنتعلم معاً ما هو...

30 مارس، 2026 قراءة المزيد
الشبكات والـ APIs

خدماتي المصغرة كانت كابوسًا: كيف أنقذتني ‘بوابة الواجهات البرمجية’ (API Gateway) من جحيم الفوضى؟

كنت أغرق في بحر من الواجهات البرمجية المكشوفة لخدماتي المصغرة، حتى اكتشفت "بوابة الواجهات البرمجية" (API Gateway). تعالوا أروي لكم كـ "أبو عمر" كيف أعاد...

30 مارس، 2026 قراءة المزيد
الحوسبة السحابية

كنت أراهن بكل شيء على سحابة واحدة: كيف أنقذتني استراتيجية ‘السحابة المتعددة’ من جحيم الارتهان لمزود واحد؟

أشارككم قصة حقيقية كادت أن تدمر أحد مشاريعي بسبب الاعتماد الكلي على مزود سحابي واحد. سأشرح لكم كيف كانت استراتيجية السحابة المتعددة (Multi-Cloud) طوق النجاة،...

30 مارس، 2026 قراءة المزيد
البودكاست