أساسيات CI/CD
أساسيات CI/CD قبل أن تكتب سطر YAML واحد أو تنشئ Workflow في GitHub Actions، يجب أن تفهم مفهوم CI/CD لأنه هو السبب الحقيقي لوجود GitHub Actions وJenkins وGitLab CI وAzure DevOps وغيرها. في الشركات الكبيرة لا يتم النظر إلى GitHub…
أساسيات CI/CD قبل أن تكتب سطر YAML واحد أو تنشئ Workflow في GitHub Actions، يجب أن تفهم مفهوم CI/CD لأنه هو السبب الحقيقي لوجود GitHub Actions وJenkins وGitLab CI وAzure DevOps وغيرها. في الشركات الكبيرة لا يتم النظر إلى GitHub…
1. مقدمة إلى GitHub Actions ما هو GitHub Actions؟ لماذا نستخدم GitHub Actions؟ الفرق بين GitHub Actions و Jenkins الفرق بين GitHub Actions و GitLab CI/CD متى نستخدم GitHub Actions؟ حالات الاستخدام الشائعة اشرح هذه بالتفصيل الممل للمبتدئين اشرحهم كخبير…
الآن سنبني بحث احترافي كامل متوافق مع آخر نسخة من مشروعك: ✅ Clean Architecture✅ Cubit✅ Supabase Search✅ Debounce✅ SearchBar احترافي✅ Loading✅ إعادة النتائج✅ البحث بالعنوان والمحتوى✅ شرح كل ملف بالتفصيل 🧭 الفلو الكامل 🧱 1) DataSource 📁 notes_remote_datasource.dart 📄 الكود…
سنبني: وسأشرح: 🔥 🎯 أولًا: لماذا الدمج أصلًا؟ قبل الدمج كان عندك: وكل واحد يحتوي: ❌ 🎯 الحل الاحترافي إنشاء: اسمه: 🧠 المعمارية النهائية 🚀 الملف الأول 📄 StudentForm.jsx 🎯 وظيفة هذا الملف هذا هو: الذي: 📄 components 🧠 ماذا…
الآن سنبني: بفورم مستقل كامل مثل صفحة الإضافة تمامًا. 🧠 ما الفرق بين الإضافة والتعديل؟ الإضافة التعديل حقول فارغة حقول ممتلئة addStudent updateStudent reset() reset(studentData) لا يوجد useParams يوجد useParams 🚀 الكود الكامل الاحترافي EditStudent.jsx الراوت الخاص بالتعديل 🚀 زر…
✅ البحث محلياً (الأفضل حالياً) 🧠 لماذا اخترنا البحث المحلي؟ 🧱 التعديل سيكون فقط في: ❌ لا نعدل DataSource❌ لا نعدل Repository❌ لا نعدل UseCase 🧱 1) State 📁 notes_state.dart ✏️ نضيف: 🧠 لماذا لا نضيف State جديد؟ 🧱 2)…
تعديل ملاحظة (Edit Note) في صفحة مستقلة 🧭 الفلو الكامل 🧱 1) DataSource (تنفيذ التعديل) 📁 notes_remote_datasource.dart 🧠 الشرح 🧱 2) Repository (Interface) 📁 notes_repository.dart 🧠 الشرح 🧱 3) RepositoryImpl (التحويل والتمرير) 📁 notes_repository_impl.dart 🧠 الشرح 🧱 4) UseCase 📁…
حذف الملاحظة (Delete Note) عبر نفس الطبقات: 🧱 1) DataSource (تنفيذ الحذف فعلياً) 📁 notes_remote_datasource.dart 🧠 شرح 🧱 2) Repository (تعريف العملية) 📁 notes_repository.dart 🧠 شرح 🧱 3) RepositoryImpl (تنفيذ الربط) 📁 notes_repository_impl.dart 🧠 شرح 🧱 4) UseCase 📁 delete_note_usecase.dart…
خلّينا نضيف SnackBar بعد إضافة الملاحظة بشكل نظيف ومرتبط بالـ Cubit (مو من داخل الزر مباشرة) 🔥 🎯 الفكرة الصحيحة ❗ لا تعرض SnackBar داخل Cubit❗ ولا داخل onPressed مباشرة👉 الأفضل عبر BlocListener 🧱 1) تعديل الحالات (State) 📁 notes_state.dart…