فكر برمجي
442 subscribers
345 photos
2 videos
67 files
189 links
#فكر_برمجي
Think_Programmatically
قناة تقنية متخصصة في البرمجة وتطوير المهارات. نوفر شروحات مبسطة، موارد مفيدة، وأفكار ملهمة لتحويل شغفك بالتقنية إلى إبداع.
Download Telegram
Hermes Agent، وهو عبارة عن وكيل ذكاء اصطناعي (AI Agent) مفتوح المصدر تم تطويره بواسطة شركة Nous Research وتم إصداره في عام 2026.
هذا البرنامج ليس مجرد روبوت محادثة عادي (Chatbot)، بل هو مساعد شخصي يعمل ويستقر على جهازك الخاص أو خادمك (Server)، ويتطور ويصبح أكثر ذكاءً مع مرور الوقت.
إليك أبرز ما يميز Hermes Agent بناءً على ما جاء في الموقع:
ذاكرة مستمرة (Persistent Memory): يتذكر تفضيلاتك ومشاريعك وسياق عملك في كل مرة تستخدمه فيها، مما يغنيك عن إعادة شرح الأمور له مراراً وتكراراً.
إنشاء المهارات تلقائياً (Automated Skill Creation): عندما يحل مشكلة معقدة، فإنه يكتب لنفسه "مهارة" جديدة (Skill) ليتذكر كيفية حلها في المستقبل، ويمكن مشاركة هذه المهارات أو البحث عنها.
الربط مع منصات متعددة (Multi-Platform): يمكنك ربطه ليعمل كـ "بوت" عبر تطبيقاتك المفضلة مثل تيليجرام (Telegram)، ديسكورد (Discord)، واتساب (WhatsApp)، وسلاك (Slack)، بالإضافة إلى سطر الأوامر (CLI).
الأتمتة والتحكم الكامل (Browser & Web Control): يمكنه تصفح الويب، النقر، الكتابة، أخذ لقطات شاشة، جدولة المهام تلقائياً، وحتى تشغيل الأكواد البرمجية.
الخصوصية التامة: البرنامج يعمل بنسبة 100% على جهازك الشخصي (Self-hosted)، ولا يقوم بجمع بياناتك أو تتبعها (Zero telemetry)، وهو متاح برخصة MIT مفتوحة المصدر.
دعم متخصص للمطورين (MLOps): يحتوي على أدوات متقدمة لتوليد بيانات التدريب (Training data) وإجراء تجارب التعلم المعزز (RL) للذكاء الاصطناعي.
باختصار، هو أداة قوية جداً للمطورين والمستخدمين المتقدمين الذين يرغبون في امتلاك مساعد ذكاء اصطناعي مستقل، يتمتع بذاكرة دائمة، وقابل للتخصيص بالكامل دون القلق بشأن الخصوصية.

https://hermes-agent.org/

https://github.com/NousResearch/hermes-agent
1
هناك أشخاص ينجزون في ساعة بالذكاء الاصطناعي ما يحتاج غيرهم أياماً لإنجازه... هل تعرف السر؟!
السر ليس في استخدام الذكاء الاصطناعي فقط، بل في معرفة كيف تتعامل معه بذكاء.
ندعوك لحضور الندوة المجانية *تعامل مع الذكاء الاصطناعي بذكاء*
🎤 مع المهندس أحمد محمد الورد
📅 الثلاثاء 7 يوليو
الساعة 9:00 صباحاً
📍 القاعة الكبرى
🎯 فرصة مجانية للتعلم، التطور، وامتلاك مهارة أصبحت من أهم مهارات المستقبل.
2
هل سمعت عن Nexos.ai؟ المنصة التي قد تغيّر طريقة عمل المطورين والشركات مع الذكاء الاصطناعي
في السنوات الأخيرة أصبح الذكاء الاصطناعي جزءًا أساسيًا من تطوير البرمجيات، لكن التحدي لم يعد في استخدام نموذج واحد، بل في إدارة عدة نماذج، وربطها ببيانات الشركة، وتحويلها إلى وكلاء ذكيين (AI Agents) يعملون بشكل مستقل.
وهنا يبرز دور Nexos.ai، وهي منصة متخصصة تتيح للمطورين والشركات إنشاء وإدارة وكلاء الذكاء الاصطناعي، وأتمتة سير العمل، والتكامل مع الأدوات المختلفة من خلال منصة واحدة.
🌐 الموقع الرسمي: https://nexos.ai
أبرز المميزات
إنشاء وكلاء ذكاء اصطناعي مخصصين لمختلف المهام.
دعم أشهر النماذج مثل GPT وClaude وGemini وMistral من مكان واحد.
التكامل مع GitHub وGoogle Workspace وSlack وغيرها.
أتمتة العمليات المتكررة وزيادة الإنتاجية.
بناء سير عمل متكامل بأسلوب No-Code أو بمرونة تناسب المطورين.
لماذا تهم المطورين؟
إذا كنت Backend أو Frontend أو Full Stack Developer، فيمكنك الاستفادة منها في:
مراجعة الأكواد تلقائيًا.
إنشاء التوثيق البرمجي.
تحليل قواعد البيانات.
كتابة التقارير الفنية.
بناء مساعدين ذكيين لفريق التطوير.
تسريع دورة تطوير البرمجيات.
الخلاصة
المستقبل لا يتجه نحو استخدام نموذج ذكاء اصطناعي واحد، بل نحو منظومة من الوكلاء الأذكياء تتعاون لإنجاز المهام بكفاءة أعلى.
إذا كنت مطورًا أو تعمل في شركة تقنية، فقد تكون Nexos.ai من المنصات التي تستحق التجربة والاطلاع عليها.
ما أول وكيل ذكاء اصطناعي ستقوم ببنائه لو استخدمت هذه المنصة؟
💯1
لماذا لا يكفي تشغيل المشروع على جهازك فقط؟
فهم البيئات الثلاث في هندسة البرمجيات الحديثة
Local vs Staging vs Production

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

