فن كتابة الكود البرمجي والية استعمال أنماط التصميم

abo3tb0092 18 views 22 slides Sep 22, 2025
Slide 1
Slide 1 of 22
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22

About This Presentation

The lecture “The Art of Coding” offers participants a practical journey into programming paradigms and design patterns. It introduces procedural, functional, and object-oriented programming, explaining how to transform code from simple sequential instructions into structured, reusable, and scala...


Slide Content

Shaqra University ةباتك نف
يجمربلا دوكلا

01
02
03
04
05
06
2 | ةحفص
تايوتحملا
ةيديهمت ةنراقم
ةمدقملا
FProcedural Programming( ةيئارجإلا ةجمربلا
FFunctional Programming( ةيفيظولا ةجمربلا
FObject-Oriented Programming - OOP( ةينئاكلا ةجمربلا
07
ةجمربلا يف ةعئاش ءاطخأ
FDesign Patterns( ميمصتلا طامنا

؟اذاملو لضفأ نيدوكلا يأ
3 | ةحفص

ولت ةدحاو ذَّفنُت ،تاميلعتلا وأ رماوألا نم ةلسلسك بتكُي جمانربلا نأ ىلع دمتعي يجمرب بولسأ يه
.هب تبتُك يذلا بيترتلاب ،لفسألا ىلإ ىلعألا نم ،ىرخألا
.هلبق يذلا رطسلا دعب رطس لك ذفنُي ثيح ،هيف بتُك يذلا بيترتلا سفنب ذفنُيو دوكلا أرقُي ،ةطاسبب
4 | ةحفص
:ةوهق ةلآ لّغشي صخشل تاميلعت بتكت كنأ ليخت
.ليغشتلا رز طغضا .1
.)ريطقتلا ة
ّي
نيص قوف( ةهّوفلا تحت اًبوك عض .2
.صّصخملا اهناكم يف ةلوسبكلا عض .3
.ماكحإب ضبقملا قلغَأ .4
.بسانملا بوكلا مجحب صاخلا
ّر
زلا طغضا .5
.ريضحتلا ةيلمع لمتكت ىتح رظتنا .6
ةوهقلاب عتمتساو بوكلا بحسا .7
.ةجيتنلا ىلع ريثأتلا نود بيترتلا رييغت نكمي الو ،اهلبق ام ىلع دمتعت ةوطخ لك
.ةيئارجإلا ةجمربلا يف ثدحي ام طبضلاب اذهو
)Procedural Programming( ةيئارجإلا ةجمربلا

:نوثياب ةغلب طيسب لاثم
x = 5
y = 10
z = x + y
print(z)
:لاثملا اذه يف
.x ريغتملا يف 5 ةميقلا نزخيف ،لوألا رطسلا نم رتويبمكلا أدبي •
.y يف 10 نزخيو ،يناثلا رطسلا ىلإ لقتني مث •
.z يف جتانلا نزخيو ،y و x عمجي ،كلذ دعب •
.ةجتانلا ةميقلا عبطي ،اًريخأو •
؟ةيئارجإلا ةجمربلا مدختسن اذامل ،نكل
:اًحضاو اًلسلستم اًذيفنت بلطتت ماهملا مظعم نأل ،تاميلعتلا ذيفنتل اًدج يقطنم رايخ يه ،تايادبلا يف
.يرورض انه بيترتلا — هظفحا مث ،هعبطا مث ،اذه بسحا
.ةحضاو تاوطخلا نوكت امدنع اًصوصخ ،ةطسوتملاو ةطيسبلا ماهملل اًدج ةبسانم ربتعت ،كلذلو
5 | ةحفص

:ةيئارجإلا ةجمربلا ايازم
.نيئدتبملل ةبسانم اهلعجي امم ،ملعتلل اًدج ةلهس •
.ةوطخب ةوطخ رماوألا ذيفنت يف ةيقطنم •
. رتويبمكلا لمع ةقيرط مهف ىلع دعاسي امم ،اهلسلست يف ةحضاو •
.ةددحملا تاوطخلا تاذ ةطسوتملا وأ ةطيسبلا ماهملاو ةريغصلا جماربلل ةبسانم •
:اهبويع
.دوكلا راركت لثم لكاشم أدبت ،جمانربلا عسوت عم •
.ةيجمربلا ءازجألا مادختسا ةداعإ ةبوعص •
.اًديقعت رثكأ حبصي تاريغتملا عبتت •
اًقحال هريوطت وأ جمانربلا ليدعت بعصي •
:ةصالخلا
،عيراشملا ديقعت دايدزا عمو .اهدحو ةيفاك اًمئاد تسيل اهنكل ،جمربم يأل ةزاتمم ةيادب رّفوت ةيئارجإلا ةجمربلا
.ةيفيظولاو ةينئاكلا ةجمربلا لثم ةنورم رثكأو ىوقأ ةيميظنت بيلاسأ ىلإ ةجاحلا رهظت
6 | ةحفص

اهتاجرخم نوكت FFunctions( لاود ىلإ جمانربلا ميسقت ىلع دمتعيو ،ةيضايرلا لاودلا يكاحُي يجمرب بولسأ يه
.ةيبناج تاريثأت يأ نود ،تالخدملا ىلع طقف ةدمتعم
:ةركفلا طيسبتلو
اهميسقتب موقت ،”جاجد عم زرأ“ وأ ”ازتيب“ لثم ةمعطأك اهفينصت نم ًالدب .ةنزاوتم ةيئاذغ ةبجو لوانتت كنأ ل
ّي
خت
ىلع رثؤي ال كلذ نإف ،تصقن وأ نوهدلا ةيمك تداز اذإ .نوهدو ،تارديهوبرك ،نيتورب :ةيساسألا اهتانوكم ىلإ
. عون نم رثكا نمضتت ةبجولا تناك اذإ الإ ،تارديهوبركلا وأ نيتوربلا ةيمك
،ىرخألا يف اهادحإ رثؤت الو ،ىرخألا نع لزعمب لمعت ةلاد لك :ةيفيظولا ةجمربلا أدبم هبشُي اذهو
.ىرخأ ةلادل لخدمك اهجتان ريرمت مت اذإ الإ
)Functional Programming( ةيفيظولا ةجمربلا
7 | ةحفص

:نوثياب ةغلب لاثم
كلذ رثؤي نلف ،add ةلاد انلّدع اذإف .لقتسم لكشب نالمعت برضلاو عمجلا اتلاد ،لاثملا اذه يف
مدعو ،ةيلالقتسالا :ةيفيظولا ةجمربلا رهوج وه اذهو .ةتباث اهتهجاو تيقب املاط ،mul ىلع
.لاودلا نيب ةيبناج تاريثأت دوجو
8 | ةحفص

9 | ةحفص
:اهبويع
.هذيفنت بعصي ام وهو ،اهضعب عم لاودلا لعافت ىلإ جاتحن اًنايحأ •
.تاغللا ضعب يف لماكلاب معدُت ال •
:ةصالخلا
ليلقتو ،ميظنتلا يف ةيوق ايازم مدقت اهنكل ،اًعويش رثكألا طمنلا تسيل ةيفيظولا ةجمربلا
ةيلباقو ةنورملاو حوضولا بلطتت يتلا عيراشملا يف يلاثم رايخ يهو .ةعسوتلا معدو ،ءاطخألا
.يزاوتملا ذيفنتلا
:ةيفيظولا ةجمربلا ايازم
.تالخدملا ليدعت متي الف ،)Immutable( ةتباثلا ميقلا ىلع دمتعت •
.ةريبكلا جماربلا يف اًصوصخ ،دوكلا ةءارق لّهست •
.ليدعتلاو ةنايصلا لهسي امم ،راركتلا للقت •
.)Scalable( ةعسوتلل ةلباق •
.)Concurrency( ةنمازتم تايلمع ةدع ذيفنتل ةبسانم •

)Object-Oriented Programming - OOP( ةينئاكلا ةجمربلا
فرعُي ام وأ ،تانايبلا لوح ةيجمربلا ةرفيشلا ميظنت ىلع زّكرُي جماربلا ميمصت يف بولسأ يه ةينئاكلا ةجمربلا
.رماوألا لسلست وأ فئاظولا ىلع طقف زيكرتلا نم ًالدب ،)Objects( تانئاكلاب
هذه عم لماعتت )Methods( فئاظو ىلإ ةفاضإلاب ،تانايب ىلع يوتحت تانئاك ءاشنإ ىلع بولسألا اذه دمتعي
بلاق نع ةرابع وه سالكلا .)Classes( ”تاسالكلا“ مساب فرعُت بلاوق مادختساب تانئاكلا ءاشنإ متيو .تانايبلا
تانايب ىلع يوتحي نأ نئاك لكل نكمي نكلو ،ةيساسألا ةينبلا سفن يف كرتشت ةددعتم تانئاك ءانبل مدختسُي
.هب ةصاخ
:موهفملا بيرقتل
صئاصخ ىلع يوتحت ،ةيصخش تامولعم ةقاطبب سالكلا هيبشت نكمي
سفن ىلع ةينبم )نئاك( ةقاطب لك .رمعلاو ،داليملا خيراتو ،مسالا لثم
.ةصاخلا هتانايب كلمي صخش لك نكل ،بلاقلا
10 | ةحفص

11 | ةحفص
ةداعإل ةلباق )Modules( تادحو ىلإ ةرفيشلا ةئزجت ةيناكمإ يه ةينئاكلا ةجمربلا تازيم مهأ نم ةدحاو
:لاثملا ليبس ىلع .ميظنتلاو مادختسالا
:calculator.py ىمسُي فلم يف
:رخآ فلم يفو
يف دوكلا مادختسا ةداعإ نكمي ،لكشلا اذهب
للقي امم ،هراركت ىلإ ةجاحلا نود رخآ ناكم يأ
.تقولا رّفويو ءاطخألا نم

:ةينئاكلا ةجمربلا ايازم
.دوكلل يلاع ميظنت •
.)Reusable CodeE ةلوهسب دوكلا مادختسا ةداعإ •
.ليدعتلاو ةعسوتلا تايلمع ليهست •
.ليوطلا ىدملا ىلع ةنايصلا نيسحتو ،راركتلا ليلقت •
:اهبويع
.نيئدتبملل ةصاخ ،ةيئارجإلا ةجمربلا نم اًديقعت رثكأ •
.ةطيسبلا وأ ةريغصلا عيراشملا يف اهيف اًغلابم نوكت دق •
.)EncapsulationE فيلغتلاو ،)AbstractionE ديرجتلاو ،)InheritanceE ةثارولا لثم ميهافمل اًديج اًمهف بلطتت •
:ةصالخلا
تاغل نم ديدعلا يف ةموعدم يهو ،ةثيدحلا تايجمربلا ريوطت يف ةيساسألا بيلاسألا نم ةينئاكلا ةجمربلا دعُت
ىلع ةنايصلاو ريوطتلل ةلباقو ةنرم ةمظنأ ءانب ىلع دعاست ةيوق ةادأ ربتعُتو .C++و ،Javaو ،Python لثم ةجمربلا
.ليوطلا ىدملا
12 | ةحفص

يف ةرركتم لكاشمل مادختسالا ةداعإل ةلباقو ةماع لولح يه ةجمربلا يف )Design Patterns( ميمصتلا طامنا
تارفيش ةباتك ىلع نيجمربملا دعاست تافصو وأ بلاوق امنإو ،ةزهاج تارفيش تسيل يه .تايجمربلا ميمصت
.ةلوهسب ع
ّس
وتلل ةلباقو ،ةنايصلل ةلباق ،ةمظنم
”Design Patterns: Elements of Reusable Object-Oriented Software“ باتك دعب ةوقب ترهظ ةركفلا
قرط نم ايساسا اءزج ىقبتو ،1994 ماع Gang of Four” (Gamma, Helm, Johnson, Vlissides)“ ةعومجمل
مويلا نيجمربمل ةجمربلا
نأل ،هؤانب قبس ام قوف ءانبلا ىلع ةينبم نوكت ةجمربلا نم ريثكلا
اههجاو نا قبس دق نيجمربملا هجاوت يتلا لكاشملا نم ريثكلا
ميمصتلا طامنا مادختسا صرف فشك انيلع بجي اذهلو ،نيرخا نيجمربم
)Design PatternsD ميمصتلا طامنا
13 | ةحفص

