في هندسة البرمجيات، كتابة الكود ليست أول خطوة، وإطلاق النظام ليس آخر خطوة.
قبل أن نبدأ بالتطوير، نحتاج إلى فهم الرحلة الكاملة التي يمر بها أي نظام برمجي، وهنا يأتي مفهوم SDLC — Software Development Life Cycle أو دورة حياة تطوير البرمجيات.
SDLC تنظم عملية تطوير النظام عبر مراحل واضحة:
تحليل المتطلبات → التخطيط → التصميم → البرمجة → الاختبار → النشر → الصيانة
القيمة الحقيقية لهذه المراحل ليست في حفظ أسمائها، بل في فهم دور كل مرحلة.
فالمتطلبات الخاطئة قد تجعلنا نبني المنتج الخطأ، والتصميم الضعيف قد يجعل النظام صعب التطوير، والاختبار غير الكافي قد ينقل المشاكل إلى المستخدم، وحتى بعد النشر تستمر رحلة النظام من خلال الصيانة والتحسين وإضافة المتطلبات الجديدة.
لهذا أنظر إلى SDLC على أنها أكثر من مجرد مراحل لتطوير البرمجيات؛ إنها طريقة منظمة لتحويل مشكلة أو فكرة إلى منتج برمجي قابل للاستخدام والتطوير والاستمرار.
في هذا الكاروسيل شرحت المراحل خطوة بخطوة، مع مثال عملي لبناء متجر إلكتروني لتوضيح الصورة.
هذا هو المنشور #002 من سلسلة Software Engineering التي أشارك فيها المفاهيم الأساسية في هندسة البرمجيات بصورة مبسطة وعملية.
المنشور القادم #003: Requirements
وسنتحدث عن الفرق بين Functional Requirements و Non-Functional Requirements وكيف تؤثر المتطلبات على المشروع منذ البداية.
برأيكم: ما المرحلة التي يمكن أن يسبب إهمالها أكبر تكلفة على المشروع؟
— م. طارق العمري
Software Engineer | Backend Developer
#SoftwareEngineering #SDLC #SoftwareDevelopment #SoftwareEngineer #BackendDevelopment #SystemDesign #Programming #SoftwareArchitecture #هندسة_البرمجيات #تطوير_البرمجيات #برمجة
قبل أن نبدأ بالتطوير، نحتاج إلى فهم الرحلة الكاملة التي يمر بها أي نظام برمجي، وهنا يأتي مفهوم SDLC — Software Development Life Cycle أو دورة حياة تطوير البرمجيات.
SDLC تنظم عملية تطوير النظام عبر مراحل واضحة:
تحليل المتطلبات → التخطيط → التصميم → البرمجة → الاختبار → النشر → الصيانة
القيمة الحقيقية لهذه المراحل ليست في حفظ أسمائها، بل في فهم دور كل مرحلة.
فالمتطلبات الخاطئة قد تجعلنا نبني المنتج الخطأ، والتصميم الضعيف قد يجعل النظام صعب التطوير، والاختبار غير الكافي قد ينقل المشاكل إلى المستخدم، وحتى بعد النشر تستمر رحلة النظام من خلال الصيانة والتحسين وإضافة المتطلبات الجديدة.
لهذا أنظر إلى SDLC على أنها أكثر من مجرد مراحل لتطوير البرمجيات؛ إنها طريقة منظمة لتحويل مشكلة أو فكرة إلى منتج برمجي قابل للاستخدام والتطوير والاستمرار.
في هذا الكاروسيل شرحت المراحل خطوة بخطوة، مع مثال عملي لبناء متجر إلكتروني لتوضيح الصورة.
هذا هو المنشور #002 من سلسلة Software Engineering التي أشارك فيها المفاهيم الأساسية في هندسة البرمجيات بصورة مبسطة وعملية.
المنشور القادم #003: Requirements
وسنتحدث عن الفرق بين Functional Requirements و Non-Functional Requirements وكيف تؤثر المتطلبات على المشروع منذ البداية.
برأيكم: ما المرحلة التي يمكن أن يسبب إهمالها أكبر تكلفة على المشروع؟
— م. طارق العمري
Software Engineer | Backend Developer
#SoftwareEngineering #SDLC #SoftwareDevelopment #SoftwareEngineer #BackendDevelopment #SystemDesign #Programming #SoftwareArchitecture #هندسة_البرمجيات #تطوير_البرمجيات #برمجة
#003 — Requirements | المتطلبات
في هندسة البرمجيات، أحد أكبر الأخطاء هو أن تبدأ في كتابة الكود قبل أن تعرف بدقة ما الذي يجب أن تبنيه ولماذا.
قد يكون لديك فريق ممتاز، وتقنيات حديثة، وكود نظيف، لكن إذا كانت المتطلبات غير واضحة فقد ينتهي بك الأمر إلى بناء نظام ممتاز تقنيًا... لكنه لا يحل المشكلة الحقيقية.
هنا تأتي أهمية Requirements.
المتطلبات هي الجسر بين احتياج المستخدم وبين النظام الذي سنبنيه. ومن خلالها نفهم المشكلة، واحتياجات أصحاب المصلحة، والوظائف المطلوبة، والقيود التي يجب أن يعمل النظام ضمنها.
المتطلبات الواضحة تساعد الفريق على اتخاذ قرارات أفضل في التصميم والتطوير، تقلل إعادة العمل والتكاليف، وتوفر أساسًا واضحًا للاختبار والتحقق من أن المنتج النهائي يحقق الهدف المطلوب.
ولهذا قبل أن تسأل:
كيف سنبني النظام؟
اسأل أولًا:
ماذا نحتاج أن نبني؟ ولماذا؟
فالهدف في هندسة البرمجيات ليس كتابة أكبر قدر من الكود، بل بناء الحل الصحيح للمشكلة الصحيحة.
في هذا الكاروسيل شرحت مفهوم Requirements، مصادر المتطلبات، أهميتها، وما الذي يمكن أن يحدث عندما يبدأ المشروع بمتطلبات غامضة.
السؤال للنقاش:
أيهما أخطر برأيك: تنفيذ Requirement بطريقة خاطئة، أم تنفيذ Requirement لم يكن مطلوبًا من الأساس؟
المنشور القادم #004 — Functional Requirements
وسنتحدث عن كيفية تحديد ما الذي يجب أن يفعله النظام.
م. طارق العمري
Software Engineer | Backend Developer
#SoftwareEngineering #Requirements #RequirementsEngineering #SoftwareDevelopment #SoftwareEngineer #SystemAnalysis #SystemDesign #BackendDevelopment #Programming #SoftwareArchitecture #هندسة_البرمجيات #تحليل_النظم #تطوير_البرمجيات #برمجة
في هندسة البرمجيات، أحد أكبر الأخطاء هو أن تبدأ في كتابة الكود قبل أن تعرف بدقة ما الذي يجب أن تبنيه ولماذا.
قد يكون لديك فريق ممتاز، وتقنيات حديثة، وكود نظيف، لكن إذا كانت المتطلبات غير واضحة فقد ينتهي بك الأمر إلى بناء نظام ممتاز تقنيًا... لكنه لا يحل المشكلة الحقيقية.
هنا تأتي أهمية Requirements.
المتطلبات هي الجسر بين احتياج المستخدم وبين النظام الذي سنبنيه. ومن خلالها نفهم المشكلة، واحتياجات أصحاب المصلحة، والوظائف المطلوبة، والقيود التي يجب أن يعمل النظام ضمنها.
المتطلبات الواضحة تساعد الفريق على اتخاذ قرارات أفضل في التصميم والتطوير، تقلل إعادة العمل والتكاليف، وتوفر أساسًا واضحًا للاختبار والتحقق من أن المنتج النهائي يحقق الهدف المطلوب.
ولهذا قبل أن تسأل:
كيف سنبني النظام؟
اسأل أولًا:
ماذا نحتاج أن نبني؟ ولماذا؟
فالهدف في هندسة البرمجيات ليس كتابة أكبر قدر من الكود، بل بناء الحل الصحيح للمشكلة الصحيحة.
في هذا الكاروسيل شرحت مفهوم Requirements، مصادر المتطلبات، أهميتها، وما الذي يمكن أن يحدث عندما يبدأ المشروع بمتطلبات غامضة.
السؤال للنقاش:
أيهما أخطر برأيك: تنفيذ Requirement بطريقة خاطئة، أم تنفيذ Requirement لم يكن مطلوبًا من الأساس؟
المنشور القادم #004 — Functional Requirements
وسنتحدث عن كيفية تحديد ما الذي يجب أن يفعله النظام.
م. طارق العمري
Software Engineer | Backend Developer
#SoftwareEngineering #Requirements #RequirementsEngineering #SoftwareDevelopment #SoftwareEngineer #SystemAnalysis #SystemDesign #BackendDevelopment #Programming #SoftwareArchitecture #هندسة_البرمجيات #تحليل_النظم #تطوير_البرمجيات #برمجة
ما هو Freebuff CLI؟
أداة Freebuff CLI هي "وكيل برمجي" (AI Coding Agent) مدعوم بالذكاء الاصطناعي، يعمل مباشرة من خلال موجه الأوامر (Terminal). صُممت هذه الأداة لتكون بديلاً مجانياً بالكامل لأدوات البرمجة المدفوعة مثل Cursor، و Claude Code، و Devin، و Codex.
تعتمد الأداة على نموذج تمويل مبتكر عبر عرض إعلانات نصية بسيطة أثناء الاستخدام، مما يوفر للمطورين بيئة عمل مجانية تماماً دون الحاجة إلى اشتراكات شهرية، أو مفاتيح (API Keys)، أو إدخال بطاقات ائتمانية.
أبرز المميزات
نماذج ذكاء اصطناعي متطورة: تتيح الأداة الوصول إلى نماذج قوية ومجانية مثل DeepSeek V4 Pro/Flash، و GPT-5.6 Luna، و MiniMax M3، و MiMo V2.5.
هيكلية الوكلاء المتعددين (Multi-agent): بدلاً من الاعتماد على نموذج واحد لمعالجة كل شيء، تستخدم الأداة وكلاء متخصصين؛ أحدهم للبحث وفهم ملفات المشروع، وآخر للتخطيط، وآخر لتعديل الكود، وآخر للمراجعة.
تنفيذ المهام المستقل: الأداة قادرة على استكشاف ملفات المشروع بشكل مستقل، واقتراح التعديلات، وكتابة الأكواد، بل وتستطيع أيضاً تشغيل أوامر الفحص والاختبار (Tests) لضمان عمل الكود المُضاف.
دعم الأنظمة: تعمل بسلاسة على أنظمة Windows، و macOS، و Linux.
كيفية التثبيت والتشغيل
بما أن الأداة موجهة لبيئات التطوير، فهي تتطلب وجود بيئة
Bash
طريقة الاستخدام:
افتح موجه الأوامر (Terminal) وتوجه إلى مجلد مشروعك (سواء كان مشروعاً جديداً أو قائماً بالفعل):
Bash
قم بتشغيل الأداة عبر الأمر:
Bash
اكتب طلبك البرمجي أو التعديل الذي تريده باللغة الطبيعية (مثلاً: "قم ببناء نظام تسجيل دخول" أو "حل مشكلة الأخطاء في ملف قاعدة البيانات")، وستقوم الأداة بقراءة الملفات ذات الصلة وإجراء التعديلات المطلوبة تلقائياً.
أداة Freebuff CLI هي "وكيل برمجي" (AI Coding Agent) مدعوم بالذكاء الاصطناعي، يعمل مباشرة من خلال موجه الأوامر (Terminal). صُممت هذه الأداة لتكون بديلاً مجانياً بالكامل لأدوات البرمجة المدفوعة مثل Cursor، و Claude Code، و Devin، و Codex.
تعتمد الأداة على نموذج تمويل مبتكر عبر عرض إعلانات نصية بسيطة أثناء الاستخدام، مما يوفر للمطورين بيئة عمل مجانية تماماً دون الحاجة إلى اشتراكات شهرية، أو مفاتيح (API Keys)، أو إدخال بطاقات ائتمانية.
أبرز المميزات
نماذج ذكاء اصطناعي متطورة: تتيح الأداة الوصول إلى نماذج قوية ومجانية مثل DeepSeek V4 Pro/Flash، و GPT-5.6 Luna، و MiniMax M3، و MiMo V2.5.
هيكلية الوكلاء المتعددين (Multi-agent): بدلاً من الاعتماد على نموذج واحد لمعالجة كل شيء، تستخدم الأداة وكلاء متخصصين؛ أحدهم للبحث وفهم ملفات المشروع، وآخر للتخطيط، وآخر لتعديل الكود، وآخر للمراجعة.
تنفيذ المهام المستقل: الأداة قادرة على استكشاف ملفات المشروع بشكل مستقل، واقتراح التعديلات، وكتابة الأكواد، بل وتستطيع أيضاً تشغيل أوامر الفحص والاختبار (Tests) لضمان عمل الكود المُضاف.
دعم الأنظمة: تعمل بسلاسة على أنظمة Windows، و macOS، و Linux.
كيفية التثبيت والتشغيل
بما أن الأداة موجهة لبيئات التطوير، فهي تتطلب وجود بيئة
Node.js (إصدار 18 أو أحدث). يتم تثبيت الأداة على جهازك بشكل شامل (Globally) عبر مدير الحزم npm باستخدام الأمر التالي:Bash
npm install -g freebuff
طريقة الاستخدام:
افتح موجه الأوامر (Terminal) وتوجه إلى مجلد مشروعك (سواء كان مشروعاً جديداً أو قائماً بالفعل):
Bash
cd your-project
قم بتشغيل الأداة عبر الأمر:
Bash
freebuff
اكتب طلبك البرمجي أو التعديل الذي تريده باللغة الطبيعية (مثلاً: "قم ببناء نظام تسجيل دخول" أو "حل مشكلة الأخطاء في ملف قاعدة البيانات")، وستقوم الأداة بقراءة الملفات ذات الصلة وإجراء التعديلات المطلوبة تلقائياً.