لكن في الشركات البرمجية الحقيقية الأمر مختلف تمامًا.

المشروع لا يعيش داخل بيئة واحدة فقط، بل يمر غالبًا عبر ثلاث بيئات رئيسية:

Local Environment
Staging Environment
Production Environment

وهذه ليست مجرد أسماء، بل فلسفة كاملة في هندسة البرمجيات الحديثة وإدارة دورة حياة الأنظمة.

أولًا: بيئة التطوير المحلية (Local Environment)

هي البيئة التي يعمل عليها المطور داخل جهازه الشخصي.

عادةً تشمل:

VS Code أو Visual Studio
قاعدة بيانات محلية
Localhost
Docker أحيانًا
ملفات تجريبية
بيانات غير حقيقية

مثال:

localhost:3000
localhost:8000
127.0.0.1

في هذه المرحلة يقوم المطور بـ:

كتابة الكود
تجربة الميزات
إصلاح الأخطاء
اختبار الأفكار الجديدة
بناء النظام مبدئيًا
المشكلة الكبيرة هنا

الكثير يظن أن:

“إذا اشتغل المشروع عندي إذن المشروع ناجح”

وهذا خطأ هندسي خطير.

لأن المشروع داخل Local Environment يعمل في ظروف مثالية جدًا:

نفس جهاز المطور
نفس نظام التشغيل
نفس المكتبات
نفس الشبكة
نفس الإعدادات

بينما المستخدم الحقيقي لن يعمل في هذه الظروف.

ثانيًا: بيئة الاختبار (Staging Environment)

وهنا يبدأ الانتقال من “مشروع طالب” إلى “نظام حقيقي”.

بيئة Staging هي نسخة شبه مطابقة للإنتاج الحقيقي (Production)، لكن مخصصة للاختبار النهائي.

بمعنى:

كأنك تبني نسخة تجريبية من العالم الحقيقي قبل إطلاق المشروع للناس.

لماذا نحتاج Staging؟

لأن كثيرًا من المشاكل لا تظهر في Local.

مثل:

مشاكل السيرفر
مشاكل الأداء
مشاكل الشبكة
أخطاء قواعد البيانات
مشاكل الصلاحيات
مشاكل رفع الملفات
مشاكل API
اختلاف أنظمة التشغيل
مشاكل الحماية
مشاكل التوافق
ماذا يحدث داخل Staging؟

يتم:

رفع المشروع على سيرفر حقيقي
استخدام قاعدة بيانات قريبة من الحقيقية
اختبار المستخدمين
اختبار الأمان
اختبار الأداء
تجربة التحديثات قبل النشر
مثال واقعي

تخيل أنك طورت منصة تجارة إلكترونية.

في جهازك:

الصور تفتح بسرعة
الدفع يعمل
النظام ممتاز

لكن بعد رفع المشروع:

السيرفر ينهار مع 100 مستخدم
API بطيء
الملفات لا تُرفع
الصلاحيات معطلة
قاعدة البيانات تتجمد

هنا تظهر أهمية Staging.

ثالثًا: بيئة الإنتاج (Production Environment)

هذه البيئة هي النسخة النهائية التي يستخدمها العملاء الحقيقيون.

أي خطأ هنا قد يعني:

خسارة مالية
توقف الخدمة
فقدان بيانات
مشاكل أمنية
انهيار ثقة المستخدمين

ولهذا فإن التعامل مع Production يختلف جذريًا عن Local.

في Production يصبح كل شيء حساسًا