ةخسن دوجو نمضي class نع يئاشنإ طمن
تقو لاوط طقف هل ةدحاو )instance(
تيبثت نكمي ال قيبطت لثم .ليغشتلا
تقولا سفن يف هنم نيرادصا
Singleton ديحولد ارفل ا .1
14 | ةحفص
ميمصتلا طامنا ضعب
اهريغ وا تانئاك ةدع عمجي يلكيه طمن
نم الدبف .ةدحومو ةطسبم ةهجاو يف
كنكمي ،تاهجلا نم ديدعلا عم لماعتلا
لابقتسا فظوم اهنأك ةهجاولا مادختسا
Façade ةهجاول ا .2
دعبلبق

هفلتخم تانئاك ئشني يئاشنإ طمن
ديدحت ىلإ ةجاحلا نود بلطلا بسح
نم بلطن نا لثم.يقيقحلا سالكلا
معطم يف ةفلتخملا رقرب فانصا
Factory عنصمل ا .3
15 | ةحفص
ميمصتلا طامنا ضعب
ءازجا هيلع ينبيو نئاك عنصي يئاشنإ طمن
برقا ءانبلا ،عنصملا سكع ىلع .هفلتخم
رثكا .ةدح ىلع رقربلا تانوكم رايتخا ىلا
ديقعت رثكا نكل ةيرح
Builderء اّنبل ا.4

نيوكتب كل حمسي يكولس طمن
One-to- ددعتمل دحاو ةقالع
Subject كانه نوكيف .Many
ائيش ريغت اذا ،)بويتوي ةانق لثم(
طبترم Observer لك راعشا متي
ايئاقلت )نيكرتشملا لثم( هب
Observer بقارمل ا .5
16 | ةحفص
ميمصتلا طامنا ضعبOutput

17 | ةحفص
ةجمربلا يف ةعئاش ءاطخأ
ءامسأ نم اًلدب temp وأ x مادختسا لثم
وأ userAge لثم ىنعملا نع ر
ّب
عت
.calculateTotalPrice
ةحض واريغء امسام أدختس ا .1
والدلات واريغتملل
ةدحاو ةلاد يف تاميلعتلا عيمج ةباتك
ىلع ماهملا عيزوت نم اًلدب )main لثم(
.ةفيظو لكل ةلقتسم لاود
دوالىلد إوكل اميسقتم دع .2
ةريغص
امم ،دوكلا نم ةدقعملا ءازجألا حرش مدع
كسفن ىلع ىتح وأ( نيرخآلا ىلع بّعصي
.هتنايصو همهف )اًقحال
تاقيلعتل واقيثوتلل اامه إ .3
)Documentation(
قبس لكاشمل لولح وأ تايمزراوخ ةباتك
تابتكم يف ةزهاج لولح اهل تدجُو نأ
.ةفورعم
ةلجعلاع ارتخدة ااع إ .4
)Reinventing the Wheel(
دوكلا ةباتك يف ةماع ءاطخأ :اًلوأ

18 | ةحفص
ققحتلا وأ try-catch مادختسا لهاجت
امم ،)null لثم( ةفورعملا ريغ ميقلا نم
ريغ تالاحلا يف جمانربلا رايهنا ببسي
.ةعقوتملا
ءاطخأل اعم ميلسل اريغ لماعتل ا .5
)Error HandlingE
)if status == 3 لثمE دوكلا يف ةرشابم ماقرأ ةباتك
ةيحيضوت ءامسأ اهل تباوث مادختسا نم اًلدب
.)ORDER_COMPLETEDE
MagicE ةيرحسلم ااقرألام ادختس ا .6
)Numbers
امم ،ةفلتخملا لولحلا ةنراقم وأ ثحبلا مدع
.هتدوجو هتنورم دوكلا دقفُي
ةدح واةقيرطك انهن أبد اقتعال ا .7
دوكل اةباتكل طقف ةحيحص

