لكل بداية نهاية، ولكل نهاية بداية جديدة.. واليوم أعلن رسمياً تخرجي!
لم تكن رحلة الدراسة مجرد سنوات مرت، بل كانت تجربة مليئة بالتحديات والتعلم المستمر. ولأن أفضل طريقة لتتويج هذه الرحلة هي العمل التطبيقي، حرصت على أن أختمها ببناء مشروع متكامل يعبر عن شغفي في مجال التطوير والبرمجة.
في مستوى ثالث بدأت بعمل Portfolio ولكن بالتقينات التي كنت أعرفها حينها وكان المشروع ثابت Static
بعد تطورنا وتطور معرفتنا بالباك ودمج الذكاء الاصطناعي
قمت ببناء بورتفوليو (Portfolio) متكامل يضم:
واجهة متكاملة مع Backend منفصل: لبناء معمارية برمجية قوية ومستقلة.
لوحة تحكم (Dashboard): وإدارة كاملة للمحتوى والبيانات.
الموقع الرئيسي العام وصفحاته
مساعد ذكي (AI Assistant): للتفاعل مع الزوار وتقديم تجر استخدام حديثة.
خدمات متعددة: عرض مشاريعي البرمجية، مدونة تقنية، عرض الـ CV التفاعلي، استعراض التقنيات المستخدمة، وغيرها الكثير.
شكرًا لكل من دعمني في هذه الرحلة من عائلة، أصدقاء، وأساتذة. هذه مجرد الخطوة الأولى، والحماس في أعلاه لما هو قادم!
📌 يمكنكم الاطلاع على المشروع عبر الرابط
https://tareq-frontend.onrender.com
م.طارق فضل العمري
لم تكن رحلة الدراسة مجرد سنوات مرت، بل كانت تجربة مليئة بالتحديات والتعلم المستمر. ولأن أفضل طريقة لتتويج هذه الرحلة هي العمل التطبيقي، حرصت على أن أختمها ببناء مشروع متكامل يعبر عن شغفي في مجال التطوير والبرمجة.
في مستوى ثالث بدأت بعمل Portfolio ولكن بالتقينات التي كنت أعرفها حينها وكان المشروع ثابت Static
بعد تطورنا وتطور معرفتنا بالباك ودمج الذكاء الاصطناعي
قمت ببناء بورتفوليو (Portfolio) متكامل يضم:
واجهة متكاملة مع Backend منفصل: لبناء معمارية برمجية قوية ومستقلة.
لوحة تحكم (Dashboard): وإدارة كاملة للمحتوى والبيانات.
الموقع الرئيسي العام وصفحاته
مساعد ذكي (AI Assistant): للتفاعل مع الزوار وتقديم تجر استخدام حديثة.
خدمات متعددة: عرض مشاريعي البرمجية، مدونة تقنية، عرض الـ CV التفاعلي، استعراض التقنيات المستخدمة، وغيرها الكثير.
شكرًا لكل من دعمني في هذه الرحلة من عائلة، أصدقاء، وأساتذة. هذه مجرد الخطوة الأولى، والحماس في أعلاه لما هو قادم!
📌 يمكنكم الاطلاع على المشروع عبر الرابط
https://tareq-frontend.onrender.com
م.طارق فضل العمري
👏3
برومو | دفعة الظل التقني - ٢٠٢٦
لمشاهدة حفل تخرج دفعة الظل التقني
الخاص بطلاب
علوم الحاسوب وتقنية المعلومات - جامعة إب ٢٠٢٦م
تابعوا البث المباشر على اليوتيوب غداً
الساعة التاسعة صباحاً بث مباشر
لمن لا يستطيع الحضور.
https://youtube.com/@algunaidmedia?si=yaNDro2hEbCKho_z
لمشاهدة حفل تخرج دفعة الظل التقني
الخاص بطلاب
علوم الحاسوب وتقنية المعلومات - جامعة إب ٢٠٢٦م
تابعوا البث المباشر على اليوتيوب غداً
الساعة التاسعة صباحاً بث مباشر
لمن لا يستطيع الحضور.
https://youtube.com/@algunaidmedia?si=yaNDro2hEbCKho_z
❤1
#018 — Database Design | تصميم قواعد البيانات
أي نظام ناجح لا يعتمد فقط على كود جيد، بل يحتاج إلى بيانات منظمة ومصممة بشكل صحيح من البداية.
وهنا يأتي دور:
Database Design — تصميم قواعد البيانات
الفكرة ليست أن تنشئ Tables كثيرة، بل أن تسأل أولًا:
ما البيانات التي أحتاجها فعلًا؟ وكيف ترتبط ببعضها؟
لأن التصميم السيئ قد يؤدي إلى:
تكرار البيانات، صعوبة التعديل، أخطاء في العلاقات، بطء الاستعلامات، ومشاكل تظهر كلما كبر النظام.
لذلك نبدأ عادةً بـ:
Requirements → Entities → Attributes → Keys → Relationships → ERD → Database
فمثلًا في متجر إلكتروني قد نحدد:
Customer — العميل
Product — المنتج
Order — الطلب
Payment — الدفع
Category — التصنيف
Address — العنوان
ثم نحول كل مفهوم مهم إلى Entity، وبعدها نحدد خصائصه.
مثلًا:
Customer
id
name
email
phone
وهنا تأتي المفاتيح:
Primary Key — PK
يميز كل Record بشكل فريد.
Foreign Key — FK
يربط البيانات بين الجداول.
وباختصار:
PK identifies. FK connects.
لكن البيانات لا تعيش منفصلة، لذلك نحتاج إلى فهم Relationships:
1:1 — One-to-One
مستخدم واحد ملف شخصي واحد.
1:N — One-to-Many
عميل واحد → عدة طلبات.
M:N — Many-to-Many
الطلب يحتوي عدة منتجات، والمنتج قد يظهر في عدة طلبات.
وفي حالة M:N نستخدم غالبًا جدولًا وسيطًا مثل:
OrderItems
حتى نحافظ على تصميم منطقي ومنظم.
ثم يأتي دور:
ERD — Entity Relationship Diagram
وهو الخريطة التي توضح:
Entities
Attributes
Primary Keys
Foreign Keys
Relationships
Cardinality
قبل أن تبدأ كتابة SQL.
لكن التصميم لا يتوقف هنا.
نحتاج أيضًا إلى Normalization — التطبيع لتقليل التكرار ووضع كل معلومة في المكان الصحيح.
والقاعدة الجميلة هنا:
Store each fact in the right place.
ثم نضيف عناصر تجعل قاعدة البيانات أكثر موثوقية:
Constraints
مثل NOT NULL وUNIQUE وCHECK وFOREIGN KEY.
Data Types
اختيار النوع المناسب لكل قيمة.
Indexes
لتسريع البحث والاستعلامات عند استخدامها بشكل صحيح.
Naming
أسماء واضحة ومتناسقة.
Integrity
الحفاظ على صحة وترابط البيانات.
Performance
تصميم يناسب طريقة استخدام النظام فعلًا.
ويمكن تلخيص الرحلة كاملة هكذا:
Understand Data
↓
Identify Entities
↓
Define Attributes
↓
Choose Primary Keys
↓
Define Relationships
↓
Draw ERD
↓
Normalize
↓
Add Constraints & Indexes
↓
Validate with Real Scenarios
ثم المعادلة:
Good Data Model → Reliable Database → Better System
وأهم نصيحة:
لا تصمم قاعدة البيانات لتناسب الشاشة الحالية فقط.
صمّمها لتمثل البيانات الحقيقية والعلاقات الحقيقية داخل النظام.
Understand → Model → Relate → Normalize → Implement
سؤال للنقاش:
في متجر إلكتروني، لماذا لا نضع المنتجات مباشرة داخل جدول Orders؟
ولماذا نحتاج جدولًا مثل OrderItems؟
م. طارق العمري
Software Engineer | Backend Developer
#DatabaseDesign #Database #DataModeling #ERD #SQL #Normalization #PrimaryKey #ForeignKey #DatabaseRelationships #BackendDevelopment #SoftwareEngineering #SystemDesign #SoftwareDeveloper #SoftwareEngineer #تصميم_قواعد_البيانات #قواعد_البيانات #هندسة_البرمجيات #تطوير_البرمجيات
أي نظام ناجح لا يعتمد فقط على كود جيد، بل يحتاج إلى بيانات منظمة ومصممة بشكل صحيح من البداية.
وهنا يأتي دور:
Database Design — تصميم قواعد البيانات
الفكرة ليست أن تنشئ Tables كثيرة، بل أن تسأل أولًا:
ما البيانات التي أحتاجها فعلًا؟ وكيف ترتبط ببعضها؟
لأن التصميم السيئ قد يؤدي إلى:
تكرار البيانات، صعوبة التعديل، أخطاء في العلاقات، بطء الاستعلامات، ومشاكل تظهر كلما كبر النظام.
لذلك نبدأ عادةً بـ:
Requirements → Entities → Attributes → Keys → Relationships → ERD → Database
فمثلًا في متجر إلكتروني قد نحدد:
Customer — العميل
Product — المنتج
Order — الطلب
Payment — الدفع
Category — التصنيف
Address — العنوان
ثم نحول كل مفهوم مهم إلى Entity، وبعدها نحدد خصائصه.
مثلًا:
Customer
id
name
phone
وهنا تأتي المفاتيح:
Primary Key — PK
يميز كل Record بشكل فريد.
Foreign Key — FK
يربط البيانات بين الجداول.
وباختصار:
PK identifies. FK connects.
لكن البيانات لا تعيش منفصلة، لذلك نحتاج إلى فهم Relationships:
1:1 — One-to-One
مستخدم واحد ملف شخصي واحد.
1:N — One-to-Many
عميل واحد → عدة طلبات.
M:N — Many-to-Many
الطلب يحتوي عدة منتجات، والمنتج قد يظهر في عدة طلبات.
وفي حالة M:N نستخدم غالبًا جدولًا وسيطًا مثل:
OrderItems
حتى نحافظ على تصميم منطقي ومنظم.
ثم يأتي دور:
ERD — Entity Relationship Diagram
وهو الخريطة التي توضح:
Entities
Attributes
Primary Keys
Foreign Keys
Relationships
Cardinality
قبل أن تبدأ كتابة SQL.
لكن التصميم لا يتوقف هنا.
نحتاج أيضًا إلى Normalization — التطبيع لتقليل التكرار ووضع كل معلومة في المكان الصحيح.
والقاعدة الجميلة هنا:
Store each fact in the right place.
ثم نضيف عناصر تجعل قاعدة البيانات أكثر موثوقية:
Constraints
مثل NOT NULL وUNIQUE وCHECK وFOREIGN KEY.
Data Types
اختيار النوع المناسب لكل قيمة.
Indexes
لتسريع البحث والاستعلامات عند استخدامها بشكل صحيح.
Naming
أسماء واضحة ومتناسقة.
Integrity
الحفاظ على صحة وترابط البيانات.
Performance
تصميم يناسب طريقة استخدام النظام فعلًا.
ويمكن تلخيص الرحلة كاملة هكذا:
Understand Data
↓
Identify Entities
↓
Define Attributes
↓
Choose Primary Keys
↓
Define Relationships
↓
Draw ERD
↓
Normalize
↓
Add Constraints & Indexes
↓
Validate with Real Scenarios
ثم المعادلة:
Good Data Model → Reliable Database → Better System
وأهم نصيحة:
لا تصمم قاعدة البيانات لتناسب الشاشة الحالية فقط.
صمّمها لتمثل البيانات الحقيقية والعلاقات الحقيقية داخل النظام.
Understand → Model → Relate → Normalize → Implement
سؤال للنقاش:
في متجر إلكتروني، لماذا لا نضع المنتجات مباشرة داخل جدول Orders؟
ولماذا نحتاج جدولًا مثل OrderItems؟
م. طارق العمري
Software Engineer | Backend Developer
#DatabaseDesign #Database #DataModeling #ERD #SQL #Normalization #PrimaryKey #ForeignKey #DatabaseRelationships #BackendDevelopment #SoftwareEngineering #SystemDesign #SoftwareDeveloper #SoftwareEngineer #تصميم_قواعد_البيانات #قواعد_البيانات #هندسة_البرمجيات #تطوير_البرمجيات
❤1