حتى سطر كود واحد قد يسبب كارثة.

لهذا تستخدم الشركات:

CI/CD Pipelines
Monitoring Systems
Logging
Load Balancing
Auto Scaling
Backups
Security Layers
Observability
Rollback Systems
الفرق الحقيقي بين المبرمج والمُهندس البرمجي

المبرمج قد يكتب كود يعمل.

أما المهندس البرمجي فيفكر في:

أين سيعمل النظام؟
كيف سيتم نشره؟
كيف سيتحمل الضغط؟
ماذا لو تعطل السيرفر؟
كيف نمنع فقدان البيانات؟
كيف نراقب الأخطاء؟
كيف نحدث النظام بدون توقف الخدمة؟
دورة المشروع الحقيقية داخل الشركات

غالبًا تكون كالتالي:

Developer Machine (Local)

Git Repository

CI/CD Pipeline

Staging Server

QA Testing

Production Deployment

Monitoring & Maintenance
لماذا هذه الفكرة مهمة جدًا لطلاب البرمجة؟

لأن أغلب الطلاب جالس يتعلم لغات برمجة واطر عمل ولا خرج الى طريق

كتابة الكود فقط

لكن سوق العمل يحتاج:

فهم دورة حياة النظام بالكامل

وهنا الفرق بين:

شخص “يبني مشروع”
و
مهندس يستطيع إدارة نظام حقيقي قابل للتوسع.
التقنيات المرتبطة بهذه البيئات

كلما تعمقت ستتعلم أدوات مرتبطة بها مثل:

Local

Docker
XAMPP
WAMP
Local Databases

Staging

Jenkins
GitHub Actions
GitLab CI/CD
Kubernetes Testing Clusters

Production

AWS
Azure
Nginx
Kubernetes
Monitoring Systems
Prometheus
Grafana
الخلاصة

تشغيل المشروع على جهازك لا يعني أن المشروع جاهز.

الأنظمة الحقيقية تمر عبر مراحل متعددة لضمان:

الجودة
الاستقرار
الأمان
الأداء
قابلية التوسع

