خان المُبرمجين (علي فاضل) – Telegram
خان المُبرمجين (علي فاضل)
642 subscribers
113 photos
11 videos
132 links
قناة أنشر فيها ما أتعلمه خلال عملي على مشاريعي الخاصة 👀
Download Telegram
بدأ إطار عمل Ruby on Rails سنة 2004، وفي قول آخر سنة 2002، وهذه التحديثات التي حصلت في الإصدار الأخير 8.1.2:
https://github.com/rails/rails/releases/tag/v8.1.2

أدخل على الرابط وابحث عن كلمة Fix، ستجد أنها تكررت أكثر من 20 مرة.

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

أظن أن الرسالة وصلت 😁
4😁4
خان المُبرمجين (علي فاضل)
Photo
قبل 10 سنوات كان لديّ موقع اسمه Ruby3arabi لشرح لغة Ruby باللغة العربية (اسم على مُسمًّى)، ثم هجرته لأسباب عديدة.

نهاية الأسبوع الماضي قررت إعادة بنائه باستخدام Ralph مع قاعدتين بسيطتين: لن ألمس الشيفرة البرمجية، ولن أتخذ أي قرارات.

بدأت بسؤال Claude (من المتصفح) عن المواضيع التي يجب تغطيتها في موقع لتعليم Ruby، ثم حوّلت إجاباته إلى PRD مفصّل باستخدام PRD Skill من Ralph، ثم إلى 58 مهمة باستخدام Ralph Skill.

يمكنك قراءة المحادثة كاملة مع Claude من هنا:
https://claude.ai/share/20d07a1b-c06e-4633-9862-4ae83718a4a8
ويمكنك قراءة ملفات الـ Prompts والـ PRD والمهمات من مستودع روبي عربي الموجود في الأسفل.

شغّلت Ralph loop وذهبت للعمل. بعد 7 ساعات متواصلة كان الموقع جاهزًا بتصميم جميل ومحتوى متكامل ولغة Ruby تعمل في المتصفح بفضل Ruby WASM!

راجعت النتيجة ووجدت 20 تحسينًا للواجهة، فكررت العملية وشغّلت Ralph loop مرة أخرى قبل النوم.

الجميل أن الوكيل كان "مبدعًا"، أضاف تتبّعًا لتقدّم المتعلّم وقاموس مصطلحات وتلميحات للتمارين، كلها أشياء لم أطلبها.

الآن الموقع جاهز على https://ruby3araby.com وسأركّز على المحتوى. أريده أن يكون المصدر الأساسي لتعلّم Ruby باللغة العربية.

10 سنوات بين النسختين، 7 ساعات لإعادة البناء، 0 أسطر كتبتها بنفسي.

مستودع Ralph:
https://github.com/snarktank/ralph
مستودع روبي عربي:
https://github.com/AliOsm/ruby3araby

والسؤال: هل تعتقدون أننا وصلنا لمرحلة "المبرمج المدير" الذي يوجه الوكلاء الذكيين فقط؟ 🤖

والسلام عليكم 👋🏻
14
من الأشياء المُفرحة:
أن تطلب من وكيل البرمجة إنجاز مهمة ثم تكتشف خطأ في الشيفرة التي كتبها 🤓
7
تخيّل أنك تستطيع اختبار موقعكم من خلال كتابة شيفرة برمجية نظيفة ولطيفة كالشيفرة المُوضّحة في الصورة 😍

هذه ما تُسمّى بـ System Tests في Ruby on Rails وهي تستخدم مكتبة Capybara.

هذا النوع من الاختبارات يُشغّل الموقع على مُتصفّح حقيقي وينتقل بين الصفحات ويضغط الأزرار ويملأ مربعات الإدخال ويتأكد من أن أجزاء الموقع المختلفة تعمل كما هو متوقع.

هذه الاختبارات بطيئة غالبا مقارنة بالـ Unit Tests، لذلك غالبا نستخدم عدد قليل منها لاختبار الأجزاء المهمة جدا بالنسبة للمستخدم والتي نحتاج لضمان بقاءها تعمل بعد أي تعديل.
4
عندما بدأت التدرّب للمشاركة في مسابقات البرمجة التنافسية أيام الجامعة سنة 2016، رتّب لنا المدرّب ذكره الله بالخير مسابقة ومن قواعد هذه المسابقات عامة أنك تستطيع إدخال كتب أو شيفرات برمجية مكتوبة أو مطبوعة على الورق.

جلست ليلة المسابقة وكتبت تفاصيل هياكل البيانات التي تعلمتها خلال التدريب وكانت كلها جديدة بالنسبة لي:
Vector
Stack
Queue
Map
Set
Priority Queue

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

كل ذلك كان بلغة C++

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

