لوحة المتصدرين
المحتوى الأكثر حصولًا على سمعة جيدة
المحتوى الأعلى تقييمًا في 12/14/25 في كل الموقع
-
السلام عليكم في بعض الناس يقولوا اعتمد على الاسئلة الي تيجي من الذكاء الاصطناعي وبعضهم يقولوا لا لا تعتمد وانا حقيقه استفدت من بعض الاسئلة الي ارسلتها الذكاء الاصطناعي ورسخت عندي بعض المفاهيم وبعضها لسه بس عندي فضول لماذا لا يعتمد على الذكاء الاصطناعي في مايتعلق بالبرمجه انا بعتمد عليه بين حين واخر ارجو التوضيح وشكرا1 نقطة
-
الفرق الجوهري يكمن في الهدف من المخطط فأحدهما يركز على البرمجة (Logic) والآخر يركز على البيانات (Data). أولا Class Diagram : يركز على البنية البرمجية للكود (OOP). يتكون من Classes (فئات) وMethods (دوال) وAttributes (متغيرات). يوضح السلوك (Behavior) عبر الدوال (Functions/Methods). نستخدمه نحن المبرمجين لبناء ال Classes والربط بينها. ثانيا ER Diagram (Entity Relationship) : يركز على بنية قاعدة البيانات وتخزين المعلومات. يتكون من Entities (كيانات) و Attributes (صفات) وRelationships (علاقات). لا يوضح سلوك بل هو مجرد هيكل ثابت للبيانات (Static Data Structure). يستخدمه مصمم قاعدة البيانات (DB Admin) لبناء الجداول (Tables). نعم بالفعل يجب إضافة Activities و Fragments و Services والسبب هو انه في برمجة الأندرويد ال Activity هي في النهاية Class مثلا MainActivity extends AppCompatActivity هي جزء لا يتجزأ من هيكلية الكود بل هي ال Entry Point والمسؤولة عن إدارة واجهة المستخدم. وبخصوص كيفية التمثيل: يتم تمثيل ال Activity ك Class عادي. يحتوي على الدوال الخاصة به مثل onCreate() و onStart(). يحتوي على علاقات (Associations) مع ال Classes الأخرى مثل ال Adapters أو ال ViewModels. نظرياً الإجابة نعم لتوضيح الفكرة ولكن تقنيا لا يفضل ذلك لأن المفهوم مختلف. وهذا بسبب أن : ال ER Diagram صمم لقواعد البيانات العلائقية (SQL) التي تعتمد على الجداول (Tables) والمفاتيح الأجنبية (Foreign Keys). ال Firebase سواء Realtime DB أو Firestore هي قواعد بيانات NoSQL تعتمد على المستندات (Documents) والمجموعات (Collections) أو شجرة JSON. والبديل الأفضل هو استخدام ما يسمى ب Schema Diagram أو Collection-Document Model. فبدلا من رسم جداول يمكن رسم مربعات تمثل ال Collections وداخلها مستندات توضح حقول البيانات (JSON Structure). وهذا يعكس الواقع الفعلي للبيانات في Firebase بدقة أكبر من ERD التقليدي. تحويل الكود إلى مخطط تتابع (Sequence Diagram) يهدف لفهم سيناريو محدد مثلا عملية تسجيل الدخول. والقواعد الأساسية للتحويل: ال Classes تصبح Lifelines: كل Object أو Class يتم استدعاؤه في السيناريو يوضع في الأعلى ك (Lifeline). استدعاء الدالة يصبح رسالة (Message): عندما يقوم Class A بمناداة دالة في Class B مثلا user.getName() نرسم سهما متصلا من A إلى B. اسم السهم هو اسم الدالة. القيمة المرجعة (Return Value): نتيجة الدالة تمثل بسهم متقطع (Dashed Arrow) يعود للخلف. الشروط (If/Else) تصبح Alt Fragment: يتم وضع إطار (Frame) يسمى Alt. الجزء العلوي يمثل if (condition) والجزء السفلي يمثل else. الحلقات التكرارية (Loop/For/While) تصبح Loop Fragment: يتم وضع إطار يسمى Loop حول العمليات التي تتكرر.1 نقطة
-
وعليكم السلام ورحمة الله وبركاته ليس هناك مشكلة إطلاقاً في طلب بعض الأسئلة من ال AI كما تفعل وفي فهم ما تريده . ولكن يفضل حالياً عدم الإعتماد عليه في حل التمارين التي تريدها أو إنشاء المشاريع بمساعدته (لاحقاً يعتبر من المهم استخدامه ) حيث يجب أن تعتمد على حل المشكلات بنفسك في مرحلة التعلم . وعموماً بالنسبة لسؤالك فليس هناك مشكلة وبالنسبة لما لا تستوعبه من المحاضرات فيمكنك طرح سؤالك في أي وقت وسيتم الإجابة عليه من المدربين هنا1 نقطة
-
وعليكم السلام ورحمة الله وبركاته. بما أن النموذج يتحسن تدريجياً مع كل دورة تدريبية epoch. في الوضع الطبيعي، يستمر النموذج في التدريب حتى يكمل العدد الكامل من الدورات التي حددتها له، حتى لو وصل إلى الأداء المطلوب في وقت مبكر. ولكن هذا الكود يطبق مفهوماً يسمى Early Stopping أو الإيقاف المبكر فيعمل على توفير الوقت والموارد الحاسوبية. عندما يصل نموذجك إلى الأداء المستهدف، فلا حاجة لمواصلة التدريب. هذا يوفر وقتاً حاسوبياً ثميناً، وخاصة عند العمل على مجموعات بيانات كبيرة أو نماذج معقدة قد تستغرق ساعات أو حتى أيام للتدريب الكامل. وأيضاً الوقاية من مشكلة تسمى Overfitting أو الإفراط في التلاؤم.1 نقطة
-
سأجيبك بشكل منظّم ومباشر: أولًا: الفرق بين Class Diagram و ER Diagram 1. Class Diagram (UML) يُستخدم لتمثيل تصميم النظام البرمجي نفسه. يمثّل: الكلاسات الخصائص (Attributes) الدوال (Methods) العلاقات (Inheritance – Association – Aggregation – Composition) يجيب عن سؤال: كيف صُمّم الكود؟ وكيف تتفاعل الكائنات مع بعضها؟ يُستخدم غالبًا في: تصميم التطبيقات توثيق الكود شرح الـ Architecture 2. ER Diagram (Entity Relationship) يُستخدم لتمثيل قاعدة البيانات فقط. يمثّل: الجداول (Entities) الأعمدة (Attributes) العلاقات (1-1، 1-N، N-M) المفاتيح الأساسية والأجنبية يجيب عن سؤال: كيف تُخزَّن البيانات؟ وكيف ترتبط ببعضها؟ ثانيًا: عند رسم Class Diagram لتطبيق Android هل نضيف فقط Java Classes؟ لا. القاعدة الصحيحة: ترسم الكلاسات المنطقية المهمّة فقط. ماذا نضيف؟ Models (User, Product, Order…) Managers / Services Repositories ViewModels (في MVVM) هل نضيف Activities؟ نعم إذا كانت جزءًا من منطق التطبيق لا تضف كل Activity تلقائيًا الـ Activity: تمثل Controller / View تُضاف فقط إذا كان لها: منطق واضح تفاعل مهم مع الكلاسات الأخرى لا ترسم: Activities بسيطة لعرض UI فقط ثالثًا: هل يمكن استخدام ER Diagram مع Firebase؟ Firebase (Firestore / Realtime DB): ليست Relational Database لا توجد جداول ولا Foreign Keys هل نستخدم ER Diagram؟ ليس بشكل كلاسيكي لكن يمكن استخدام: Data Model Diagram أو ER مبسّط بدون علاقات صارمة تمثّل: Collections Documents العلاقات المنطقية (Reference أو Embedded) إذن: ER Diagram التقليدي ❌ Data Modeling Diagram ✔ رابعًا: تحويل الكود إلى Sequence Diagram (SD) (أعتقد أنك تقصد SD وليس SQD) القاعدة: Sequence Diagram لا يُرسم آليًا من الكود بل يُستخرج من سيناريو استخدام (Use Case) الخطوات: اختر سيناريو مثال: “تسجيل مستخدم” حدّد الأطراف: User → Activity → ViewModel → Repository → Database ارسم ترتيب الرسائل (method calls) لا ترسم كل التفاصيل، فقط التفاعل المهم خامسًا: مراجع موثوقة UML: UML Distilled – Martin Fowler Head First Object-Oriented Analysis & Design Class & ER: Database System Concepts – Silberschatz Lucidchart UML & ER Guides Android Architecture: Android Developers – Architecture Components MVVM Pattern for Android1 نقطة
-
وعليكم السلام ورحمة الله وبركاته ما شاء الله، المشروع واضح أنه مكتمل ومنفّذ بعناية، والـ README مرتب ويعكس فهمًا جيدًا للـ Full-Stack. سأعطيك مراجعة عملية ومهنية كما لو كانت Code Review / تقييم مشروع. التقييم العام المشروع ناجح كـ تطبيق Full-Stack تعليمي/تطبيقي قوي، ويغطي دورة حياة كاملة: Auth CRUD رفع ملفات REST API Frontend حديث دعم RTL والعربية لو قُدّم هذا المشروع كمشروع تخرج أو اختبار توظيف Junior–Mid فسيُقيَّم بشكل إيجابي جدًا. نقاط القوة (Strengths) 1. اختيار التقنيات مناسب جدًا Express + SQLite: ممتاز للتعلّم والنماذج الأولية React + Vite: حديث وسريع REST واضح ومنفصل عن الواجهة استخدام Multer لرفع الصور بشكل صحيح هذا يدل على فهم حقيقي وليس مجرد “تركيب مكتبات”. 2. بنية المشروع واضحة تقسيم: server/ client/ مع README يشرح: التشغيل المنافذ المتطلبات API endpoints هذه نقطة مهمّة جدًا وغالبًا ما تُهمل من المبتدئين. 3. الميزات منطقية وقريبة من الواقع تسجيل كمستخدم أو طبيب ملف شخصي صور متعددة مع حد أقصى بحث صفحة تفاصيل مع خريطة هذا ليس CRUD سطحي، بل سيناريو استخدام حقيقي. 4. دعم العربية و RTL قلة من المشاريع التعليمية تهتم بهذا، ويحسب لك: اتجاه صحيح تجربة مستخدم مناسبة تصميم متجاوب ملاحظات تحسين (Important Improvements) 1. الأمان (مهم جدًا) بما أن التطبيق طبي: تأكد من: Hash كلمات المرور (bcrypt) عدم إعادة كلمة المرور في أي Response حماية رفع الصور (النوع والحجم) عدم كشف مسارات النظام إن لم يكن ذلك موجودًا، فهو أول شيء يجب إضافته. 2. الجلسات و Auth استخدام الجلسات جيد، لكن للتطوير المستقبلي: فكّر لاحقًا في: JWT Refresh Tokens فصل Auth middleware بوضوح حاليًا مقبول جدًا لمستوى المشروع. 3. قاعدة البيانات SQLite ممتاز للتعلّم، لكن: لو أردت نقل المشروع للإنتاج: PostgreSQL أو MySQL يفضّل وجود: migrations constraints أوضح (UNIQUE، NOT NULL) 4. فصل المنطق (Clean Code) إن كان كل شيء في index.js: يُفضّل فصل: routes controllers services database layer هذا يرفع المشروع مستوى كامل. 5. Frontend اقتراحات بسيطة: Handling أفضل للأخطاء (loading / empty states) Form validation أوضح إعادة استخدام المكوّنات (Cards / Inputs) واضح أنك واعٍ بهذا، فقط تحسين تدريجي. هل استخدام TRAE AI يقلل من قيمة المشروع؟ لا، بشرط واحد فقط: أنك تفهم كل سطر كود وتستطيع شرحه. وبناءً على وصفك للمشروع وREADME: واضح أنك تفهم ما بنيته، وهذا هو المهم. في المقابلات لا يسألون: هل كتبت كل سطر بيدك؟ بل: هل تفهم لماذا هذا الحل؟ وهل تستطيع تعديله؟ هل المشروع مناسب للعرض؟ نعم، وبقوة: GitHub Portfolio LinkedIn تقديم لوظائف Junior / Intern / Frontend / Full-Stack لو أضفت: Live demo Screenshots فيديو قصير سيصبح ممتازًا. الخلاصة مشروعك: متكامل مفهوم عملي منظم ويعكس فهمًا حقيقيًا للمسار لو طُلب مني تقييمه: 8.5 / 10 لمستوى تعليمي متقدم.1 نقطة
-
وعليكم السلام ورحمة الله وبركاته . هذا الكود يمثل تطبيق مخصص لتقنية مهمة جدا في تعلم الآلة تسمى الإيقاف المبكر (Early Stopping). وأهمية هذا الكود تكمن في التحكم في دورة حياة تدريب النموذج بناء على مقاييس محددة وتتلخص أهميته في النقاط التالية: توفير الوقت والموارد الحاسوبية (Efficiency) فبدلا من الاستمرار في تدريب النموذج لعدد محدد مسبقا من ال Epochs يقوم هذا الكود بإيقاف التدريب فورا بمجرد الوصول للهدف المطلوب مثلا دقة 98%. مثال: إذا وصل النموذج لدقة 98% في ال Epochs رقم 10 فلا داعي لإضاعة الوقت وموارد وحدة المعالجة الرسومية (GPU) في تدريبه لل 90 Epochs المتبقية. منع ال (Overfitting) إن ال Overfitting هي واحدة من أكبر مشاكل تدريب النماذج حيث يبدأ النموذج في حفظ البيانات بدلا من فهم الأنماط العامة إذا استمر التدريب لفترة طويلة جدا بعد الوصول لأفضل أداء ولهذا بإيقاف التدريب عند نقطة جيدة بما فيه الكفاية مثل 98% فإنك تحمي النموذج من أن يبدأ في تدهور أدائه على البيانات الجديدة (Validation Data). وإليك شرح الكود كل سطر على حدى : الوراثة (tf.keras.callbacks.Callback): الكود يرث من فئة Callback الخاصة ب Keras وهذا يسمح للكود بالتدخل في عملية التدريب في نقاط محددة مثل بداية التدريب ونهاية ال Epochs . الدالة on_epoch_end: هذه الدالة يتم استدعاؤها تلقائيا من قبل Keras في نهاية كل دورة تدريبية (Epoch) والمتغير logs يحتوي على نتائج التدريب الحالية مثل الدقة accuracy والخسارة loss. الشرط if logs.get('accuracy') >= 0.98: هنا يتم فحص القاموس logs للبحث عن قيمة الدقة وإذا تجاوزت أو ساوت 98% يتم تنفيذ أمر الإيقاف. أمر الإيقاف self.model.stop_training = True: هذا هو السطر الأهم وهو الذي يرسل إشارة لعملية التدريب (model.fit) بأن تتوقف فورا ولا تكمل باقي ال Epochs المجدولة.1 نقطة