وفهم هذه البيئات هو أحد الفروقات الجوهرية بين البرمجة كهواية، وهندسة البرمجيات كمجال احترافي متكامل.
المهندس ✍️ طارق العمري
👍1
أربعة مصطلحات رئيسية تتعلق بتحسين ظهور المحتوى، ويكمن الاختلاف الأساسي في المنصة أو التقنية المستهدفة. إليك التفصيل:
SEO (تحسين محركات البحث - Search Engine Optimization):
الهدف: تحسين المحتوى الخاص بك ليحتل مراتب متقدمة في نتائج البحث العضوية التقليدية (مثل روابط المواقع المعتادة في محركات البحث).
AEO (تحسين محركات الإجابة - Answer Engine Optimization):
الهدف: تحسين المحتوى ليظهر بشكل مباشر في ملخصات الذكاء الاصطناعي الخاصة بجوجل (Google's AI Overviews) التي تعطي المستخدم إجابة سريعة.
GEO (تحسين المحركات التوليدية - Generative Engine Optimization):
الهدف: نطاقه أوسع، حيث يهدف إلى تحسين المحتوى ليتوافق مع أي نظام ذكاء اصطناعي يقوم بتوليد الإجابات والردود بشكل عام.
LLMO (تحسين النماذج اللغوية الكبيرة - Large Language Model Optimization):
الهدف: يركز بشكل محدد على تحسين موقعك ليتم ذكره والاستشهاد به كمصدر (Citations) من قِبل النماذج اللغوية الضخمة مثل (ChatGPT) أو (Claude).
👍1
OmniRoute.
ببساطة، هو بوابة وموجه ذكي للذكاء الاصطناعي (AI Gateway & Smart Router) يعمل كنقطة اتصال واحدة (Endpoint) تربط بين أدواتك البرمجية ومئات من مزودي خدمات الذكاء الاصطناعي.
إليك أهم ما يقدمه هذا المشروع:
نقطة اتصال واحدة لمئات النماذج: يسمح لك بربط أدوات مثل (Cursor، GitHub Copilot، Claude Code، Cline) بنماذج ذكاء اصطناعي مختلفة (مثل GPT، Claude، Gemini) عبر أكثر من 237 مزود خدمة (أكثر من 90 منهم يقدمون خدمات مجانية).
التبديل التلقائي الذكي (Auto-Fallback): إذا نفد رصيدك (Quota) أو تعطل أحد مزودي الخدمة، يقوم النظام في أجزاء من الثانية بالتبديل تلقائياً إلى مزود آخر، مما يضمن عدم تعطل عملك أبداً.
ضغط وحفظ الرموز (Token Compression): يستخدم تقنيات متقدمة (RTK + Caveman) لضغط النصوص، مما يوفر استهلاك الرموز (Tokens) بنسبة تتراوح بين 15% إلى 95%، وبالتالي يقلل التكلفة بشكل كبير.
الاستفادة القصوى من الباقات المجانية: يجمع المشروع الباقات المجانية المتاحة من عشرات المزودين، مما يتيح للمستخدمين الوصول إلى ما يقرب من 1.6 مليار رمز مجاني شهرياً دون الحاجة لإدارة كل حساب على حدة.
استراتيجيات توجيه متعددة: يوفر 17 طريقة لتوجيه طلباتك، مثل: اختيار الأرخص دائماً، أو الأسرع استجابة، أو الموازنة بين الحسابات لتجنب الحظر.
الخلاصة: إذا كنت مطوراً أو مستخدماً مكثفاً لأدوات الذكاء الاصطناعي وتعاني من نفاد الباقات، التكاليف المرتفعة، أو تشتت الاشتراكات بين عدة منصات، فإن OmniRoute يحل هذه المشكلة بتوحيدها جميعاً وإدارتها بذكاء لتقليل التكلفة وضمان استمرارية العمل.

https://github.com/diegosouzapw/OmniRoute
🚨 تخيل أن تعطي الذكاء الاصطناعي كتابًا كاملًا... فيفهمه دفعة واحدة دون أن ينهار الأداء!

هذا ما يقدمه Unlimited OCR، مشروع مفتوح المصدر يغيّر طريقة تعامل نماذج الذكاء الاصطناعي مع المستندات الطويلة.

🔵 أبرز المميزات:
🔹 يقرأ كتابًا كاملًا في تمريرة واحدة.
🔹 يحافظ على استهلاك الذاكرة ثابتًا مهما زاد عدد الصفحات.
🔹 لا يتباطأ حتى بعد أكثر من 40 صفحة.
🔹 يحقق 93% على معايير التقييم.
🔹 معدل خطأ أقل من 0.11 في المستندات الطويلة.

إذا كنت تعمل في OCR أو الذكاء الاصطناعي أو تحليل المستندات، فهذا المشروع يستحق أن يكون ضمن أدواتك.

📌 رابط المشروع على GitHub في أول تعليق.

⁉️ برأيك... هل سيجعل هذا النوع من النماذج رقمنة الكتب والأرشيفات أسهل من أي وقت مضى؟

#AI #OCR #DeepLearning #MachineLearning #ComputerVision #OpenSource #LLM #DocumentAI #GitHub #TheWorldOfData

🔹 Link
github.com/baidu/Unlimited-OCR

#بالتوفيق_دايماً 💙🌹
إذا سألت أي مطور ويب عن أكثر المهام إزعاجاً في بناء التطبيقات، فغالباً ستكون الإجابة: "تصميم وإرسال رسائل البريد الإلكتروني". بين التعامل مع أكواد HTML القديمة (Tables) لضمان توافق التصميم مع تطبيقات الإيميل المختلفة، وبين إعداد خوادم SMTP المعقدة لتجنب وصول الرسائل إلى مجلد البريد المزعج (Spam)، لطالما كانت هذه العملية كابوساً للفرق التقنية.
هنا يأتي دور منصة Resend، وهي واجهة برمجة تطبيقات (Email API) حديثة، أحدثت ثورة في "تجربة المطور" (Developer Experience) وأعادت تعريف كيفية تعامل الأنظمة مع البريد الإلكتروني.
في هذا المقال، سنستعرض ماهية هذه المنصة، وأين يمكنك توظيفها في مشاريعك البرمجية القادمة.
ما هي منصة Resend؟
Resend هي منصة سحابية مصممة خصيصاً للمبرمجين لتسهيل إرسال رسائل البريد الإلكتروني التلقائية (Transactional Emails) من داخل التطبيقات. بدلاً من الاعتماد على البنى التحتية القديمة، توفر المنصة أدوات حديثة، حزم تطوير (SDKs) نظيفة، وتكاملاً عميقاً مع أحدث تقنيات الويب، مما يضمن وصول الرسائل إلى "صندوق الوارد" (Inbox) بسرعة وموثوقية عالية.
أين نستخدم منصة Resend في مشاريعنا البرمجية؟
بصفتك مبرمجاً أو مهندس برمجيات، ستحتاج إلى دمج Resend في الـ Backend للتعامل مع أي حدث (Event) يتطلب التواصل مع المستخدم. إليك أبرز حالات الاستخدام في أي نظام برمجي:
1. أنظمة المصادقة وحماية الحسابات (Authentication & Security)
لا يخلو أي تطبيق حديث من نظام مصادقة، وهنا تتدخل Resend لأتمتة إرسال:
رسائل التحقق (OTP): عند تسجيل حساب جديد لتأكيد هوية المستخدم.
الروابط السحرية (Magic Links): لتسجيل الدخول السريع والآمن بدون الحاجة لكلمات مرور.
إعادة تعيين كلمة المرور: إرسال روابط مشفرة للمستخدمين لاستعادة الوصول لحساباتهم.
تنبيهات الأمان: إشعار المستخدم فوراً عند تسجيل دخول من جهاز غير مألوف.
2. العمليات التجارية والمالية (Transactional Emails)
في أنظمة التجارة الإلكترونية وتطبيقات الـ SaaS، يعتبر الإيميل وثيقة مهمة. نستخدم المنصة لإرسال:
الفواتير والإيصالات الرقمية: والتي يتم توليدها وإرسالها تلقائياً بعد كل عملية دفع ناجحة.
تأكيدات الشراء والحجوزات: لتزويد العميل بمرجع فوري لتفاصيل طلبه.
تحديثات حالة الطلب: مثل الإشعارات التي تفيد بأن الطلب قيد التجهيز أو تم شحنه.
3. إشعارات النظام وتفاعل المستخدمين
لتعزيز تفاعل المستخدم (User Retention) مع المنصة:
رسائل الترحيب (Onboarding): إرسال سلسلة رسائل مبرمجة لتعريف المستخدم الجديد بميزات التطبيق.
تنبيهات النشاط: مثل إشعار المستخدم بوجود رسالة جديدة من مستخدم آخر داخل النظام.
لماذا تفضل فرق التطوير منصة Resend؟ (الميزة التنافسية)
ما الذي يجعل Resend تتفوق على الحلول التقليدية القديمة؟ الإجابة تكمن في تجربة المطورين الفائقة:
وداعاً لتعقيد الـ HTML مع React Email: لعل أقوى ميزة هي دمج المنصة مع مكتبة React Email (وهي من ابتكار نفس الفريق). يمكن لمطوري الواجهات (Frontend) الآن تصميم الإيميلات كـ مكونات (Components) باستخدام React و Tailwind CSS، وتتكفل المكتبة بتحويلها إلى كود HTML متوافق مع جميع مزودي الخدمة (Gmail, Outlook, Apple Mail).
حزم تطوير نظيفة ومباشرة: تدعم المنصة جميع بيئات العمل الحديثة (Node.js, Python, PHP, Java, Go) بالإضافة لبيئات الـ Edge Computing مثل Vercel و Cloudflare. بضعة أسطر من الكود ومفتاح API هي كل ما تحتاجه للبدء.
نظام Webhooks اللحظي: يمكنك إعداد خوادمك لتستقبل تحديثات حية من Resend. سيعرف نظامك برمجياً متى تم تسليم الإيميل، متى تم فتحه، أو متى فشل الإرسال، ليقوم بتحديث قواعد البيانات تلقائياً.
ابدأ في استكشاف تحليلاتك
تتميز المنصة أيضاً بلوحة تحكم أنيقة تمنحك رؤية شاملة وتحليلات دقيقة لأداء رسائلك (معدلات الفتح، النقرات، والرسائل المرتجعة).
لاستكشاف لوحة التحكم وكيفية إدارة وتتبع رسائل البريد الإلكتروني الخاصة بمشاريعك، يمكنك زيارة الرابط التالي: https://resend.com/api-keys
الخلاصة: لم تعد عملية دمج البريد الإلكتروني في التطبيقات مهمة شاقة. مع منصة Resend، يمكن لفرق التطوير توفير عشرات الساعات من العمل المهدر في بناء قوالب معقدة، والتركيز على ما يهم حقاً: بناء ميزات رائعة لتطبيقاتهم.
أين تُخزَّن الصور والفيديوهات في تطبيقات الويب والموبايل والانظمة ؟

عندما نبدأ بتعلّم تطوير الأنظمة والتطبيقات والمواقع، أول ما نعرفه هو أن البيانات تُحفَظ داخل قاعدة البيانات نفسها
لكن بعد فترة يظهر سؤال مهم جدًا:

إذا كانت البيانات منظمة مثلاً الأسماء والرسائل والطلبات تُخزن في قاعدة البيانات…
فأين تذهب الصور والفيديوهات والملفات؟

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

قاعدة البيانات ليست لكل شيء

قاعدة البيانات صُممت أساسًا لتخزين البيانات المنظمة مثل:

أسماء المستخدمين
كلمات المرور المشفرة
الرسائل
التعليقات
الطلبات
العمليات المالية
بيانات المنتجات

......

أما الملفات الكبيرة مثل:

الصور
الفيديوهات
ملفات PDF
التسجيلات الصوتية

فعادة لا يتم تخزينها مباشرة داخل قاعدة البيانات.

كيف تتم العملية فعليًا؟

عندما يرفع المستخدم صورة أو فيديو داخل التطبيق، يحدث التالي:

1️⃣ رفع الملف

يقوم المستخدم برفع صورة أو فيديو من هاتفه أو جهازه.

2️⃣ السيرفر يستقبل الملف

الخادم (Server) يستقبل الملف ثم يرسله إلى مكان مخصص للتخزين.

3️⃣ حفظ رابط الملف

بعد رفع الملف يتم إنشاء رابط له، ثم يُحفَظ هذا الرابط فقط داخل قاعدة البيانات.

مثال:

id : 1
username : tareq
image_url : /uploads/user1.png
بهذا الشكل :
1 tareq /uploads/user1.png

أو رابط سحابي مثل:

https://storage.example.com/user1.png

أي أن قاعدة البيانات لا تخزن الصورة نفسها، بل تخزن “عنوان الوصول إليها وهو الرابط فقط

أين يتم تخزين الملفات إذًا؟

أولًا: داخل السيرفر

في المشاريع الصغيرة يمكن إنشاء مجلدات مثل:

/uploads
/images
/videos
/files

ويتم حفظ الملفات بداخلها.

هذه الطريقة مناسبة للبدايات، لكنها تصبح محدودة مع كبر المشروع وهذا ما تعودنا عليه (وهو مشكلة مع كبر المشروع وزيادة البيانات )

ثانيًا: التخزين السحابي
(الأفضل حاليًا)

المشاريع الحديثة تعتمد على خدمات تخزين احترافية مثل:

Amazon Web Services S3
Google Cloud Storage
Firebase Storage
Microsoft Blob Storage
Cloudflare R2

هذه الخدمات مصممة خصيصًا للتعامل مع:

ملايين الصور
الفيديوهات الضخمة
الملفات الكبيرة
النسخ الاحتياطية

وبسرعة وأمان عاليين.

لماذا لا نخزن الصور داخل قاعدة البيانات؟

لأن ذلك يسبب مشاكل كثيرة، منها:

بطء النظام
الصور والفيديوهات أحجامها كبيرة جدًا مقارنة بالنصوص.

تضخم قاعدة البيانات
قد يصل حجم قاعدة البيانات إلى مئات الجيجابايت بسرعة.

بطء النسخ الاحتياطي
كل نسخة احتياطية ستصبح ضخمة جدًا.

صعوبة التوسع
مع زيادة المستخدمين سيصبح الأداء أسوأ.

ولهذا فإن أفضل حل معماري هو:

تخزين البيانات داخل قاعدة البيانات (مبدئياً) او بناء على حجم المشروع وموارد الخادم

تخزين الملفات داخل Storage System وهو الافضل

هل يمكن تخزين الصور داخل قاعدة البيانات؟

نعم، بعض قواعد البيانات تدعم أنواع بيانات مثل:

BLOB
VARBINARY

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

كيف تعمل التطبيقات الكبيرة؟

لنأخذ مثالًا بسيطًا مثل تطبيق مراسلة:

قاعدة البيانات تخزن:

اسم المستخدم
الرسائل
رقم الهاتف
رابط الصورة

أما الصورة نفسها:

فتكون مخزنة داخل نظام تخزين منفصل أو خدمة سحابية.

وعندما يفتح المستخدم التطبيق، يتم جلب الصورة عبر الرابط المحفوظ في قاعدة البيانات.

المعمارية الحديثة للتطبيقات

معظم الأنظمة الحديثة تعمل بهذا الشكل:

Mobile App / Website

Backend API

┌───────────────
│ Database │ ← بيانات
└───────────────

┌───────────────
│ File Storage │ ←
صور وفيديوهات وملفات
└───────────────

الخلاصة

المبرمج المحترف لا يضع كل شيء داخل قاعدة البيانات.
بل يفصل بين:

البيانات المنظمة
والملفات الكبيرة

لأن هذا يجعل:

النظام أسرع
أسهل في التوسع
أكثر احترافية
وأفضل في الأداء والأمان

ولهذا فإن معظم تطبيقات ومواقع العالم اليوم تعتمد على:

قاعدة بيانات للبيانات النصية
ونظام تخزين مستقل للصور والفيديوهات والملفات.

#يوميات_مهندس
#Storge #Database
المهندس ✏️
💯2
🔥 احصل الآن على النسخة النادرة والدائمة من Office 365 ProPlus Enterprise 2024 مجانًا!

بدون تفعيل خارجي – بدون متاعب – تنصيب صامت وسريع!
🎯 النسخة مخصصة للمؤسسات وتعمل مدى الحياة.

‎ماذا ستحصل؟

🧠 جميع تطبيقات أوفيس 2024 كاملة (Word, Excel, PowerPoint, Outlook…)

🔒 تفعيل دائم بدون كراكات

🧼 نسخة نظيفة وآمنة 100%

🌍 دعم للغة الإنجليزية والعربية

💼 مثالية للطلاب، الأساتذة، الموظفين وكل من يبحث عن أداء احترافي


‎روابط التحميل :
‎للتحميل باللغة الإنجليزية
pixeldrain.com/u/7np7Gg2Q
‎للتحميل باللغة العربية
pixeldrain.com/u/Y6d4d1UM

📦 كلمة فك الضغط: Zyzoom
⚠️ مهم جداً: افصل الإنترنت قبل التثبيت للحصول على التفعيل التلقائي


‎--
1
Clean Architecture
لماذا يستخدمها مهندسو البرمجيات ومتى؟

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

ما هي Clean Architecture؟

Clean Architecture
هي أسلوب معماري يهدف إلى فصل مسؤوليات النظام إلى طبقات مستقلة، بحيث لا تعتمد منطق الأعمال
(Business Logic)
على قواعد البيانات أو أطر العمل (Frameworks) أو أي تقنيات خارجية.

بمعنى آخر، إذا قررت غداً تغيير قاعدة البيانات من PostgreSQL إلى MySQL، أو استبدال Django بـ FastAPI أو NestJS، فلن تضطر إلى إعادة كتابة منطق النظام بالكامل.

الفكرة الأساسية

تخيل النظام على شكل دوائر متداخلة:

- Domain (Entities)
- Application (Use Cases)
- Interface Adapters
- Infrastructure / Frameworks

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

«القاعدة الذهبية:

الاعتماد يكون دائماً من الخارج إلى الداخل، وليس العكس.»

مكونات Clean Architecture

1. Domain Layer

تمثل قلب النظام.

تحتوي على:

- Entities
- Value Objects
- Business Rules

هذه الطبقة لا تعرف شيئاً عن:

- قاعدة البيانات
- API
- Framework
- ORM

بل تحتوي فقط على منطق الأعمال الحقيقي.

2. Application Layer

تمثل حالات الاستخدام (Use Cases).

مثل:

- إنشاء مستخدم
- تسجيل الدخول
- إنشاء طلب
- تحديث منتج
- حذف فاتورة

هذه الطبقة تنسق تنفيذ العمليات دون أن تهتم بكيفية حفظ البيانات.

3. Interface Adapters

تمثل الطبقة الوسيطة بين النظام والعالم الخارجي.

تشمل:

- Controllers
- Presenters
- DTOs
- Serializers
- Mappers

وظيفتها تحويل البيانات بين التطبيق والواجهات المختلفة.

4. Infrastructure Layer

تمثل التفاصيل التقنية.

مثل:

- PostgreSQL
- MySQL
- MongoDB
- Redis
- RabbitMQ
- Email Service
- File Storage
- External APIs

يمكن تغيير أي عنصر هنا دون التأثير على منطق الأعمال.

مثال عملي

بدلاً من كتابة:

Controller

Database مباشرة

يصبح التدفق:

Controller

Use Case

Repository Interface

Repository Implementation

Database

وبذلك يصبح النظام أكثر مرونة وأسهل للاختبار.

لماذا يستخدمها المحترفون؟

لأنها تحقق العديد من الفوائد:

- فصل واضح للمسؤوليات (Separation of Concerns).
- سهولة كتابة اختبارات Unit Testing.
- إمكانية تغيير قاعدة البيانات أو Framework بسهولة.
- تقليل الترابط بين مكونات النظام (Low Coupling).
- زيادة قابلية التوسع (Scalability).
- سهولة صيانة المشروع على المدى الطويل.
- إعادة استخدام منطق الأعمال في أكثر من واجهة
(Web، Mobile، Desktop ) عن طريق API

متى تكون مناسبة؟

تعد Clean Architecture الخيار الأمثل عندما يكون المشروع:

- متوسطاً أو كبيراً.
- يعمل عليه أكثر من مطور.
- متوقعاً أن يستمر لسنوات.
- يحتاج إلى سهولة الصيانة والتوسع.
- يحتوي على منطق أعمال معقد.

أما في المشاريع الصغيرة جداً أو النماذج الأولية (Prototype)، فقد تكون معمارية أبسط أكثر ملاءمة لتقليل التعقيد.

هل Clean Architecture مرتبطة بلغة معينة؟

لا.

يمكن تطبيقها في أي تقنية Backend مثل:

- Django
- FastAPI
- ASP.NET Core
- Spring Boot
- Laravel
- NestJS
- Express.js
- Go
- Rust

لأنها فلسفة تصميم وليست إطار عمل.

خلاصة

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

إذا كنت تطمح لبناء أنظمة احترافية قابلة للنمو، فإن تعلم Clean Architecture يعد استثماراً حقيقياً في مسيرتك كمهندس برمجيات.
المهندس ✍️ م.طارق العمري
مبادئ SOLID:
الأساس الحقيقي لبناء برمجيات قابلة للتوسع والصيانة

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

ابتكر هذه المبادئ المهندس
Robert C. Martin (Uncle Bob)،
وأصبحت اليوم معيارًا يعتمد عليه المطورون في المشاريع الاحترافية، خاصة مع البرمجة كائنية التوجه (OOP).

ما هي SOLID؟

كلمة SOLID هي اختصار لخمسة مبادئ تصميم تساعد على كتابة كود نظيف وقابل للتطوير.

S — Single Responsibility Principle (SRP)

مبدأ المسؤولية الواحدة

يجب أن يكون لكل Class سبب واحد فقط للتغيير، أي أن يؤدي وظيفة واحدة محددة.

عندما يتحمل الكلاس أكثر من مسؤولية، يصبح تعديله أكثر خطورة، لأن أي تغيير قد يؤثر على وظائف أخرى.

الفائدة:

- سهولة الاختبار.
- تقليل الأخطاء.
- سهولة الصيانة.



O — Open/Closed Principle (OCP)

مبدأ الانفتاح للإضافة والانغلاق للتعديل

يجب أن يكون الكود مفتوحًا لإضافة وظائف جديدة، لكنه مغلق أمام تعديل الكود الحالي.

بدلاً من تعديل الكود الموجود في كل مرة تظهر فيها ميزة جديدة، يتم توسيع النظام عبر الوراثة أو الواجهات (Interfaces) أو التجريد.

الفائدة:

- تقليل احتمال ظهور أخطاء جديدة.
- تسهيل إضافة الميزات المستقبلية.



L — Liskov Substitution Principle (LSP)

مبدأ الاستبدال

أي كلاس فرعي يجب أن يكون قادرًا على استبدال الكلاس الأب دون أن يتغير سلوك النظام.

إذا تسبب الكلاس الفرعي في كسر منطق البرنامج، فهذا يعني أن التصميم غير صحيح.

الفائدة:

- تصميم أكثر استقرارًا.
- تحسين قابلية إعادة الاستخدام.



I — Interface Segregation Principle (ISP)

مبدأ فصل الواجهات

لا ينبغي إجبار أي كلاس على تنفيذ وظائف لا يحتاجها.

بدلاً من إنشاء Interface ضخم، من الأفضل تقسيمه إلى واجهات صغيرة ومتخصصة.

الفائدة:

- تقليل الاعتماد غير الضروري.
- جعل الكود أكثر وضوحًا وتنظيمًا.



D — Dependency Inversion Principle (DIP)

مبدأ عكس الاعتماد

يجب أن تعتمد الوحدات عالية المستوى والوحدات منخفضة المستوى على التجريد (Abstractions)، وليس على التنفيذ المباشر.

هذا المبدأ هو أساس تقنيات مثل Dependency Injection، ويجعل استبدال المكونات أو اختبارها أسهل بكثير.

الفائدة:

- سهولة الاختبار (Unit Testing).
- تقليل الترابط بين المكونات.
- مرونة أعلى في تطوير النظام.

لماذا تعتبر SOLID مهمة؟

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

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

هل يكفي تطبيق SOLID؟

رغم أن SOLID من أهم مبادئ التصميم، إلا أنها تعمل بشكل أفضل عند دمجها مع ممارسات أخرى مثل:

- Clean Code
- Design Patterns
- Clean Architecture
- Test-Driven Development (TDD)
- Domain-Driven Design (DDD)

فالهدف ليس حفظ المبادئ، بل استخدامها لبناء أنظمة مرنة وسهلة التطوير مع مرور الوقت.

الخلاصة

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

كتابة كود يعمل أمر جيد، أما كتابة كود يستمر في العمل بكفاءة لسنوات فهو ما يميز المهندس المحترف.
المهندس ✍️ طارق العمري
1
المعادلة الحقيقية للنجاح في عصر الذكاء الاصطناعي

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

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

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

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

المعادلة الحقيقية للنجاح اليوم ليست امتلاك أدوات الذكاء الاصطناعي فقط، بل امتلاك:

- طريقة تفكير منهجية.
- خبرة عملية متراكمة.
- قدرة على توظيف الذكاء الاصطناعي في المكان الصحيح.

المعادلة ببساطة قالها المهندس:

"طريقة تفكيرك × خبراتك المتراكمة عبر السنين × قوة الذكاء الاصطناعي = نتائج لم تكن تتخيلها."
Omar Alalwi

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

م. طارق العمري ✍️
👏21