وعلى غرار سؤال "كيف ترى قيادتي؟" المنتشر على الشاحنات في الأردن، "كيف ترى خطي؟" 😂
5😁4👍1
Media is too big
VIEW IN TELEGRAM
تعرّفت البارحة على الـ Mutation Testing، وأنا مُعجب جدًّا بالفكرة 🤩
في هذا الفيديو أشرح ما تعلمته من البارحة إلى اليوم 😂 وكيف طبَّقته في الشركة

الفيديو على YouTube:
https://www.youtube.com/watch?v=Bb4iWHFSun4
7
شركة مثل PlanetScale تستخدم Ruby on Rails ولكن Rails لا تستطيع تحمّل عدد مستخدمي موقعك 😁
1😁1👀1
اليوم ولأول مرة أثق في Claude Code وأُسلِّمه مهمة تتضمن تعقيدًا برمجيًّا وغموضًا في المتطلبات أنا شخصيًّا لم أكن مُلِمًّا بها، وفاجأني وأنجز المهمة 😁
3
خان المُبرمجين (علي فاضل)
Photo
سنة 2019 كنت أبحث عن فرصة تدريب جامعي. قدَّمت للكثير من الشركات وقابلت في أكثر من واحدة وكانت دائما المشكلة في الجنسية. أنا ليبي وأدرس في الأردن والشركات تستصعب استصدار الأوراق المطلوبة سواء لتدريب أو توظيف الأجانب. كانت فترة صعبة ولكن ولله الحمد توفقت لفرصة تدريبية في شركة Samsung بعد ترشيح من مُشرف مشروع تخرُّجي وأستاذي بارك الله فيه وفي علمه وعمله، واجتيازي للمقابلة.

عزيزي الطالب، أتفهَّم شعورك أثناء مرحلة البحث عن فرصة للتدريب الجامعي، وما ذكرته في الأعلى يُثبت ذلك، ولكن أن تُرسل أنت وأصدقائك نفس البريد الإلكتروني (المكتوب باستخدام أدوات الذكاء الاصطناعي غالبًا) بحثًا عن فرصة تدريبية وتذكر في بداية البريد: "Dear Sir/Madam" فهذا يعني أنك لا تدري مع من تتكلم ولا تُخاطب الشخص بما يُريد أن يسمعه منك وعنك.

الصورة المُرفقة وصلتني على بريدي الشخصي من 3 أيام تقريبًا وترددت جدًّا في نشر هذا المنشور، ويعلم الله أن هدفي هو النصح للطلبة فقد كنت واحدًا منهم في يوم من الأيام. قال رسول الله صلى الله عليه وسلم: "بِحسْبِ امْرِئٍ من الشَّرِّ أنْ يَحقِرَ أخاهُ المسلِمَ" - صححه الألباني.

فاهتموا بكتابة بريد مخصص للشخص المُرسل له بارك الله فيكم، واهتموا باختصار سيرتكم الذاتية وذكر المهم فيها وما يتعلَّق بالوظيفة التي تطلبونها، وأخيرًا اهتموا بحساباتكم على GitHub (أو غيره) وعلى LinkedIn و X وغيرها وانشروا المشاريع التي تعملون على تنفيذها والمهارات التي تتعلمونها. فما فائدة حساب GitHub أو LinkedIn (أو غيره) فارغ لا يخبرني عنك شيئًا؟

كونوا مبدعين في تواصلكم وتسويق خبراتكم وإظهارها، فالعادي كثير والشركات المميزة تبحث عن الاستثنائيين.

هذا والله أعلى وأعلم، والسلام عليكم 👋🏻
14
خلال بحث على Google (نعم، أستخدم Google أحيانا 😅) وجدت هذا المنشور على Reddit واستوقفني العنوان:
"I spent the past 3 months working on a..."

عمر هذا المنشور 3 سنوات، أظن لو أن الكاتب بدأ العمل على نفس المشروع اليوم، فسينتهي خلال أيام. الأمور تتطور بسرعة كبيرة.
2👍2
خان المُبرمجين (علي فاضل)
Photo
سنة 2024 بنيت مكتبة تحويل بلغة Python واستغرق الأمر 9 أيام (بناءً على Git) مع العلم أن جزءًا كبيرًا من شيفرة المكتبة كان موجودًا في ملفات خارجية مسبقًا. دور الذكاء الاصطناعي كان محدودًا نوعًا ما، مجرد أسئلة وأجوبة على المتصفح.

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

سنة 2026 أعدت بناء المكتبة باستخدام Tauri لبناء تطبيق سطح مكتب لها (Rust + JS) وهذه المرة استغرق الأمر يومين فقط. الذكاء الاصطناعي كتب كل شيء بنفسه ولم أراجع الشيفرة البرمجية المُنتجة، لأن معرفتي بـ Rust تساوي معرفتي بالكيمياء الحيوية.

فقط طلبت منه استخدام مكتبة Ruby كمرجع. ثم بعد انتهاءه من الكتابة، أصلحت بعض الأمور البسيطة كالـ CI.

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

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

الروابط في أول تعليق 👇

والسلام عليكم 👋🏻
7