مكونات الـ IDE
Write
(الكتابة)
تحرير وكتابة الشيفرة المصدرية مع إكمال تلقائي ومساعدة في الصياغة.
Debug
(التصحيح)
تتبع الأخطاء خطوة بخطوة باستخدام نقاط توقف ومراقبة المتغيرات.
Build
(البناء)
ترجمة وتجميع الشيفرة إلى ملف تنفيذي أو مكتبة قابلة للتشغيل.
Run
(التشغيل)
تشغيل التطبيق الناتج لمعاينة السلوك واختبار المخرجات.
Document
(التوثيق)
إنشاء وإدارة وثائق الكود وشرح الوظائف والواجهات.
⏹️ من اهم النصائح لتحسين جودة الكود بإذن الله 📚
اتباع المبادئ الصلبة
(SOLID Principles)
⬅️ لكتابة كود قابل للتوسع والصيانة بسهولة.
كتابة كود نظيف ومنظم
(Clean Code)
⬅️ حافظ على بساطة الكود واجعل أجزائه مفهومة و واضحة قدر الإمكان.
التوثيق الجيد
(Documentation)
⬅️ قم بكتابة تعليقات توضيحية وتوثيق الأكواد لتسهيل فهمها من قبل الآخرين.
إعادة استخدام الكود
(Code Reusability)
⬅️ اجعل الكود قابل لإعادة الاستخدام من خلال استخدام الدوال والوحدات او الفصول البرمجية.
التنسيق الصحيح للكود
(Code Formatting)
⬅️ اتبع معايير التنسيق الموحدة للكود واستخدم أدوات مثل Prettier وESLint لتحسين تنسيق الكود.
التسمية الواضحة والمتناسقة
(Clear Naming Conventions)
⬅️ استخدم أسماء متناسقة ومعبرة للمتغيرات، والدوال، والوحدات او الفصول البرمجية.
إجراء الاختبارات الدائمة
(Continuous Testing)
⬅️ تأكد من اختبار الكود بانتظام باستخدام وحدات او فصول الاختبار بشكل مستمر لتجنب الأخطاء.
المراجعة الدورية للكود
(Code Reviews)
⬅️ اطلب من زملائك مراجعة كودك بانتظام لتحسين جودته واكتشاف الأخطاء المحتملة.
تقليل التكرار
(Avoid Code Duplication)
⬅️ تجنب تكرار الكود عن طريق استخدام الدوال والوحدات او الفصول البرمجية المشتركة.
تحسين الأداء
(Performance Optimization)
⬅️ حلل أداء الكود وابحث عن طرق لتحسينه مثل تقليل استخدام الذاكرة وتحسين سرعة التنفيذ.
استخدام أنماط التصميم
(Design Patterns)
⬅️ استعن بأنماط التصميم المعروفة مثل Singleton وFactory وObserver لحل المشاكل المتكررة بطرق منظمة وفعالة.
التعلم المستمر
(Continuous Learning)
⬅️ استمر في تعلم أفضل الممارسات والأدوات الجديدة من خلال قراءة الكتب والمستندات والمقالات وحضور الدورات التدريبية سواء كانت حضورية في الواقع او على مواقع تعليمية.
⏺️ تحسين جودة الكود يتطلب الالتزام بالممارسات الجيدة والاستمرار في التعلم والتطوير. باتباع هذه النصائح، ستتمكن من كتابة كود أكثر احترافية وفعالية بإذن الرحمن.
🔴 شرح مُبسَّط لأوامر ومفاهيم Git 🚩❗️
🧱 الأساسيات
git init
تهيئة مجلد كمشروع Git.
git add
إضافة التعديلات للمنطقة المؤقتة (Staging).
git commit
حفظ التعديلات في سجل Git.
git status
عرض حالة الملفات (معدّلة، جديدة...).
git log
عرض سجل التعديلات.
git diff
عرض الفرق بين التعديلات الحالية والسابقة.
---
🌍 العمل مع المستودعات البعيدة
git remote
ربط المشروع بمستودع بعيد.
git push
رفع التعديلات إلى GitHub أو GitLab.
git pull
جلب ودمج التعديلات من المستودع البعيد.
git fetch
جلب التعديلات بدون دمجها.
---
🌿 العمل مع الفروع (Branches)
git branch
عرض أو إنشاء الفروع.
git checkout
التنقل بين الفروع.
git checkout -b
إنشاء فرع جديد والتبديل إليه مباشرة.
git merge
دمج فرع في فرع آخر.
git rebase
ترتيب تاريخ الفرع على فرع آخر.
git rebase -i
إعادة كتابة التاريخ التفاعلي، تُستخدم مع squash.
squash
دمج عدة Commits في Commit واحد أثناء rebase.
---
🔄 التحديث والتراجع
git stash
حفظ التعديلات مؤقتًا دون commit.
git stash apply
استرجاع التعديلات المخزنة.
git reset
التراجع عن commit أو إزالة التعديلات.
git reset --soft HEAD~1
حذف آخر commit مع الاحتفاظ بالتعديلات.
---
📦 تحميل ونسخ المشاريع
git clone
نسخ مشروع من GitHub إلى جهازك.
---
🏷 مفاهيم إضافية
.gitignore
ملف يُستخدم لتجاهل ملفات معينة من التتبع.
git tag
وضع إشارة على نسخة مهمة (مثل إصدار v1.0).
git cherry-pick
نسخ commit معين من فرع إلى آخر.
HEAD
مؤشر يشير إلى موقعك الحالي في المشروع.
origin
الاسم الافتراضي للمستودع البعيد.
detached HEAD
حالة العمل عند الانتقال إلى commit بدون فرع.
---
📤 ما هو Pull Request؟
طلب تُقدمه لدمج تعديلاتك (عادةً من فرع فرعي) إلى الفرع الرئيسي، يتم عبر GitHub أو GitLab، ويُستخدم في العمل الجماعي لمراجعة الكود.
---
🧠 اختصار للأوامر
تهيئة المشروع:
init – add – commit – status
الفروع:
branch – checkout – merge – rebase
المستودعات البعيدة:
remote – push – pull – fetch – clone
أوامر إضافية:
stash – reset – tag – cherry-pick
🔍 أنواع أوامر SQL
Types of SQL Statements 🔎
🔹 في عالم قواعد البيانات، أوامر SQL تنقسم إلى عدة أنواع رئيسية، كل منها يؤدي وظيفة محددة:
1️⃣ DDL – Data Definition Language
🔹 لإنشاء وتعديل هيكل الجداول وقواعد البيانات.
🛠 من أهم الأوامر:
CREATE
لإنشاء جداول أو قواعد بيانات جديدة.
ALTER
لتعديل هيكل جدول موجود (إضافة أو حذف أعمدة مثلاً).
DROP
لحذف جداول أو قواعد بيانات بالكامل.
TRUNCATE
لحذف جميع البيانات من الجدول بدون حذف الهيكل.
2️⃣ DML – Data Manipulation Language
🔹 لإدارة البيانات داخل الجداول (إضافة، تعديل، حذف).
📝 من أهم الأوامر:
INSERT
لإضافة سجلات جديدة.
UPDATE
لتعديل بيانات موجودة.
DELETE
لحذف بيانات من الجدول.
3️⃣ DQL – Data Query Language
🔹 لاستخراج البيانات من الجداول.
🔍 من أهم الأوامر:
SELECT
لجلب البيانات وفق شروط محددة.
4️⃣ DCL – Data Control Language
🔹 للتحكم في الصلاحيات والوصول للبيانات.
🔐 من أهم الأوامر:
GRANT
لمنح صلاحيات لمستخدم.
REVOKE
لسحب الصلاحيات.
5️⃣ TCL – Transaction Control Language
🔹 للتحكم في العمليات والمعاملات داخل قواعد البيانات.
📦 من أهم الأوامر:
COMMIT
لحفظ التعديلات بشكل دائم.
ROLLBACK
للتراجع عن التعديلات قبل الحفظ.
SAVEPOINT
لإنشاء نقطة استعادة داخل المعاملة.
SET TRANSACTION
لتحديد خصائص المعاملة.
54 مفهوم مهم في البرمجة 🗺🎨
🔹 1. Algorithm – الخوارزمية
مجموعة من الخطوات المحددة لحل مشكلة معينة أو تنفيذ مهمة.
🔹 2. Data Structure – هيكل البيانات
طريقة لتنظيم البيانات داخل الذاكرة لتسهيل الوصول والتعديل.
🔹 3. Variable Scope – نطاق المتغيرات
المكان الذي يمكن فيه الوصول إلى المتغير (داخل دالة، كلاس، إلخ).
🔹 4. Encapsulation – التغليف
إخفاء تفاصيل تنفيذ الكود وإظهار واجهة استخدام فقط.
🔹 5. Abstraction – التجريد
التركيز على المهم وإخفاء التفاصيل المعقدة.
🔹 6. Polymorphism – تعدد الأشكال
استخدام دوال أو كائنات بنفس الاسم ولكن بسلوك مختلف.
🔹 7. Inheritance – الوراثة
كلاس يرث خصائص ودوال من كلاس آخر.
🔹 8. Recursion – الاستدعاء الذاتي
دالة تستدعي نفسها لحل أجزاء أصغر من المشكلة.
🔹 9. DRY – Don’t Repeat Yourself
مبدأ يمنع تكرار الكود ويسعى لإعادة الاستخدام.
🔹 10. KISS – Keep It Simple, Stupid
اجعل الكود بسيطًا وواضحًا دون تعقيد غير ضروري.
🔹 11. YAGNI – You Ain’t Gonna Need It
لا تكتب كودًا أو تضف ميزات غير مطلوبة بعد.
🔹 12. SOLID Principles
خمسة مبادئ تصميم تجعل الكود قابلًا للصيانة والتوسعة.
🔹 13. Design Patterns – أنماط التصميم
حلول عامة لمشاكل متكررة في تصميم البرمجيات.
🔹 14. Coupling – الترابط
مدى اعتماد كائنات أو وحدات الكود على بعضها البعض.
🔹 15. Cohesion – التماسك
مدى تركيز الوحدة على وظيفة واحدة واضحة.
🔹 16. Singleton Pattern
نمط تصميم يضمن وجود نسخة واحدة فقط من الكائن.
🔹 17. Factory Pattern
نمط لإنشاء الكائنات دون تحديد الكلاس مباشرة.
🔹 18. Observer Pattern
نمط لإبلاغ كائنات متعددة عند تغيير حالة كائن معين.
🔹 19. MVC – Model View Controller
تقسيم المشروع لثلاثة أجزاء: البيانات، العرض، التحكم.
🔹 20. API – واجهة برمجية
وسيلة للتواصل بين البرمجيات باستخدام طلبات واستجابات.
🔹 21. RESTful API
تصميم API يعتمد على بروتوكول HTTP بطريقة بسيطة.
🔹 22. GraphQL
لغة استعلام بديلة لـ REST تتيح الحصول على البيانات بشكل مرن.
🔹 23. Callback Function
دالة تُمرَّر كوسيط ليتم استدعاؤها لاحقًا بعد انتهاء مهمة.
🔹 24. Asynchronous Programming
تنفيذ الأوامر دون الانتظار، لتحسين الأداء.
🔹 25. Multithreading
تشغيل أكثر من سلسلة أوامر (Thread) في الوقت نفسه.
🔹 26.
ما الفرق بين خياري بناء تطبيق الأندرويد في Intellij IDEA؟
Generate APKs
- ينتج ملف Android Package Kit (.apk).
- يمكن تثبيته مباشرة على أي جهاز أندرويد.
- لا يعتمد على Google Play.
Generate Bundles (AAB)
- ينتج ملف Android App Bundle (.aab).
- لا يمكن تثبيته مباشرة.
- إلزامي للنشر على Google Play، ليقوموا بتحويله إلى APKs مخصصة لكل جهاز.
نبذة عن الـ HTTP Methods 🌐:
تُستخدم لتحديد نوع العملية عند التعامل مع الـ API
🔍 GET
لجلب بيانات
🆕 POST
لإنشاء بيانات
✏️ PUT
لتحديث كامل
🩹 PATCH
للتحديث الجزئي
🗑 DELETE
لحذف بيانات
📄 HEAD
للفحص بدون محتوى
⚙️ OPTIONS
الـ(Methods) المسموحة (CORS)
🛰 TRACE
للتتبع الطلب
🔐 CONNECT
نفق اتصال (HTTPS / Proxy)
🔐 Basic
نقل (اسم المستخدم + كلمة المرور) مشفر بـ Base64
ويُعَرَّف في (RFC 7617)
🧩 Digest
إرسال تجزئة (Hash) للبيانات بدلاً من كلمة المرور
ويُعَرَّف في (RFC 7616)
🎫 Bearer
استخدام رمز وصول (Access Token) للدلالة على الصلاحية
ويُعَرَّف في (RFC 6750)
🍪 Sessions
تخزين الجلسة بالخادم وإرسال Session ID للعميل (عبر Cookie)
📜 JWT
رمز JSON موقع إلكترونيًا لنقل المزاعم (Claims)
ويُعَرَّف في (RFC 7519)
⚙️ OAuth
تفويض تطبيقات الطرف الثالث للوصول المحدود
ويُعَرَّف في (RFC 6749)
————
📕 ما هو RFC؟
وثائق فنية مرجعية (Request for Comments) تنشرها IETF، تحدد معايير البروتوكولات، والأرقام (مثل 7617) مُعرِّفات دائمة لكل وثيقة.
السلام عليكم ورحمة الله.
تذكير برابط دعوة وقف لأهل الحديث لمن أراد تعلم صنعة تطوير التطبيقات الرقمية.
https://t.me/+roZ3Bz5rCuwxZTRk
المتطلبات:
0. جهاز تخزين خارجي (هارد ديسك) لنسخ الملفات المهمة الموجودة حاليا عليه.
1. جهاز حاسوب محمول للتطوير فقط (سيتم التخلص من أي نظام آخر موجود على الجهاز، ولذلك احتجنا للخطوة 0).
2. جهاز تخزين خارجي صغير (فلاش درايف) لحرق نظام التشغيل عليه.
3. الاستعداد للتعامل مع نظام لينوكس (سيتم الإرشاد خطوة بخطوة بإذن الله).
4. مشاهدة الفيديوهات كاملة والتقليد خطوة بخطوة حتى تشغيل التطبيق (متسق) محليا على الجهاز.
5. هناك قسم للإرشاد والسؤال وحل المشاكل أثناء التطوير باستخدام التقنيات المشروحة نفسها.
ملاحظات:
- يجب ∗∗∗∗∗∗∗∗ ∗∗∗∗∗∗ أهل الحديث ∗∗∗∗∗∗∗ في كتاب ∗∗∗∗∗∗∗ للآجري رحمه الله.
- سيتم ∗∗∗∗ ∗∗∗∗∗ ∗∗∗∗∗∗∗∗ حين ينتهي نشر دورة أساسية جديدة داخل القناة إن شاء الله.
- ∗∗∗∗∗∗ ∗∗∗∗ بالرجال ∗∗∗∗.
- يمنع ∗∗∗∗∗∗ ∗∗ ∗∗∗∗ حسابه ∗∗∗ ∗∗∗ سيئة جارية ∗∗∗ الممات.
يرجى النشر لمن يهمه الأمر...
💻 من أشهر الواجهات في تطبيقات ومواقع الهواتف
من أشهر الـ Screens والواجهات التي ستجدها في تطبيقات الهاتف والمواقع:
🚀 1. Splash Screen
الشاشة التي تظهر عند تشغيل التطبيق، وغالبًا تحتوي على الشعار أو الهوية البصرية.
👋 2. Onboarding Screen
شاشات تعريفية تظهر عند أول استخدام للتطبيق لشرح أهم المميزات وكيفية استخدامه.
🔐 3. Login / Sign Up Screen
واجهة تسجيل الدخول وإنشاء حساب جديد.
🏠 4. Home Screen
الواجهة الرئيسية التي يصل إليها المستخدم بعد فتح التطبيق.
🔎 5. Search Screen
واجهة البحث عن المحتوى أو المنتجات أو المستخدمين.
📋 6. List Screen
عرض مجموعة من العناصر على شكل قائمة، مثل المقالات أو المنتجات أو المحادثات.
📄 7. Details Screen
عرض التفاصيل الكاملة لعنصر معين بعد اختياره.
📝 8. Form Screen
واجهة إدخال البيانات، مثل التسجيل، إضافة منتج، إنشاء منشور أو تعديل المعلومات.
⚙️ 9. Settings Screen
واجهة إعدادات التطبيق والحساب والإشعارات والمظهر وغيرها.
👤 10. Profile Screen
واجهة الملف الشخصي للمستخدم.
🔔 11. Notifications Screen
عرض الإشعارات والتنبيهات.
💬 12. Chat / Messaging Screen
واجهة المحادثات والرسائل.
🛒 13. Cart Screen
واجهة سلة المشتريات في تطبيقات التجارة الإلكترونية.
💳 14. Checkout / Payment Screen
واجهة إتمام الطلب والدفع.
✅ 15. Success / Confirmation Screen
تظهر بعد نجاح عملية معينة، مثل إنشاء الحساب أو الدفع أو إرسال البيانات.
⚠️ 16. Error Screen
تظهر عند حدوث خطأ أو فشل في تنفيذ عملية.
📭 17. Empty State Screen
تظهر عندما لا توجد بيانات، مثل:
"لا توجد إشعارات" أو "سلة المشتريات فارغة".
📶 18. Offline / No Internet Screen
تظهر عند فقدان الاتصال بالإنترنت.
⏳ 19. Loading Screen
واجهة أو حالة تظهر أثناء تحميل البيانات، وقد تستخدم Skeleton أو Progress Indicator.
🔒 20. Permission Screen
تطلب من المستخدم منح صلاحيات مثل الكاميرا والموقع والإشعارات.
🎉 21. Welcome Screen
واجهة ترحيبية بالمستخدم، وقد تكون منفصلة عن الـ Onboarding.
🔄 22. Update Screen
تُستخدم لإخبار المستخدم بوجود إصدار جديد أو ضرورة تحديث التطبيق.
🚧 23. Maintenance Screen
تظهر عندما تكون الخدمة أو الموقع تحت الصيانة.
🔍 24. 404 / Not Found Screen
واجهة تظهر عندما يحاول المستخدم الو
📝 من أنواع المُحَرِّرَات ⌨️🪻
ليست كل البرامج التي نكتب فيها النصوص أو الأكواد من النوع نفسه، بل توجد عدة فئات:
✏️ محررات النصوص
Text Editor — محرر نصوص
لتحرير النصوص والملفات بشكل عام.
Plain Text Editor — محرر نصوص خام
للتعامل مع النص دون تنسيق أو خصائص غنية.
Rich Text Editor (RTE) — محرر نصوص منسقة
يدعم الخطوط، الألوان، الصور، الجداول والتنسيق.
Markdown Editor — محرر Markdown
مخصص لكتابة ملفات .md.
LaTeX Editor — محرر LaTeX
لكتابة المستندات العلمية والرياضية.
Document Editor — محرر مستندات
لإنشاء وتحرير المستندات والملفات المكتبية.
💻 محررات البرمجة
Code Editor — محرر أكواد
مخصص لكتابة الأكواد مع Syntax Highlighting وميزات برمجية.
Source Code Editor — محرر الشفرة المصدرية
يركز على تحرير ملفات Source Code.
Web Code Editor — محرر أكواد الويب
مخصص لـ HTML وCSS وJavaScript وتقنيات الويب.
Hex Editor — محرر Hexadecimal
لتحرير البيانات الثنائية على مستوى البايتات.
Binary Editor — محرر الملفات الثنائية
للتعامل مع البيانات الثنائية مباشرة.
SQL Editor — محرر SQL
لكتابة وتنفيذ استعلامات SQL.
Shader Editor — محرر Shaders
لكتابة Shader Code المستخدم في الرسوميات.
REPL / Interactive Editor — بيئة تفاعلية
لكتابة وتنفيذ الأوامر والكود مباشرة.
🧠 بيئات التطوير
IDE (Integrated Development Environment) — بيئة تطوير متكاملة
تجمع محرر الأكواد، Debugger، Compiler/Build Tools، Terminal وغيرها.
Lightweight IDE — IDE خفيفة
توفر وظائف IDE الأساسية مع استهلاك أقل للموارد.
Full-featured IDE — IDE متكاملة
توفر مجموعة كبيرة من أدوات التطوير والإدارة والتحليل.
Cloud IDE — بيئة تطوير سحابية
تعمل عبر الإنترنت وتوفر بيئة تطوير على خادم بعيد.
Web IDE — بيئة تطوير عبر الويب
IDE تعمل داخل المتصفح.
Remote Development Environment — بيئة تطوير عن بُعد
يكون الكود وبيئة التشغيل على جهاز أو خادم آخر.
🔧 أدوات متخصصة
Database IDE — بيئة تطوير قواعد البيانات
لإدارة قواعد البيانات وكتابة الاستعلامات وتصميم الـ Schema.
Game Engine Editor — محرر محركات الألعاب
لتطوير الألعاب وإدارة المشاهد والأصول والكود.
Level Editor — محرر المراحل
لإنشاء وتصميم مراحل الألعاب.
Visual Editor — محرر مرئي
يعتمد على الواجهات والع