19 | ةحفص
FDesign Patterns( ميمصتلا طامنأ مادختسا دنع ةعئاش ءاطخأ :اًيناث
.ديقعتلا اذه يعدتسي ال ريغص عورشم يف Factory وأ Singleton مادختسا :لاثم
)Over-engineering( ةيلعف ةجاحط دون امنألام ادختس ا .1
يف لكاشم ىلإ كلذ يدؤي دق امنيب ،ءادألا نيسحت لمأ ىلع Singleton تاسالكلا لك لعج
.ًالبقتسم ةعسوتلا وأ رابتخالا
Singletonام دختس وامهفء وس .2
؟Singleton وه ام •
.ليغشتلا تقو لاوط نئاكلا نم طقف ةدحاو ةخسن دوجو نمضي طمن
؟Factory وه ام •
.ذيفنتلا ءانثأ يقيقحلا سالكلا ديدحت ىلإ ةجاحلا نود تانئاك ءاشنإل مدختسُي طمن

20 | ةحفص
.ةبسانم ريغ ةقيرطب رخآلا نم اًلدب نيطمنلا دحأ مادختسا
Abstract Factory و Factory نيب طلخل ا .3
:Abstract Factory •
.كلذل ةدّحوم ةهجاو مّدقيو ،ةدحاو ةلئاعل يمتنت يتلا تانئاكلا نم ةعومجم ءاشنإل مدختسُي طمن
.سكعلا وأ ،اًديقعت رثكأ اًقيسنت بلطتت تالاح يف Simple Factory مادختسا :أطخلا •
؟Observer وه ام
.هتلاح ر
ّي
غت دنع ىرخألا تانئاكلا نم ةعومجم غالبإب ام نئاكل حمسي طمن
برست ىلإ يدؤي دق امم ،مهل ةجاحلا مدع دنع )Observers( نيبقارملا ةلازإ نايسن :عئاشلا أطخلا •
.)Memory Leaks( ةركاذلا يف
Observer طمنام دختسء اوس .4

21 | ةحفص
؟Strategy وه ام •
.ةنرم ةقيرطب ليغشتلا ءانثأ كولسلا ليدبتل مدختسُي طمن
؟Decorator وه ام •
.يلصألا دوكلا ليدعت نود دوجوم نئاك ىلإ ةديدج تازيم ةفاضإل مدختسُي طمن
فيضي هنوكل بسنأ ناك Decorator امنيب ،نيعم نئاك ةفيظو عيسوتل Strategy مادختسا :عئاشلا أطخلا •
.يساسألا كولسلا رييغت نود ةزيم
ةلكشمل الحل بسانمل اريغ طمنلر اايتخ ا .5
ةلكشملا امو ،طمن لك مدختسُي ىتم ةفرعم لب ،اهئامسأ ظفح درجم ينعي ال ميمصتلا طامنأ مهف
وه بسانملا تقولا يف بسانملا طمنلا رايتخا .هبساني يذلا ماظنلا ديقعت ىدم امو ،اهجلاعُي يتلا
.ئدتبملا نع فرتحملا جمربملا زيمي ام

ًالـــيزج ًاركش مكعاــــــــــــــــــــــمتسا نسح ىلع
22 | ةحفصShaqra University