<?xml version="1.0" encoding="UTF-8" standalone="no"?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" version="2.0"><channel><title>مدونة مطيع الجابري</title><description>مدونتي هي عبارة عن عن مدونة بسيطة تختص بالبرمجة والتقنية بشكل عام </description><managingEditor>noreply@blogger.com (muteealjabri.blogspot.com)</managingEditor><pubDate>Sat, 8 Aug 2026 15:14:25 +0300</pubDate><generator>Blogger http://www.blogger.com</generator><openSearch:totalResults xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">61</openSearch:totalResults><openSearch:startIndex xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">1</openSearch:startIndex><openSearch:itemsPerPage xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">25</openSearch:itemsPerPage><link>http://muteealjabri.blogspot.com/</link><language>en-us</language><itunes:explicit>no</itunes:explicit><itunes:subtitle>مدونتي هي عبارة عن عن مدونة بسيطة تختص بالبرمجة والتقنية بشكل عام </itunes:subtitle><itunes:owner><itunes:email>noreply@blogger.com</itunes:email></itunes:owner><item><title>تاريخ تطور الذكاء الاصطناعي</title><link>http://muteealjabri.blogspot.com/2026/08/blog-post_08.html</link><category>الذكاء الاصطناعي</category><category>بايثون</category><category>برمجة</category><category>تاريخ الذكاء الاصطناعي</category><category>تعلم آلي</category><author>noreply@blogger.com (muteealjabri.blogspot.com)</author><pubDate>Sat, 8 Aug 2026 11:11:54 +0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-5547022875870167028.post-4328384784184866129</guid><description>&lt;style&gt;
.tech-blog-post {
    direction: rtl;
    text-align: justify;
    font-family: 'Outfit', 'Inter', 'Noto Sans Arabic', sans-serif;
    color: #2c3e50;
    line-height: 1.8;
    font-size: 16px;
}
.tech-blog-post h2 {
    color: #1a365d;
    border-bottom: 2px solid #e2e8f0;
    padding-bottom: 8px;
    margin-top: 30px;
    margin-bottom: 15px;
    font-weight: 700;
}
.tech-blog-post h3 {
    color: #2b6cb0;
    margin-top: 25px;
    margin-bottom: 12px;
    font-weight: 600;
}
.tech-blog-post p {
    margin-bottom: 18px;
}
.tech-blog-post ul, .tech-blog-post ol {
    margin-bottom: 18px;
    padding-right: 25px;
}
.tech-blog-post li {
    margin-bottom: 8px;
}
.tech-blog-post blockquote {
    border-right: 4px solid #3182ce;
    background-color: #ebf8ff;
    padding: 12px 20px;
    margin: 20px 0;
    border-radius: 4px;
    color: #2b6cb0;
    font-style: italic;
}
.tech-blog-post pre {
    background-color: #1e1e1e;
    color: #f8f8f2;
    padding: 16px;
    border-radius: 8px;
    overflow-x: auto;
    font-family: 'Consolas', 'Courier New', Courier, monospace;
    font-size: 14px;
    line-height: 1.5;
    margin: 20px 0;
    border: 1px solid #2d3748;
    direction: ltr;
    text-align: left;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
}
.tech-blog-post code {
    font-family: 'Consolas', 'Courier New', Courier, monospace;
    background-color: #edf2f7;
    color: #e53e3e;
    padding: 2px 6px;
    border-radius: 4px;
    font-size: 90%;
    font-weight: 600;
    direction: ltr;
    display: inline-block;
}
.tech-blog-post pre code {
    background-color: transparent;
    color: inherit;
    padding: 0;
    border-radius: 0;
    font-size: inherit;
    font-weight: normal;
    display: block;
}
&lt;/style&gt;&lt;div class="tech-blog-post"&gt;&lt;h2&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEhOUfILMipiya7Qmme2SBf23wf7-KN04H7hDs9d1QvltKKvt5onKuWtqdCYmp77ycWpFxxPk938VQXgGuc88qGI04Os7Lspa7-8u8ODcm9RwML3kt3sQzcfTGgisflBiA8kZQ4-iiZIhYoIZREPT5MczCZSyFDo9ortQSiOnAy6hKzBZSjuWRwKGQ66GURx" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img data-original-height="1024" data-original-width="1536" height="266" src="https://blogger.googleusercontent.com/img/a/AVvXsEhOUfILMipiya7Qmme2SBf23wf7-KN04H7hDs9d1QvltKKvt5onKuWtqdCYmp77ycWpFxxPk938VQXgGuc88qGI04Os7Lspa7-8u8ODcm9RwML3kt3sQzcfTGgisflBiA8kZQ4-iiZIhYoIZREPT5MczCZSyFDo9ortQSiOnAy6hKzBZSjuWRwKGQ66GURx=w400-h266" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;تاريخ تطور الذكاء الاصطناعي: رحلة من الخيال العلمي إلى الواقع الرقمي&lt;br /&gt;&lt;br /&gt;&lt;/h2&gt;
&lt;p&gt;يُعد &lt;strong&gt;تاريخ تطور الذكاء الاصطناعي&lt;/strong&gt; أحد أكثر المواضيع إثارة وفضولاً في العصر الحديث، حيث تحولت الأفكار التي كانت تُعتبر يوماً جزءاً من الخيال العلمي إلى تقنيات أساسية تُشكل عالمنا اليوم. يبحث الملايين من المهتمين بالتقنية عن كيفية وصول هذه التكنولوجيا إلى هذا المستوى المتقدم من الذكاء والقدرة على محاكاة التفكير البشري.&lt;/p&gt;
&lt;p&gt;في هذا المقال الشامل، سنأخذك في رحلة عبر الزمن لنستكشف مراحل نمو الذكاء الاصطناعي، وأبرز محطاته التاريخية، وكيف يمكنك البدء في استخدام تقنياته في مشاريعك البرمجية عبر أمثلة عملية بلغة بايثون (Python)، مع تسليط الضوء على أفضل الممارسات والأخطاء الشائعة.&lt;/p&gt;

&lt;h2&gt;البدايات والجذور التاريخية للذكاء الاصطناعي&lt;/h2&gt;
&lt;p&gt;بدأت قصة الذكاء الاصطناعي رسمياً في صيف عام 1956 خلال مؤتمر تاريخي عُقد في جامعة دارتموث الأمريكية. في ذلك المؤتمر، صاغ العالم &lt;em&gt;جون مكارثي&lt;/em&gt; مصطلح "الذكاء الاصطناعي" (Artificial Intelligence) لأول مرة. شملت تلك الفترة الأولى تفاؤلاً كبيراً وقدرة على حل مسائل رياضية بسيطة، لكنها اصطدمت لاحقاً بما يُعرف بـ "شتاء الذكاء الاصطناعي" نتيجة لنقص القدرات الحاسوبية ونقص التمويل.&lt;/p&gt;

&lt;h3&gt;العصر الذهبي للشبكات العصبية وتعلم الانطلاق&lt;/h3&gt;
&lt;p&gt;مع تطور المعالجات وزيادة كميات البيانات المتاحة (Big Data) في أوائل القرن الحادي والعشرين، انتقل الذكاء الاصطناعي من النظريات البحتة إلى التطبيق العملي. وظهرت تقنيات &lt;strong&gt;التعلم الآلي (Machine Learning)&lt;/strong&gt; و&lt;strong&gt;التعلم العميق (Deep Learning)&lt;/strong&gt; التي تحاكي طريقة عمل الخلايا العصبية في الدماغ البشري.&lt;/p&gt;

&lt;h2&gt;خطوات عملية وتطبيق برجعي باستخدام بايثون&lt;/h2&gt;
&lt;p&gt;لنفهم كيف يُطبق الذكاء الاصطناعي برمجياً، سنقوم بإنشاء نموذج بسيط لـ التعلم الآلي باستخدام مكتبة Scikit-Learn الشهيرة لتوقع النتائج بناءً على بيانات سابقة.&lt;/p&gt;
&lt;p&gt;تأكد من تثبيت المكتبة أولاً عبر الأوامر التالية في بيئة عملك:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-bash"&gt;pip install numpy scikit-learn&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;الآن، إليك كود برمجي بلغة بايثون يوضح نموذج تعلم آلي بسيط:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-python"&gt;# استيراد المكتبات اللازمة
import numpy as np
from sklearn.linear_model import LinearRegression

# بيانات تدريبية: ساعات الدراسة مقابل الدرجات المتوقعة
X = np.array([[1], [2], [3], [4], [5]])
y = np.array([35, 50, 65, 80, 95])

# إنشاء نموذج الانحدار الخطي
model = LinearRegression()

# تدريب النموذج على البيانات
model.fit(X, y)

# التنبؤ بدرجة طالب درس لمدة 6 ساعات
hours_studied = np.array([[6]])
predicted_score = model.predict(hours_studied)

print(f"الدرجة المتوقعة لمن درس 6 ساعات هي: {predicted_score[0]:.2f}")&lt;/code&gt;&lt;/pre&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;ملاحظة هامة:&lt;/strong&gt; يعتمد نجاح أي نموذج ذكاء اصطناعي بشكل أساسي على جودة وكمية البيانات التي يتم تدريبه عليها، ولهذا يُقال دائماً: "البيانات هي نفط العصر الحديث".&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;أفضل الممارسات في مشاريع الذكاء الاصطناعي&lt;/h2&gt;
&lt;p&gt;عند بناء أنظمة تعتمد على الذكاء الاصطناعي، يجب اتباع المعايير التالية لضمان الحصول على أفضل نتائج:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;تنظيف البيانات (Data Cleaning):&lt;/strong&gt; تخلص دائماً من القيم المفقودة والشوائب في بياناتك قبل بدء التدريب.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;تقسيم البيانات:&lt;/strong&gt; قسّم بياناتك إلى قسمين: بيانات للتدريب (Training Set) وبيانات للاختبار (Testing Set).&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;تجنب الانحياز (Bias):&lt;/strong&gt; تأكد من أن بيانات التدريب متنوعة وممثلة للواقع لكي لا ينتج نموذج منحاز لفئة معينة.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;التحسين المستمر:&lt;/strong&gt; استمر في تغذية النموذج ببيانات جديدة لكي يتكيف مع التغيرات المستمرة.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;أخطاء شائعة يجب تجنبها&lt;/h2&gt;
&lt;p&gt;يقع الكثير من المطورين المبتدئين في أخطاء فادحة أثناء بناء نماذجهم الأولى، ومن أبرزها:&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;&lt;strong&gt;الإفراط في التعلم (Overfitting):&lt;/strong&gt; عندما يتعفظ النموذج بيانات التدريب بشكل مفرط لدرجة تفشل فيها قدرته على التعامل مع بيانات جديدة.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;الإصابة بالعمى التقني:&lt;/strong&gt; استخدام نماذج معقدة جداً (مثل الشبكات العميقة) لمشكلة بسيطة يمكن حلها بخوارزميات تقليدية سهلة.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;إهمال تقييم النموذج:&lt;/strong&gt; الاعتماد فقط على نسبة الدقة (Accuracy) دون دراسة مصفوفة الارتباك (Confusion Matrix).&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;خلاصة&lt;/h2&gt;
&lt;p&gt;في الختام، يمثل &lt;strong&gt;تاريخ تطور الذكاء الاصطناعي&lt;/strong&gt; ملحمة بشرية من الابتكار المستمر. من أجهزة الحوسبة البدائية وصولاً إلى نماذج اللغة الكبيرة وأنظمة التوليد الذكية اليوم، يستمر هذا المجال في إعادة رسم ملامح المستقبل. إن فهم الجذور التاريخية وتطبيق الممارسات البرمجية السليمة يضعك على الطريق الصحيح لتصبح مطور ذكاء اصطناعي محترف.&lt;/p&gt;

&lt;h2&gt;أسئلة شائعة (FAQ)&lt;/h2&gt;
&lt;h3&gt;متى بدأ تاريخ الذكاء الاصطناعي فعلياً؟&lt;/h3&gt;
&lt;p&gt;بدأ تاريخ الذكاء الاصطناعي كمجال أكاديمي مستقل في عام 1956 خلال مؤتمر دارتموث الذي عُقد في الولايات المتحدة الأمريكية.&lt;/p&gt;

&lt;h3&gt;ما الفرق بين التعلم الآلي والتعلم العميق؟&lt;/h3&gt;
&lt;p&gt;التعلم الآلي هو فرع أوسع من الذكاء الاصطناعي يتطلب تدخلاً بشرياً لتحديد الميزات، بينما التعلم العميق هو فرع متخصص يعتمد على الشبكات العصبية الاصطناعية لاستخراج الميزات تلقائياً من البيانات الضخمة.&lt;/p&gt;

&lt;h3&gt;هل أحتاج إلى خلفية رياضية قوية لتعلم الذكاء الاصطناعي؟&lt;/h3&gt;
&lt;p&gt;نعم، تعتبر الرياضيات (خاصة الجبر الخطي، التفاضل والتكامل، والإحصاء والاحتمالات) أساساً هماً لفهم كيف تعمل الخوارزميات تحت الغطاء، رغم أن لغات البرمجة الحديثة تسهل الكثير من التطبيقات العملية.&lt;/p&gt;&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/a/AVvXsEhOUfILMipiya7Qmme2SBf23wf7-KN04H7hDs9d1QvltKKvt5onKuWtqdCYmp77ycWpFxxPk938VQXgGuc88qGI04Os7Lspa7-8u8ODcm9RwML3kt3sQzcfTGgisflBiA8kZQ4-iiZIhYoIZREPT5MczCZSyFDo9ortQSiOnAy6hKzBZSjuWRwKGQ66GURx=s72-w400-h266-c" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>الفرق بين الذكاء الاصطناعي والتعلم الآلي والتعلم العميق</title><link>http://muteealjabri.blogspot.com/2026/08/blog-post_05.html</link><category>التعلم الآلي</category><category>التعلم العميق</category><category>الذكاء الاصطناعي</category><category>بايثون</category><category>برمجة</category><author>noreply@blogger.com (muteealjabri.blogspot.com)</author><pubDate>Wed, 5 Aug 2026 23:22:41 +0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-5547022875870167028.post-5145239192342616761</guid><description>&lt;style&gt;
.tech-blog-post {
    direction: rtl;
    text-align: justify;
    font-family: 'Outfit', 'Inter', 'Noto Sans Arabic', sans-serif;
    color: #2c3e50;
    line-height: 1.8;
    font-size: 16px;
}
.tech-blog-post h2 {
    color: #1a365d;
    border-bottom: 2px solid #e2e8f0;
    padding-bottom: 8px;
    margin-top: 30px;
    margin-bottom: 15px;
    font-weight: 700;
}
.tech-blog-post h3 {
    color: #2b6cb0;
    margin-top: 25px;
    margin-bottom: 12px;
    font-weight: 600;
}
.tech-blog-post p {
    margin-bottom: 18px;
}
.tech-blog-post ul, .tech-blog-post ol {
    margin-bottom: 18px;
    padding-right: 25px;
}
.tech-blog-post li {
    margin-bottom: 8px;
}
.tech-blog-post blockquote {
    border-right: 4px solid #3182ce;
    background-color: #ebf8ff;
    padding: 12px 20px;
    margin: 20px 0;
    border-radius: 4px;
    color: #2b6cb0;
    font-style: italic;
}
.tech-blog-post pre {
    background-color: #1e1e1e;
    color: #f8f8f2;
    padding: 16px;
    border-radius: 8px;
    overflow-x: auto;
    font-family: 'Consolas', 'Courier New', Courier, monospace;
    font-size: 14px;
    line-height: 1.5;
    margin: 20px 0;
    border: 1px solid #2d3748;
    direction: ltr;
    text-align: left;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
}
.tech-blog-post code {
    font-family: 'Consolas', 'Courier New', Courier, monospace;
    background-color: #edf2f7;
    color: #e53e3e;
    padding: 2px 6px;
    border-radius: 4px;
    font-size: 90%;
    font-weight: 600;
    direction: ltr;
    display: inline-block;
}
.tech-blog-post pre code {
    background-color: transparent;
    color: inherit;
    padding: 0;
    border-radius: 0;
    font-size: inherit;
    font-weight: normal;
    display: block;
}
&lt;/style&gt;&lt;div class="tech-blog-post"&gt;&lt;h2&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEij0f5glfy4yOZ3MHwvGfRTyHpjSpkJT18-ClD6LMcSrwYMzY6WcN7MWlP6x7DGSe9PK2q_WPIr7k-z4VZQqTSOZHYO6NCJEaHr_TH7Dlw6QUF7qOSgDu-9ezpvTf2QcaQQUbdLLftmojHCO3MPJ010mOf6fNVTKIbsIGOBlfD5PMSIMD2wkqhHUl7Rs9iN" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="" data-original-height="1024" data-original-width="1536" height="267" src="https://blogger.googleusercontent.com/img/a/AVvXsEij0f5glfy4yOZ3MHwvGfRTyHpjSpkJT18-ClD6LMcSrwYMzY6WcN7MWlP6x7DGSe9PK2q_WPIr7k-z4VZQqTSOZHYO6NCJEaHr_TH7Dlw6QUF7qOSgDu-9ezpvTf2QcaQQUbdLLftmojHCO3MPJ010mOf6fNVTKIbsIGOBlfD5PMSIMD2wkqhHUl7Rs9iN" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;الفرق بين الذكاء الاصطناعي والتعلم الآلي والتعلم العميق: الدليل الشامل للمبرمجين&lt;br /&gt;&lt;br /&gt;&lt;/h2&gt;
&lt;p&gt;في عصر التكنولوجيا الحديثة، أصبحت مصطلحات مثل &lt;strong&gt;الذكاء الاصطناعي (AI)&lt;/strong&gt;، &lt;strong&gt;التعلم الآلي (Machine Learning)&lt;/strong&gt;، و&lt;strong&gt;التعلم العميق (Deep Learning)&lt;/strong&gt; تتصدر العناوين الإخبارية والنقاشات التقنية. لكن هل تساءلت يوماً عن &lt;em&gt;الفرق الحقيقي&lt;/em&gt; بين هذه المفهومات؟ وهل هي مترادفة أم أن لكل منها معنى وتطبيقات مختلفة؟ إذا كنت مطوراً أو مهتماً بدخول عالم البيانات والذكاء الاصطناعي، فإن فهم هذه التسلسلات الهرمية يعد خطوتك الأولى نحو بناء أنظمة ذكية ناجحة.&lt;/p&gt;

&lt;h2&gt;المفهوم الأساسي والعلاقة التداخلية&lt;/h2&gt;
&lt;p&gt;لكي نتخيل العلاقة بين هذه التقنيات الثلاث، من الأفضل أن ننظر إليها على شكل &lt;em&gt;دمى روسية متداخلة&lt;/em&gt; (Matryoshka dolls). &lt;strong&gt;الذكاء الاصطناعي&lt;/strong&gt; هو المظلة الأكبر والأشمل، وتحته يقع &lt;strong&gt;التعلم الآلي&lt;/strong&gt; كفرع متخصص، وبدوره يضم &lt;strong&gt;التعلم العميق&lt;/strong&gt; كتقنية متقدمة جداً داخله.&lt;/p&gt;

&lt;h3&gt;1. الذكاء الاصطناعي (Artificial Intelligence - AI)&lt;/h3&gt;
&lt;p&gt;الذكاء الاصطناعي هو المجال الأوسع الذي يهدف إلى محاكاة الذكاء البشري في الآلات. يبدأ هذا المجال من القواعد البسيطة المبرمجة يدوياً (If-Else statements) وصولاً إلى الأنظمة المعقدة التي تتخذ قرارات مستقلة. الهدف الأساسي للذكاء الاصطناعي هو جعل الأجهزة قادرة على أداء المهام التي تتطلب عادةً ذكاءً بشرياً، مثل فهم اللغة، التعرف على الصور، وحل المشكلات.&lt;/p&gt;

&lt;h3&gt;2. التعلم الآلي (Machine Learning - ML)&lt;/h3&gt;
&lt;p&gt;التعلم الآلي هو مجموعة فرعية من الذكاء الاصطناعي. بدلاً من برمجة الآلة بكل قاعدة بشكل يدوي، يتيح التعلم الآلي للأنظمة &lt;strong&gt;التعلم من البيانات&lt;/strong&gt; تلقائياً وتحسين أائها بمرور الوقت دون تدخل بشري مباشر. يعتمد على خوارزميات رياضية وإحصائية لتحليل البيانات واستخراج الأنماط.&lt;/p&gt;

&lt;h3&gt;3. التعلم العميق (Deep Learning - DL)&lt;/h3&gt;
&lt;p&gt;التعلم العميق هو فرع دقيق ومتقدم من التعلم الآلي، يستلهم طريقه من بنية وطريقة عمل الدماغ البشري عبر ما يُعرف بـ &lt;strong&gt;الشبكات العصبية الاصطناعية (Artificial Neural Networks)&lt;/strong&gt;. كلمة "عميق" تشير إلى عدد الطبقات الكبيرة (Layers) التي تمر عبرها البيانات لمعالجة المهام المعقدة جداً مثل القيادة الذاتية والترجمة الفورية المتقدمة.&lt;/p&gt;

&lt;h2&gt;خطوات عملية وأمثلة برمجية باستخدام بايثون&lt;/h2&gt;
&lt;p&gt;لتوضيح كيف يختلف التطبيق العملي، سنستعرض مثالاً بسيطاً باستخدام لغة بايثون يوضح مفهوم التعلم الآلي والتعلم العميق باستخدام مكتبات شهيرة مثل &lt;code&gt;scikit-learn&lt;/code&gt; و &lt;code&gt;TensorFlow&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;مثال على التعلم الآلي (توقع الأسعار باستخدام Linear Regression)&lt;/h3&gt;
&lt;p&gt;في هذا المثال، سنقوم بتدريب نموذج بسيط للتنبؤ بقيم بناءً على بيانات سابقة:&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-python"&gt;from sklearn.linear_model import LinearRegression
import numpy as np

# البيانات التدريبية (المدخلات والمخرجات)
X = np.array([[1], [2], [3], [4], [5]])
y = np.array([2, 4, 6, 8, 10])

# إنشاء النموذج
model = LinearRegression()

# تدريب النموذج
model.fit(X, y)

# التنبؤ بقيمة جديدة
prediction = model.predict([[6]])
print(f"التنبؤ للقيمة 6 هو: {prediction[0]}")&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;مثال على التعلم العميق (شبكة عصبية بسيطة باستخدام TensorFlow)&lt;/h3&gt;
&lt;p&gt;هنا نستخدم طبقات عصبية متعددة لمعالجة بيانات أكثر تعقيداً:&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-python"&gt;import tensorflow as tf
from tensorflow.keras import Sequential
from tensorflow.keras.layers import Dense

# بناء نموذج شبكة عصبية عميقة (Deep Learning Model)
model = Sequential([
    Dense(units=16, activation='relu', input_shape=(1,)),
    Dense(units=8, activation='relu'),
    Dense(units=1)
])

# تجميع النموذج
model.compile(optimizer='sgd', loss='mean_squared_error')

# تدريب النموذج على البيانات
X_train = np.array([1.0, 2.0, 3.0, 4.0, 5.0], dtype=float)
y_train = np.array([2.0, 4.0, 6.0, 8.0, 10.0], dtype=float)

model.fit(X_train, y_train, epochs=500, verbose=0)

# التنبؤ
print(model.predict(np.array([6.0])))&lt;/code&gt;&lt;/pre&gt;

&lt;blockquote&gt;ملاحظة للمطورين: يتطلب التعلم العميق عادةً أجهزة قوية تحتوي على وحدات معالجة رسومية (GPUs) نظراً لكمية العمليات الحسابية الضخمة مقارنة بالتعلم الآلي التقليدي.&lt;/blockquote&gt;

&lt;h2&gt;أفضل الممارسات والنصائح عند بناء النماذج&lt;/h2&gt;
&lt;p&gt;سواء كنت تعمل على مشروع ذكاء اصطناعي بسيط أو شبكة عصبية عميقة، هناك قواعد ذهبية يجب اتباعها لضمان النجاح:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;strong&gt;جودة البيانات أولاً:&lt;/strong&gt; "بيانات سيئة تعني نتائج سيئة" (Garbage in, garbage out). استثمر وقتاً طويلاً في تنظيف وتجهيز البيانات (Data Preprocessing).&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;ابدأ بالأبسط دائماً:&lt;/strong&gt; لا تلجأ للتعلم العميق المعقد إذا كان نموذج تعلم آلي بسيط أو حتى قواعد برمجية عادية تؤدي الغرض بكفاءة أعلى وسرعة أكبر.&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;تقسيم البيانات:&lt;/strong&gt; احرص دائمًا على تقسيم بياناتك إلى مجموعات للتدريب (Training)، والتحقق (Validation), والاختبار (Test) لتجنب مشكلة فرط التخصيص (Overfitting).&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;مراقبة الأداء:&lt;/strong&gt; استخدم مقاييس دقيقة لتقييم النموذج مثل الدقة (Accuracy)، والخطأ التربيعي المتوسط (MSE)، مصفوفة الارتباك (Confusion Matrix).&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;أخطاء شائعة يجب تجنبها&lt;/h2&gt;
&lt;p&gt;الكثير من المبتدئين في مجال علوم البيانات والذكاء الاصطناعي يقعون في فخاخ متكررة، أبرزها:&lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt;&lt;strong&gt;الاعتقاد بأن التعلم العميق هو الحل السحر لكل المشاكل:&lt;/strong&gt; أحياناً يكون استخدام خوارزمية Random Forest أبسط وأسرع وأكثر دقة من بناء شبكة عصبية معقدة.&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;تجاهل مرحلة تنظيف البيانات:&lt;/strong&gt; الاعتماد على البيانات الخام بدون إزالة القيم الشاذة (Outliers) أو معالجة القيم المفقودة يدمر أداء أي نموذج.&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;عدم فهم الأساس الرياضي:&lt;/strong&gt; الاكتفاء بنسخ ولصق الأكواد دون فهم كيف تعمل الخوارزميات خلف الكواليس يمنعك من إصلاح الأخطاء (Debugging) بkفاءة.&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;الوقوع في فخ Overfitting:&lt;/strong&gt; تدريب النموذج بشكل مفرط على بيانات التدريب لدرجة تجعله يفشل تماماً مع البيانات الجديدة والخارجية.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;خلاصة&lt;/h2&gt;
&lt;p&gt;في الختام، يمكننا القول إن &lt;strong&gt;الذكاء الاصطناعي&lt;/strong&gt; هو الهدف الأسمى، و&lt;strong&gt;التعلم الآلي&lt;/strong&gt; هو الوسيلة العملية للوصول إليه عبر البيانات، بينما &lt;strong&gt;التعلم العميق&lt;/strong&gt; هو السلاح الفتاك للمشكلات الضخمة والمعقدة للغاية التي تستعصي على الطرق التقليدية. اختيار التقنية المناسبة يعتمد كلياً على طبيعة مشكلتك، حجم بياناتك، والموارد المتاحة لديك.&lt;/p&gt;

&lt;h2&gt;الأسئلة الشائعة (FAQ)&lt;/h2&gt;
&lt;h3&gt;1. هل أحتاج إلى معرفة عميقة بالرياضيات لدراسة التعلم الآلي؟&lt;/h3&gt;
&lt;p&gt;نعم، فهم أساسيات الجبر الخطوي (Linear Algebra)، حساب التفاضل والتكامل (Calculus)، والاحتمالات والإحصاء (Probability &amp;amp; Statistics) يعتبر أمراً ضرورياً لفهم كيف تعمل الخوارزميات وكيفية تحسينها.&lt;/p&gt;

&lt;h3&gt;2. متى يجب أن أستخدم التعلم العميق بدلاً من التعلم الآلي التقليدي؟&lt;/h3&gt;
&lt;p&gt;يُستخدم التعلم العميق عندما تكون حجم البيانات ضخماً للغاية (Big Data)، وتكون المشكلة متعلقة بمعالجة الصور، الصوت، أو النصوص المعقدة (NLP)، حيث تفشل خوارزميات التعلم الآلي التقليدية في استخراج الميزات تلقائياً.&lt;/p&gt;

&lt;h3&gt;3. هل لغة بايثون هي الخيار الوحيد للتعلم الآلي؟&lt;/h3&gt;
&lt;p&gt;ليست الوحيدة، ولكنها الأكثر شهرة وهي المعيار الصناعي بفضل مكتباتها القوية مثل Scikit-learn, TensorFlow, وPyTorch. توجد لغات أخرى مثل R وC++ وJulia ولكن بايثون تتصدر بفارق كبير.&lt;/p&gt;

&lt;h3&gt;4. ما هو الفرق بين Overfitting و Underfitting؟&lt;/h3&gt;
&lt;p&gt;الـ Overfitting يحدث عندما يحفظ النموذج بيانات التدريب ولا يتعلم الأنماط العامة فيفشل مع البيانات الجديدة. أما الـ Underfitting فيحدث عندما يكون النموذج بسيطاً لدرجة لا تمكنه من فهم بيانات التدريب أو الاختبار من الأساس.&lt;/p&gt;&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/a/AVvXsEij0f5glfy4yOZ3MHwvGfRTyHpjSpkJT18-ClD6LMcSrwYMzY6WcN7MWlP6x7DGSe9PK2q_WPIr7k-z4VZQqTSOZHYO6NCJEaHr_TH7Dlw6QUF7qOSgDu-9ezpvTf2QcaQQUbdLLftmojHCO3MPJ010mOf6fNVTKIbsIGOBlfD5PMSIMD2wkqhHUl7Rs9iN=s72-c" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>ما هو الذكاء الاصطناعي وأنواعه</title><link>http://muteealjabri.blogspot.com/2026/08/blog-post.html</link><category>أنواع الذكاء الاصطناعي</category><category>التعلم الآلي</category><category>الذكاء الاصطناعي</category><category>برمجة بايثون</category><category>تعلم البرمجة</category><author>noreply@blogger.com (muteealjabri.blogspot.com)</author><pubDate>Mon, 3 Aug 2026 14:20:36 +0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-5547022875870167028.post-8549876993028893554</guid><description>&lt;style&gt;
.tech-blog-post {
    direction: rtl;
    text-align: justify;
    font-family: 'Outfit', 'Inter', 'Noto Sans Arabic', sans-serif;
    color: #2c3e50;
    line-height: 1.8;
    font-size: 16px;
}
.tech-blog-post h2 {
    color: #1a365d;
    border-bottom: 2px solid #e2e8f0;
    padding-bottom: 8px;
    margin-top: 30px;
    margin-bottom: 15px;
    font-weight: 700;
}
.tech-blog-post h3 {
    color: #2b6cb0;
    margin-top: 25px;
    margin-bottom: 12px;
    font-weight: 600;
}
.tech-blog-post p {
    margin-bottom: 18px;
}
.tech-blog-post ul, .tech-blog-post ol {
    margin-bottom: 18px;
    padding-right: 25px;
}
.tech-blog-post li {
    margin-bottom: 8px;
}
.tech-blog-post blockquote {
    border-right: 4px solid #3182ce;
    background-color: #ebf8ff;
    padding: 12px 20px;
    margin: 20px 0;
    border-radius: 4px;
    color: #2b6cb0;
    font-style: italic;
}
.tech-blog-post pre {
    background-color: #1e1e1e;
    color: #f8f8f2;
    padding: 16px;
    border-radius: 8px;
    overflow-x: auto;
    font-family: 'Consolas', 'Courier New', Courier, monospace;
    font-size: 14px;
    line-height: 1.5;
    margin: 20px 0;
    border: 1px solid #2d3748;
    direction: ltr;
    text-align: left;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
}
.tech-blog-post code {
    font-family: 'Consolas', 'Courier New', Courier, monospace;
    background-color: #edf2f7;
    color: #e53e3e;
    padding: 2px 6px;
    border-radius: 4px;
    font-size: 90%;
    font-weight: 600;
    direction: ltr;
    display: inline-block;
}
.tech-blog-post pre code {
    background-color: transparent;
    color: inherit;
    padding: 0;
    border-radius: 0;
    font-size: inherit;
    font-weight: normal;
    display: block;
}
&lt;/style&gt;&lt;div class="tech-blog-post"&gt;&lt;h2&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEjyNDYpTypcitereZeLVRFei0MUdCPdwtb8VALwSce0jYhaCe-_GQqNuyuOK83Wr5i8SGXrvOIMf5HrRU0hrjFR6U_x6chVQ4hLbWgxm-LOiVOpZ23lw4YaF-uXtPwH4JeG1XJJvssn0RhmmUvAQ_pPrCeJ9Q88cfcehDSEfocTBhSHBxB7Bb_w626PihoT" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img data-original-height="1024" data-original-width="1536" height="427" src="https://blogger.googleusercontent.com/img/a/AVvXsEjyNDYpTypcitereZeLVRFei0MUdCPdwtb8VALwSce0jYhaCe-_GQqNuyuOK83Wr5i8SGXrvOIMf5HrRU0hrjFR6U_x6chVQ4hLbWgxm-LOiVOpZ23lw4YaF-uXtPwH4JeG1XJJvssn0RhmmUvAQ_pPrCeJ9Q88cfcehDSEfocTBhSHBxB7Bb_w626PihoT=w640-h427" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;ما هو الذكاء الاصطناعي وأنواعه: الدليل الشامل للمبتدئين&lt;br /&gt;&lt;/h2&gt;
&lt;p&gt;في عصرنا الرقمي الحالي، أصبح مصطلح &lt;strong&gt;الذكاء الاصطناعي وأنواعه&lt;/strong&gt; يتردد في كل مكان، بدءاً من الهواتف الذكية وحتى الأنظمة الطبية المعقدة. إذا كنت مهتماً بمجال البرمجة والتكنولوجيا وترغب في فهم كيف تتحول آلات الكمبيوتر إلى كيانات قادرة على التفكير والتعلم، فإن هذا المقال صُمم خصيصاً ليأخذك في رحلة تدريجية من الصفر وحتى الاحتراف.&lt;/p&gt;

&lt;h2&gt;شرح المفهوم الأساسي للذكاء الاصطناعي&lt;/h2&gt;
&lt;p&gt;الذكاء الاصطناعي (Artificial Intelligence - AI) هو فرع من علم الحاسوب يهدف إلى إنشاء أنظمة قادرة على محاكاة الذكاء البشري لتنفيذ مهام معينة، والقدرة على التعلم من البيانات المتاحة لتتحسن بمرور الوقت دون تدخل بشري مباشر. لا يقتصر الأمر على الروبوتات فحسب، بل يشمل الخوارزميات التي تتخذ القرارات، وتفهم اللغات الطبيعية، وتحلل الصور.&lt;/p&gt;

&lt;h3&gt;التصنيفات الرئيسية وأنواع الذكاء الاصطناعي&lt;/h3&gt;
&lt;p&gt;يمكن تقسيم &lt;strong&gt;الذكاء الاصطناعي وأنواعه&lt;/strong&gt; بناءً على قدراته ووظائفه إلى تصنيفين رئيسيين:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;بناءً على القدرات (Capabilities):&lt;/strong&gt;
    &lt;ul&gt;
      &lt;li&gt;&lt;em&gt;الذكاء الاصطناعي الضيق (Narrow AI):&lt;/em&gt; مخصص لمهمة واحدة محددة مثل المساعد الصوتي Siri أو خوارزميات التوصيات في نتفليكس.&lt;/li&gt;
      &lt;li&gt;&lt;em&gt;الذكاء الاصطناعي العام (AGI):&lt;/em&gt; نظام يمتلك ذكاءً مكافئاً للبشري في جميع المجالات (لا يزال نظرياً ولم يتحقق بعد).&lt;/li&gt;
      &lt;li&gt;&lt;em&gt;الذكاء الاصطناعي الفائق (Superintelligence):&lt;/em&gt; مرحلة تفوق فيها الآلات أ الذكاء البشري ككل (مفهوم علمي مستقبلية).&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;بناءً على الوظائف (Functionality):&lt;/strong&gt;
    &lt;ul&gt;
      &lt;li&gt;الآلات التفاعلية (Reactive Machines).&lt;/li&gt;
      &lt;li&gt;الذاكرة المحدودة (Limited Memory) - وهو النوع الأكثر انتشاراً اليوم.&lt;/li&gt;
      &lt;li&gt;نظرية العقل (Theory of Mind).&lt;/li&gt;
      &lt;li&gt;الوعي الذاتي (Self-Awareness).&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;خطوات عملية لتطبيق الذكاء الاصطناعي باستخدام بايثون&lt;/h2&gt;
&lt;p&gt;لبدء رحلتك العملية في عالم &lt;strong&gt;الذكاء الاصطناعي وأنواعه&lt;/strong&gt;، تُعد لغة بايثون (Python) الخيار الأفضل والأكثر شيوعاً نظراً لسهولتها ووفرة مكتباتها القوية مثل Scikit-Learn و TensorFlow.&lt;/p&gt;

&lt;p&gt;إليك مثال عملي وبسيط لبناء نموذج تعلم ماشية (Machine Learning) يقوم بالتنبؤ بناءً على بيانات سابقة باستخدام مكتبة Scikit-Learn:&lt;/p&gt;

&lt;pre&gt;&lt;code class="language-python"&gt;# استيراد المكتبات اللازمة
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score
import numpy as np

# تجهيز بيانات وهمية (الميزات والنتائج)
# X تمثل المدخلات (مثال: عدد ساعات الدراسة، الحضور)
X = np.array([[1, 2], [2, 3], [3, 1], [4, 3], [5, 5], [6, 4]])
# y تمثل النتائج (0 تعني راسب، 1 تعني ناجح)
y = np.array([0, 0, 0, 1, 1, 1])

# تقسيم البيانات إلى بيانات تدريب وبيانات اختبار
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33, random_state=42)

# إنشاء نموذج الانحدار اللوجستي
model = LogisticRegression()

# تدريب النموذج باستخدام بيانات التدريب
model.fit(X_train, y_train)

# التنبؤ باستخدام بيانات الاختبار
y_pred = model.predict(X_test)

# قياس دقة النموذج
accuracy = accuracy_score(y_test, y_pred)
print(f"دقة النموذج: {accuracy * 100}%")&lt;/code&gt;&lt;/pre&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;ملاحظة هامة:&lt;/strong&gt; التعلم الآلي (Machine Learning) هو فرع أساسي من الذكاء الاصطناعي يعتمد كلياً على جودة وكمية البيانات المدخلة؛ فكلما كانت البيانات نظيفة ودقيقة، كلما كانت نتائج النموذج أفضل.&lt;/p&gt;

&lt;/blockquote&gt;

&lt;h2&gt;أفضل الممارسات والنصائح في تطوير مشاريع الذكاء الاصطناعي&lt;/h2&gt;
&lt;p&gt;حين تبدأ بتطوير مشاريع تعتمد على &lt;strong&gt;الذكاء الاصطناعي وأنواعه&lt;/strong&gt;، يجب عليك اتباع أفضل الممارسات البرمجية والتقنية التالية:&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;&lt;strong&gt;تنظيف البيانات بعناية:&lt;/strong&gt; Garbage in, Garbage out. البيانات السيئة ستعطيك حتماً نتائج كارثية.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;البدء بنماذج بسيطة:&lt;/strong&gt; لا تقفز مباشرة إلى الشبكات العصبية العميقة؛ ابدأ بنماذج بسيطة وقارن الأداء.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;التحقق المتقاطع (Cross-Validation):&lt;/strong&gt; استخدم تقسيمات متعددة للبيانات لضمان عدم حدوث ظاهرة فرط التخصيص (Overfitting).&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;توثيق الكود:&lt;/strong&gt; حافظ على كتابة تعليقات واضحة داخل الكود لسهولة صيانته وتطويره مستقبلاً.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;أخطاء شائعة يجب تجنبها&lt;/h2&gt;
&lt;p&gt;يقع الكثير من المبرمجين المبتدئين في أخطاء شائعة عند التعامل مع تطبيقات الذكاء الاصطناعي، ومن أبرزها:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;تجاهل مرحلة تحليل البيانات المسبقة (EDA):&lt;/strong&gt; القفز مباشرة للنمذجة بدون فهم طبيعة البيانات.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;الاعتماد على كمية بيانات ضخمة دون حاجة:&lt;/strong&gt; أحياناً نموذج بسيط ببيانات دقيقة يعطي نتائج أفضل من نموذج معقد ببيانات عشوائية.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;إهمال تقييم النموذج بشكل صحيح:&lt;/strong&gt; الاعتماد فقط على نسبة الدقة (Accuracy) وتجاهل مقاييس أخرى مثل Precision و Recall.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;خلاصة&lt;/h2&gt;
&lt;p&gt;إن فهم &lt;strong&gt;الذكاء الاصطناعي وأنواعه&lt;/strong&gt; لم يعد رفاهية تقنية، بل أصبح مهارة أساسية لكل مطور برمجيات ومبرمج طموح. من خلال الأدوات الحديثة ولغة بايثون، أصبح بإمكانك بناء نماذج ذكية بسهولة. تذكر دائماً أن السر يكمن في الممارسة المستمرة والتعلم التدريجي.&lt;/p&gt;

&lt;h2&gt;الأسئلة الشائعة (FAQ)&lt;/h2&gt;
&lt;h3&gt;1. ما هو الفرق بين الذكاء الاصطناعي والتعلم الآلي؟&lt;/h3&gt;
&lt;p&gt;الذكاء الاصطناعي هو المجال الأوسع الذي يهدف لجعل الآلات ذكية، بينما التعلم الآلي هو فرع محدد داخل الذكاء الاصطناعي يعلم الآلات كيفية التعلم من البيانات تلقائياً.&lt;/p&gt;

&lt;h3&gt;2. هل يجب أن أكون بارعاً في الرياضيات لتعلم الذكاء الاصطناعي؟&lt;/h3&gt;
&lt;p&gt;الرياضيات (مثل الجبر الخطي والاحتمالات) مهمة جداً لفهم كيف تعمل الخوارزميات بعمق، ولكن يمكنك البدء في برمجة التطبيقات باستخدام المكتبات الجاهزة وتطوير مهاراتك الرياضية تدريجياً.&lt;/p&gt;

&lt;h3&gt;3. ما هي أفضل لغة برمجة للذكاء الاصطناعي حالياً؟&lt;/h3&gt;
&lt;p&gt;تُعد لغة &lt;strong&gt;Python&lt;/strong&gt; بلا منازع هي اللغة الأولى والأكثر استخداماً في مجال الذكاء الاصطناعي وتعلم الآلة نظراً لسهولتها وقوة مكتباتها.&lt;/p&gt;&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/a/AVvXsEjyNDYpTypcitereZeLVRFei0MUdCPdwtb8VALwSce0jYhaCe-_GQqNuyuOK83Wr5i8SGXrvOIMf5HrRU0hrjFR6U_x6chVQ4hLbWgxm-LOiVOpZ23lw4YaF-uXtPwH4JeG1XJJvssn0RhmmUvAQ_pPrCeJ9Q88cfcehDSEfocTBhSHBxB7Bb_w626PihoT=s72-w640-h427-c" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>10- ماهي Spring boot Actuator?</title><link>http://muteealjabri.blogspot.com/2025/09/10-spring-boot-actuator.html</link><category>spring-boot</category><author>noreply@blogger.com (muteealjabri.blogspot.com)</author><pubDate>Fri, 5 Sep 2025 22:37:00 +0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-5547022875870167028.post-4122557139625755624</guid><description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEg78CYrlw0wWdM6tJiK0h9e0MIEOZnB-Y1BDHOXLTJypbo7FglRA0_U-2Wf9voFFFXdMlgKwk9hCzda--TB2V0EvTBaWB3JmMz6emhdpwmAQEvTauj8WM2w3LU_zsYkmhM9RqGRhaFsNQcPh_ZGeB1IhycLe3z3oFQ62jeNPsRZyRFXhA3yqdPk4AMzfP19" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img data-original-height="1536" data-original-width="1024" height="400" src="https://blogger.googleusercontent.com/img/a/AVvXsEg78CYrlw0wWdM6tJiK0h9e0MIEOZnB-Y1BDHOXLTJypbo7FglRA0_U-2Wf9voFFFXdMlgKwk9hCzda--TB2V0EvTBaWB3JmMz6emhdpwmAQEvTauj8WM2w3LU_zsYkmhM9RqGRhaFsNQcPh_ZGeB1IhycLe3z3oFQ62jeNPsRZyRFXhA3yqdPk4AMzfP19=w267-h400" width="267" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;h2 data-end="94" data-start="64"&gt;ما هو Spring Boot Actuator؟&lt;/h2&gt;
&lt;p data-end="395" data-start="95"&gt;هو &lt;strong data-end="115" data-start="98"&gt;مكون (module)&lt;/strong&gt; من Spring Boot يوفر مجموعة من الأدوات الجاهزة لمراقبة (Monitoring) وإدارة (Management) تطبيقات Spring Boot أثناء عملها في بيئة الإنتاج أو التطوير.&lt;br data-end="265" data-start="262" /&gt;
يضيف نقاط نهاية (Endpoints) تعرض معلومات مفصلة عن حالة التطبيق، مثل الصحة (Health)، المقاييس (Metrics)، سجلات الأحداث (Logs)، إلخ.&lt;/p&gt;&lt;h2 data-end="421" data-start="402" style="text-align: right;"&gt;المزايا الأساسية&lt;/h2&gt;&lt;div&gt;&lt;b&gt;1.متابعة الحالة (Health Checks)&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;ul style="text-align: right;"&gt;&lt;li&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&lt;/b&gt;يظهر ما إذا كان التطبيق يعمل بشكل سليم.&lt;/li&gt;&lt;li&gt;يمكن دمجه مع أنظمة مثل Kubernetes, Docker, أو أدوات المراقبة مثل Prometheus.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;b&gt;2.المقاييس (Metrics)&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;ul style="text-align: right;"&gt;&lt;li&gt;يوفر إحصائيات عن استخدام الذاكرة، عدد الطلبات HTTP، زمن الاستجابة، حجم الـ threads… إلخ.&lt;/li&gt;&lt;li&gt;يمكن تصديرها إلى أدوات مراقبة مثل &lt;strong data-end="770" data-start="756"&gt;Micrometer&lt;/strong&gt; و &lt;strong data-end="795" data-start="773"&gt;Prometheus/Grafana&lt;/strong&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;3.&lt;strong data-end="834" data-start="803"&gt;التتبع (Tracing &amp;amp; Auditing)&lt;/strong&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;ul style="text-align: right;"&gt;&lt;li&gt;يدعم تتبع الطلبات (request traces).&lt;/li&gt;&lt;li&gt;إمكانية تتبع الأخطاء والأحداث المهمة.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;b&gt;4.إدارة الإعدادات (Configuration)&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;ul style="text-align: right;"&gt;&lt;li&gt;عرض الـ properties المستخدمة في التطبيق.&lt;/li&gt;&lt;li&gt;التحكم في مستوى الـ logging أثناء التشغيل.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;b&gt;5.تكامل سهل مع أدوات المراقبة&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;ul style="text-align: right;"&gt;&lt;li&gt;مثل: Prometheus, Grafana, New Relic, ELK Stack.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;h2 data-end="1182" data-start="1164"&gt;كيفية الاستخدام&lt;/h2&gt;
&lt;ol data-end="2086" data-start="1183"&gt;
&lt;li data-end="1391" data-start="1183"&gt;&lt;b&gt;إضافة التابع (Dependency) في &lt;code data-end="1226" data-start="1217"&gt;pom.xml&lt;/code&gt;:&lt;/b&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;&lt;div style="background-color: #1e1f22; color: #bcbec4;"&gt;&lt;pre style="font-family: Dubai; font-size: 13.5pt;"&gt;&lt;span style="color: #d5b778;"&gt;&amp;lt;dependency&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #d5b778;"&gt;    &amp;lt;groupId&amp;gt;&lt;/span&gt;org.springframework.boot&lt;span style="color: #d5b778;"&gt;&amp;lt;/groupId&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #d5b778;"&gt;    &amp;lt;artifactId&amp;gt;&lt;/span&gt;spring-boot-starter-actuator&lt;span style="color: #d5b778;"&gt;&amp;lt;/artifactId&amp;gt;&lt;br /&gt;&lt;/span&gt;&amp;lt;/dependency&amp;gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;b&gt;
2.تشغيل التطبيق:&lt;/b&gt;&lt;div&gt;بعد إضافة الاعتماد، يتم تفعيل بعض نقاط النهاية بشكل افتراضي مثل:&lt;/div&gt;&lt;div&gt;&lt;ul style="text-align: right;"&gt;&lt;li&gt;/actuator/health → لمعرفة صحة التطبيق.&lt;/li&gt;&lt;li&gt;&lt;code data-end="1553" data-start="1537"&gt;/actuator/info&lt;/code&gt; → لعرض معلومات عامة (يمكن تخصيصها).&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;b&gt;3.تخصيص الإعدادات في &lt;code data-end="1641" data-start="1617"&gt;application.properties&lt;/code&gt; أو &lt;code data-end="1662" data-start="1645"&gt;application.yml&lt;/code&gt;:&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="background-color: #1e1f22; color: #bcbec4;"&gt;&lt;pre style="font-family: Dubai; font-size: 13.5pt;"&gt;&lt;span style="color: #cf8e6d;"&gt;management.endpoints.web.exposure.include&lt;/span&gt;&lt;span style="color: grey;"&gt;=&lt;/span&gt;&lt;span style="color: #6aab73;"&gt;health,info&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #cf8e6d;"&gt;management.info.env.enabled&lt;/span&gt;&lt;span style="color: grey;"&gt;=&lt;/span&gt;&lt;span style="color: #6aab73;"&gt;true&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #6aab73;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #cf8e6d;"&gt;info.app.name&lt;/span&gt;&lt;span style="color: grey;"&gt;=&lt;/span&gt;&lt;span style="color: #6aab73;"&gt;My Spring project&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #cf8e6d;"&gt;info.app.description&lt;/span&gt;&lt;span style="color: grey;"&gt;= &lt;/span&gt;&lt;span style="color: #6aab73;"&gt;Description for spring project&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #cf8e6d;"&gt;info.app.version&lt;/span&gt;&lt;span style="color: grey;"&gt;=&lt;/span&gt;&lt;span style="color: #6aab73;"&gt;1.0.0&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
3.&lt;strong data-end="1845" data-start="1817"&gt;أمثلة على Endpoints مهمة&lt;/strong&gt;:&lt;div&gt;&lt;ul style="text-align: right;"&gt;&lt;li&gt;/actuator/health → صحة التطبيق.&lt;/li&gt;&lt;li&gt;&lt;code data-end="1912" data-start="1893"&gt;/actuator/metrics&lt;/code&gt; → المقاييس المختلفة.&lt;/li&gt;&lt;li&gt;&lt;code data-end="1960" data-start="1941"&gt;/actuator/loggers&lt;/code&gt; → إدارة مستوى الـ Logging.&lt;/li&gt;&lt;li&gt;&lt;code data-end="2010" data-start="1995"&gt;/actuator/env&lt;/code&gt; → خصائص البيئة.&lt;/li&gt;&lt;li&gt;&lt;code data-end="2051" data-start="2034"&gt;/actuator/beans&lt;/code&gt; → جميع الـ Beans في الـ Context.&lt;/li&gt;&lt;/ul&gt;&lt;h2 style="text-align: right;"&gt;الاستخدام في بيئة الإنتاج&lt;/h2&gt;&lt;/div&gt;&lt;div&gt;&lt;ul style="text-align: right;"&gt;&lt;li&gt;الأمان: يجب حجب بعض الـ endpoints أو حمايتها بـ Spring Security.&lt;/li&gt;&lt;li&gt;&lt;strong data-end="2213" data-start="2201"&gt;التكامل:&lt;/strong&gt; يتم عادةً دمجها مع أدوات مراقبة مركزية.&lt;/li&gt;&lt;li data-end="2341" data-start="2256"&gt;&lt;p data-end="2341" data-start="2258"&gt;&lt;strong data-end="2270" data-start="2258"&gt;التخصيص:&lt;/strong&gt; يمكن كتابة HealthIndicator مخصص لمراقبة قاعدة بيانات أو خدمة خارجية.&lt;/p&gt;
&lt;/li&gt;&lt;/ul&gt;&lt;h2 style="text-align: right;"&gt;الخلاصة&lt;/h2&gt;&lt;div&gt;&lt;p data-end="2898" data-start="2872"&gt;Spring Boot Actuator يوفر:&lt;/p&gt;
&lt;ul data-end="3030" data-start="2899"&gt;
&lt;li data-end="2924" data-start="2899"&gt;مراقبة شاملة للتطبيق.
&lt;p data-end="2924" data-start="2901"&gt;&lt;/p&gt;&lt;/li&gt;&lt;li data-end="2924" data-start="2899"&gt;إدارة سهلة عبر الـ endpoints.&lt;/li&gt;&lt;li data-end="2924" data-start="2899"&gt;تكامل مع أدوات DevOps وMonitoring.&lt;/li&gt;&lt;li data-end="2924" data-start="2899"&gt;مرونة للتخصيص حسب احتياجاتك.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;ul style="text-align: right;"&gt;

&lt;p data-end="2373" data-start="2343"&gt;&lt;/p&gt;&lt;/ul&gt;&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/a/AVvXsEg78CYrlw0wWdM6tJiK0h9e0MIEOZnB-Y1BDHOXLTJypbo7FglRA0_U-2Wf9voFFFXdMlgKwk9hCzda--TB2V0EvTBaWB3JmMz6emhdpwmAQEvTauj8WM2w3LU_zsYkmhM9RqGRhaFsNQcPh_ZGeB1IhycLe3z3oFQ62jeNPsRZyRFXhA3yqdPk4AMzfP19=s72-w267-h400-c" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>9 - ماهي Spring boot Starters</title><link>http://muteealjabri.blogspot.com/2025/07/9-spring-boot-starters.html</link><category>spring-boot</category><author>noreply@blogger.com (muteealjabri.blogspot.com)</author><pubDate>Tue, 15 Jul 2025 21:07:00 +0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-5547022875870167028.post-7191427140595559113</guid><description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEhBldNd-yJt5ETQcp13DEQOFhQnV2zs1yYeJHgCqDIBdoATeCcobS5kR-FhMntAmSo8gEVQGdi4t1Gp1jwaZi1JZZrpDgNvyphY1k9pTN4wnIvQ4XrAj75e8lgjxSK3EMF2yNp_OszSV2oSgmSi_Gackw2tgMW5exJj4MvYpbN_ir1CxXpTODjwMbmhcaDO" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img data-original-height="1024" data-original-width="1024" height="400" src="https://blogger.googleusercontent.com/img/a/AVvXsEhBldNd-yJt5ETQcp13DEQOFhQnV2zs1yYeJHgCqDIBdoATeCcobS5kR-FhMntAmSo8gEVQGdi4t1Gp1jwaZi1JZZrpDgNvyphY1k9pTN4wnIvQ4XrAj75e8lgjxSK3EMF2yNp_OszSV2oSgmSi_Gackw2tgMW5exJj4MvYpbN_ir1CxXpTODjwMbmhcaDO=w400-h400" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;h2 data-end="196" data-start="185"&gt;&#128204; مقدمة&lt;/h2&gt;
&lt;p data-end="491" data-start="198"&gt;عندما تطوّر تطبيقًا باستخدام Spring Boot، فإنّ إدارة التبعيات (dependencies) لمختلف المكتبات يمكن أن تصبح معقدة. هنا يأتي دور &lt;strong data-end="348" data-start="324"&gt;Spring Boot Starters&lt;/strong&gt;، وهي مجموعة من "البدايات الجاهزة" التي تساعد المطوّرين على إعداد مشاريعهم بسرعة وسهولة، دون الحاجة للبحث اليدوي عن كل تبعية أو إعدادها يدويًا.&lt;/p&gt;&lt;h2 data-end="533" data-start="498"&gt;&#128161; ما هو Starter في Spring Boot؟&lt;/h2&gt;&lt;p data-end="491" data-start="198"&gt;
&lt;/p&gt;&lt;p data-end="756" data-start="535"&gt;&lt;strong data-end="546" data-start="535"&gt;Starter&lt;/strong&gt; هو عبارة عن مجموعة من التبعيات (dependencies) المعرفة مسبقًا في ملف &lt;code data-end="624" data-start="615"&gt;pom.xml&lt;/code&gt; (في حال كنت تستخدم Maven) أو &lt;code data-end="668" data-start="654"&gt;build.gradle&lt;/code&gt; (إذا كنت تستخدم Gradle)، تم تجميعها تحت اسم واحد لتمكين ميزة أو وظيفة معينة في التطبيق.&lt;/p&gt;&lt;p data-end="756" data-start="535"&gt;مثلا :&lt;br /&gt;&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEikJHrfxPyuoZTve21StYVDobpjEj5OAzLxW_vLLUDA5XRtlE1_9-bqWYLGIorQHNXZv1Fy3r7KENBHlN59CByKDl-nFMu2mXLungUz2VI50NWQnQtVARSXGruf-tjYTNzhwG-mZMmZC86kyA2lU2W3mznDGFhuVvTvSoiHQz3vVtYTEarEF0j5Pcdiq3Gv" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="" data-original-height="147" data-original-width="557" height="84" src="https://blogger.googleusercontent.com/img/a/AVvXsEikJHrfxPyuoZTve21StYVDobpjEj5OAzLxW_vLLUDA5XRtlE1_9-bqWYLGIorQHNXZv1Fy3r7KENBHlN59CByKDl-nFMu2mXLungUz2VI50NWQnQtVARSXGruf-tjYTNzhwG-mZMmZC86kyA2lU2W3mznDGFhuVvTvSoiHQz3vVtYTEarEF0j5Pcdiq3Gv" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;تضم هذه التبعية كل ما تحتاجه لإنشاء تطبيق ويب باستخدام Spring MVC، بما في ذلك Tomcat، Spring Web، JSON (Jackson)، وغيرها.&lt;p&gt;&lt;/p&gt;&lt;h2 data-end="1072" data-start="1032"&gt;&#127919; لماذا نستخدم Spring Boot Starters؟&lt;/h2&gt;&lt;p style="text-align: right;"&gt;&lt;b&gt;✅ 1. سهولة الاستخدام&lt;/b&gt;&lt;/p&gt;&lt;p data-end="1158" data-start="1099"&gt;توفر وقتك وتقلل من الجهد المطلوب لتجميع التبعيات بشكل يدوي.&lt;/p&gt;&lt;p style="text-align: right;"&gt;&lt;b&gt;✅ 2. تكامل مُسبق&lt;/b&gt;&lt;/p&gt;&lt;p data-end="1240" data-start="1181"&gt;تضمن أن جميع المكتبات المستخدمة متوافقة معًا وتعمل بانسجام.&lt;/p&gt;&lt;p style="text-align: right;"&gt;&lt;b&gt;✅ 3. صيانة أسهل&lt;/b&gt;&lt;/p&gt;&lt;p data-end="1378" data-start="1262"&gt;بما أن Spring Boot starters تُدار من قِبل Spring Team، فهي تُحدَّث دوريًا، مما يقلل من مشاكل التوافق الأمني والتقني.&lt;/p&gt;&lt;p style="text-align: right;"&gt;&lt;b&gt;✅ 4. تقليل الارتباك&lt;/b&gt;&lt;/p&gt;&lt;p data-end="756" data-start="535"&gt;







&lt;/p&gt;&lt;p data-end="1491" data-start="1404"&gt;تقلل من عدد التبعيات التي تحتاج لتتبعها يدويًا، مما يجعل ملف البناء أنظف وأسهل للقراءة.&lt;/p&gt;&lt;p data-end="1491" data-start="1404"&gt;
&lt;/p&gt;&lt;div class="_tableContainer_80l1q_1"&gt;&lt;div class="_tableWrapper_80l1q_14 group flex w-fit flex-col-reverse" tabindex="-1"&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;h2 data-end="1529" data-start="1498"&gt;&#128230; أشهر Spring Boot Starters&lt;/h2&gt;&lt;div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEiG5FSziqZrMS49ZC6Xm2bq1OnJxUHZLkuo3tJJc77BYgRuyXl_nGXSNxK57v2P490dZTKx1g-0GCane4ev8HW9HwU3Ase5UgTmfPWeKFFjl5dCr_bxjLTBSH0wvrlmxDEoyOAf_6JaeGROxq7Zdk8oCGS_OXSl3KXaR_-proFGbIPV1HpBln9bZrIa-5gQ" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img data-original-height="537" data-original-width="933" height="368" src="https://blogger.googleusercontent.com/img/a/AVvXsEiG5FSziqZrMS49ZC6Xm2bq1OnJxUHZLkuo3tJJc77BYgRuyXl_nGXSNxK57v2P490dZTKx1g-0GCane4ev8HW9HwU3Ase5UgTmfPWeKFFjl5dCr_bxjLTBSH0wvrlmxDEoyOAf_6JaeGROxq7Zdk8oCGS_OXSl3KXaR_-proFGbIPV1HpBln9bZrIa-5gQ=w640-h368" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;h2 data-end="2293" data-start="2259"&gt;⚙️ كيف يعمل Starter في الخلفية؟&lt;/h2&gt;&lt;div&gt;&lt;p data-end="2570" data-start="2295"&gt;كل starter هو مجرد تجميع لمجموعة من التبعيات المعرفة مسبقًا في ملف &lt;code data-end="2388" data-start="2362"&gt;spring-boot-dependencies&lt;/code&gt;، وهو BOM (Bill of Materials). عند استخدام starter، يقوم Spring Boot تلقائيًا بتكوين (configure) المكونات استنادًا إلى وجود بعض الـ beans في السياق أو وجود ملفات معينة على classpath.&lt;/p&gt;
&lt;p data-end="2600" data-start="2572"&gt;مثال على auto-configuration:&lt;/p&gt;
&lt;ul data-end="2777" data-start="2601"&gt;
&lt;li data-end="2777" data-start="2601"&gt;
&lt;p data-end="2777" data-start="2603"&gt;إذا قمت بإضافة &lt;code data-end="2648" data-start="2618"&gt;spring-boot-starter-data-jpa&lt;/code&gt; وقمت بتحديد مصدر قاعدة البيانات، فسيقوم Spring تلقائيًا بتهيئة &lt;code data-end="2727" data-start="2712"&gt;EntityManager&lt;/code&gt; و&lt;code data-end="2741" data-start="2729"&gt;DataSource&lt;/code&gt; و&lt;code data-end="2758" data-start="2743"&gt;JpaRepository&lt;/code&gt; دون أي إعداد يدوي.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;h2 data-end="2830" data-start="2784"&gt;&#128736;️ مثال عملي: إنشاء تطبيق Spring Boot REST&lt;/h2&gt;
&lt;p style="text-align: right;"&gt;ملف &lt;code data-end="2849" data-start="2840"&gt;pom.xml&lt;/code&gt; يحتوي على:&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEgTtjHjbNdUeHG68TzG14Oj5on7EhBl66BPRCT37WyO6elA2vhjrocmwaeanPTeD9L52o27GqHyalVjORlG_OGDOJF_7rCwb5MrFKXQYg-oZWlIzCnaRPoGLI6y_DI38yNWkde7W9Jk5g7Q2XBZc4k7YF0f_BrsHKXO1dOIRFBw6Q2uAsPsSlOG-2bWhInP" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img data-original-height="513" data-original-width="725" height="452" src="https://blogger.googleusercontent.com/img/a/AVvXsEgTtjHjbNdUeHG68TzG14Oj5on7EhBl66BPRCT37WyO6elA2vhjrocmwaeanPTeD9L52o27GqHyalVjORlG_OGDOJF_7rCwb5MrFKXQYg-oZWlIzCnaRPoGLI6y_DI38yNWkde7W9Jk5g7Q2XBZc4k7YF0f_BrsHKXO1dOIRFBw6Q2uAsPsSlOG-2bWhInP=w640-h452" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p data-end="3447" data-start="3351"&gt;بمجرد تضمين هذه starters، يمكنك بناء REST API كامل يدعم قواعد بيانات دون كتابة أي إعدادات معقدة.&lt;/p&gt;&lt;h2 data-end="3472" data-start="3454"&gt;&#128680; ملاحظات مهمة&lt;/h2&gt;&lt;p data-end="3447" data-start="3351"&gt;
&lt;/p&gt;&lt;ol data-end="3849" data-start="3474"&gt;
&lt;li data-end="3638" data-start="3474"&gt;
&lt;p data-end="3638" data-start="3477"&gt;&lt;strong data-end="3517" data-start="3477"&gt;لا تخلط بين التبعيات يدويًا وStarter&lt;/strong&gt;: لا تضف &lt;code data-end="3541" data-start="3526"&gt;spring-webmvc&lt;/code&gt; أو &lt;code data-end="3561" data-start="3545"&gt;hibernate-core&lt;/code&gt; بشكل منفصل إذا كنت تستخدم Starter، لأن ذلك قد يؤدي إلى تعارضات في الإصدارات.&lt;/p&gt;&lt;/li&gt;
&lt;li data-end="3728" data-start="3639"&gt;
&lt;p data-end="3728" data-start="3642"&gt;&lt;strong data-end="3665" data-start="3642"&gt;لا تكثر من starters&lt;/strong&gt;: اختر فقط ما تحتاجه في المشروع لتفادي تحميل تبعيات غير ضرورية.&lt;/p&gt;
&lt;/li&gt;
&lt;li data-end="3849" data-start="3729"&gt;
&lt;p data-end="3849" data-start="3732"&gt;&lt;strong data-end="3755" data-start="3732"&gt;تحقق من حجم التطبيق&lt;/strong&gt;: بعض starters قد تضيف العديد من المكتبات بشكل غير مباشر مما يزيد من حجم الملف التنفيذي (JAR).&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;&lt;h2 data-end="4129" data-start="4118"&gt;&#127937; خاتمة&lt;/h2&gt;
&lt;p data-end="4371" data-start="4131"&gt;باستخدام &lt;strong data-end="4164" data-start="4140"&gt;Spring Boot Starters&lt;/strong&gt;، يمكنك تسريع عملية بناء تطبيقات Java الحديثة بشكل كبير، والحفاظ على الكود مرتبًا وقابلًا للتوسعة. إنها من أهم مزايا Spring Boot التي جعلته الخيار الأول لتطوير تطبيقات الويب والخدمات المصغرة (Microservices).&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p data-end="2570" data-start="2295"&gt;&lt;/p&gt;&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/a/AVvXsEhBldNd-yJt5ETQcp13DEQOFhQnV2zs1yYeJHgCqDIBdoATeCcobS5kR-FhMntAmSo8gEVQGdi4t1Gp1jwaZi1JZZrpDgNvyphY1k9pTN4wnIvQ4XrAj75e8lgjxSK3EMF2yNp_OszSV2oSgmSi_Gackw2tgMW5exJj4MvYpbN_ir1CxXpTODjwMbmhcaDO=s72-w400-h400-c" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>8- ملف  application.properties وأهميته في مشروع Spring boot</title><link>http://muteealjabri.blogspot.com/2025/07/8-applicationproperties-spring-boot.html</link><category>spring-boot</category><author>noreply@blogger.com (muteealjabri.blogspot.com)</author><pubDate>Thu, 10 Jul 2025 13:15:00 +0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-5547022875870167028.post-6157784133033001932</guid><description>&lt;p&gt;&amp;nbsp;في كل مشروع Spring boot&amp;nbsp; يوجد ملف مهم اسمه&amp;nbsp;application.properties وسوف نشرحه الان بالتفصيل&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;h2 data-end="194" data-start="144"&gt;&#128313; نبذة تعريفية عن ملف &lt;code data-end="194" data-start="170"&gt;application.properties&lt;/code&gt;&lt;/h2&gt;&lt;p&gt;
&lt;/p&gt;&lt;p data-end="564" data-start="196"&gt;يُعتبر ملف &lt;code data-end="231" data-start="207"&gt;application.properties&lt;/code&gt; أحد الملفات الأساسية في مشاريع &lt;strong data-end="278" data-start="263"&gt;Spring Boot&lt;/strong&gt;، وهو يُستخدم لتخزين إعدادات وتكوينات المشروع بطريقة بسيطة وسهلة الفهم.&lt;br data-end="352" data-start="349" /&gt;
يتيح هذا الملف للمطورين تخصيص سلوك التطبيق دون الحاجة إلى تغيير الكود المصدر. يمكن من خلاله تحديد إعدادات الاتصال بقاعدة البيانات، تكوينات الخادم (server)، إعدادات الأمان، إدارة ملفات السجل (logs)، وغيرها الكثير.&lt;/p&gt;&lt;h2 data-end="605" data-start="571"&gt;&#128193; المسار الذي يتواجد فيه الملف&lt;/h2&gt;&lt;p data-end="564" data-start="196"&gt;
&lt;/p&gt;&lt;p data-end="668" data-start="607"&gt;بشكل افتراضي، يتم وضع ملف &lt;code data-end="657" data-start="633"&gt;application.properties&lt;/code&gt; داخل مجلد:&lt;/p&gt;&lt;p data-end="668" data-start="607" style="text-align: center;"&gt;&lt;b&gt;src/main/resources/&lt;/b&gt;&lt;/p&gt;&lt;div style="text-align: right;"&gt;وذلك لأن Spring Boot يبحث ضمن مسار الموارد (&lt;code data-end="754" data-start="743"&gt;resources&lt;/code&gt;) عن هذا الملف لتحميل الإعدادات أثناء بدء تشغيل التطبيق.&lt;/div&gt;&lt;div style="text-align: right;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: right;"&gt;&lt;h2 data-end="856" data-start="817"&gt;⭐ أهمية ملف &lt;code data-end="856" data-start="832"&gt;application.properties&lt;/code&gt;&lt;/h2&gt;
&lt;p data-end="905" data-start="858"&gt;فيما يلي أبرز النقاط التي توضح أهمية هذا الملف:&lt;/p&gt;
&lt;ul data-end="1423" data-start="907"&gt;
&lt;li data-end="997" data-start="907"&gt;
&lt;p data-end="997" data-start="909"&gt;✅ &lt;strong data-end="929" data-start="911"&gt;سهولة التكوين:&lt;/strong&gt; يوفّر طريقة بسيطة لضبط إعدادات التطبيق بدون الحاجة إلى تعديل الكود.&lt;/p&gt;
&lt;/li&gt;
&lt;li data-end="1191" data-start="998"&gt;
&lt;p data-end="1191" data-start="1000"&gt;&#128260; &lt;strong data-end="1040" data-start="1003"&gt;إمكانية التبديل بين بيئات مختلفة:&lt;/strong&gt; يمكن إنشاء نسخ متعددة من الملف مثل &lt;code data-end="1104" data-start="1076"&gt;application-dev.properties&lt;/code&gt; و&lt;code data-end="1135" data-start="1106"&gt;application-prod.properties&lt;/code&gt; لتحديد إعدادات خاصة لكل بيئة (تطوير، إنتاج، اختبار...).&lt;/p&gt;
&lt;/li&gt;
&lt;li data-end="1329" data-start="1192"&gt;
&lt;p data-end="1329" data-start="1194"&gt;&#128736;️ &lt;strong data-end="1220" data-start="1198"&gt;دعم إعدادات مدمجة:&lt;/strong&gt; يحتوي Spring Boot على العديد من الإعدادات الافتراضية التي يمكن تجاوزها أو تخصيصها بسهولة باستخدام هذا الملف.&lt;/p&gt;
&lt;/li&gt;
&lt;li data-end="1423" data-start="1330"&gt;
&lt;p data-end="1423" data-start="1332"&gt;&#129513; &lt;strong data-end="1370" data-start="1335"&gt;دمج سلس مع خصائص Spring الأخرى:&lt;/strong&gt; مثل Spring Data, Spring Security, Spring MVC وغيرها.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;h2 data-end="1479" data-start="1430"&gt;&#129514; مثال عملي لاستخدام &lt;code data-end="1479" data-start="1455"&gt;application.properties&lt;/code&gt;&lt;/h2&gt;&lt;div&gt;&lt;code data-end="1479" data-start="1455"&gt;&lt;img height="396" src="data:image/png;base64,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" width="640" /&gt;&lt;/code&gt;&lt;/div&gt;&lt;div&gt;&lt;code data-end="1479" data-start="1455"&gt;&lt;br /&gt;&lt;/code&gt;&lt;/div&gt;&lt;div&gt;&lt;code data-end="1479" data-start="1455"&gt;&lt;br /&gt;&lt;/code&gt;&lt;/div&gt;&lt;p style="text-align: right;"&gt;هذا المثال يوضّح كيفية تخصيص المنفذ الذي يعمل عليه التطبيق، إضافة إلى ضبط إعدادات الاتصال بقاعدة بيانات MySQL، وتكوين إعدادات Hibernate، ومستوى التفاصيل في ملفات السجل.&lt;/p&gt;&lt;h2 data-end="2195" data-start="2184"&gt;&#128221; خلاصة&lt;/h2&gt;&lt;p&gt;
&lt;/p&gt;&lt;p data-end="2435" data-start="2197"&gt;ملف &lt;code data-end="2225" data-start="2201"&gt;application.properties&lt;/code&gt; هو أداة أساسية في مشاريع Spring Boot، يسهّل عملية إدارة الإعدادات والتكوينات، ويساهم في تحسين مرونة التطبيق وقدرته على التكيّف مع مختلف البيئات. من خلاله، يمكن التحكم بسلوك مكونات Spring بطريقة فعّالة ومنظّمة.&lt;/p&gt;&lt;pre class="overflow-visible!" data-end="2007" data-start="1481"&gt;&lt;div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary"&gt;&lt;div class="overflow-y-auto p-4" dir="ltr"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;</description><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>7- ماهو ملف pom.xml في مشروع Spring boot</title><link>http://muteealjabri.blogspot.com/2025/07/7-pomxml-spring-boot.html</link><category>spring-boot</category><author>noreply@blogger.com (muteealjabri.blogspot.com)</author><pubDate>Wed, 9 Jul 2025 18:05:00 +0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-5547022875870167028.post-4891666399484447201</guid><description>&lt;p&gt;&lt;img src="https://lh3.googleusercontent.com/gg-dl/AJfQ9KRS9PaBHsIM8xrNiQW8Wg4_8YvTx0HriaNS5fOj8qbwa3gm0R0Sx9aeBu3ZW5dza4CSUUnsbBiSa9qA7aU7qbQus6-iFMOK_DXslmWY5Qbmi8T1APGQxNzSwyE9dQw-RInGPHGNsOGtiLe6KPwZt4NphbJE_3zv65Z2ee01UreZRoM4gA=s1024" /&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;في كل مشروع Spring boot3 يستخدم اداءة Maven سوف تجد بكل تأكيد ملف pom.xml وهو ملف مهم جدا وسوف نشرحه بالتفصيل:&lt;/p&gt;&lt;h2 data-end="112" data-start="90"&gt;&#128313; ما هو &lt;code data-end="111" data-start="102"&gt;pom.xml&lt;/code&gt;؟&lt;/h2&gt;&lt;p data-end="187" data-start="113"&gt;&lt;code data-end="122" data-start="113"&gt;pom.xml&lt;/code&gt; هو اختصار لـ &lt;strong data-end="160" data-start="136"&gt;Project Object Model&lt;/strong&gt;، ويُستخدم في Maven لتعريف:&lt;/p&gt;&lt;p&gt;

&lt;/p&gt;&lt;ul data-end="284" data-start="188"&gt;
&lt;li data-end="205" data-start="188"&gt;
&lt;p data-end="205" data-start="190"&gt;إعدادات المشروع&lt;/p&gt;
&lt;/li&gt;
&lt;li data-end="233" data-start="206"&gt;
&lt;p data-end="233" data-start="208"&gt;الإعتمادات (Dependencies)&lt;/p&gt;
&lt;/li&gt;
&lt;li data-end="254" data-start="234"&gt;
&lt;p data-end="254" data-start="236"&gt;الإضافات (Plugins)&lt;/p&gt;
&lt;/li&gt;
&lt;li data-end="284" data-start="255"&gt;
&lt;p data-end="284" data-start="257"&gt;معلومات البناء (Build Info)&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;h2 data-end="339" data-start="291"&gt;&amp;nbsp;مثال بسيط على &lt;code data-end="320" data-start="311"&gt;pom.xml&lt;/code&gt; لمشروع Spring Boot&lt;/h2&gt;&lt;div style="text-align: center;"&gt;&lt;img height="311" src="data:image/png;base64,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mgqeOjyzPHrHyLIj5X9bLvaVadlITU5Szj4UjsLswEfWdBDSMwPT7A41Sat10Cb2e5vI0Nfp04TW9a9i1x9a0IlAWGloxbE//Bm7TB219kYijmkoGaY8xsFhyuO0Gr/U+2yJ51hqaaYOHtj989q9dVgn1hGzCVW8Wj3aOSDiJdcn11VcNAezl9yExVUPqM6rv9PH56gs6Di2Uj/2p+A/9vIjIqiO/5aVR9QoSv2JrX4f3v7tfjU6U+fwLH+cZY2ZDpG26x/pebqNdl2VZH9By6vEdfmpJpyINpoeEREREdFpwOZ0nZ+6koVeOHd4Jj491ab/RUSnIzkM+K8rZ8NxYA1ufDx4HHDZJKu89BYsrnCoJn+/vPeFPu+gmIhosMnOcaLFba1jbyIiIuq506LmDBENUmGGyzbYGpuwZ1+d3oFy348cRURERERE1FOsOUNEA5bqrHv9UhTbbPB56rTOkg32LBQ7ZL9IHmztb03oiIgGCNacISIiSg4WzhDRgKaaL829BbPtdmTJUaN0sg+ahobXsGnfbjSyYIaIqEdYOENERJQcLJwhIiIiorBYOENERJQc7HOGiIiIiIiIiCiFWDhDRERERERERJRCLJwhIiIiIiIiIkohFs4QEREREREREaUQC2eIiIiIiIiIiFKIhTNERERERERERCnEwhkiIiIiIiIiohRi4QwRERERERERUQqxcIaIiIiIiIiIKIVYOENERERERERElEIsnCEiIiIiIiIiSiEWzhARERERERERpRALZ4iIiIiIiIiIUoiFM0REREREREREKcTCGSIiIiIiIiKiFGLhDBERERERERFRCrFwhoiIiIiIiIgohVg4Q0RERERERESUQiycISIiIiIiIiJKIRbOEBERERERERGlEAtniIiIiIiIiIhSiIUzREREREREREQpxMIZIiIiIiIiIqIUYuEMEREREREREVEKsXCGiIiIiIiIiCiFWDhDRERERERERJRCLJwhIiIiIiIiIkohFs4QnSZ8vnQU3H01pi7MQbrPp08NL555iZJtsKdPnn9EicN7H5mdTseY6Zlo4GHhDCWda/4deKD6OTww36lPGRjSZ5di6n9ejZLiAXqDy86BfTiQJr522GzatEjimZdSasCny54Y7OmT519SDNR7UbJ9rfx83vto8DidjjHTc5DT8nmJBpwzM4adXaV/H1C+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CNLTM9DZoZ/bRERE1GdYc6YH/LUKqvZEHS64J+QQtIsfrEWNtxO543JQJj6Tx0INY/zIg1uDaiXI5ie3VRsjoGjzZre58XD1Ua25golt3x7MXHEUtSdhClcOT9yCDZs/02ayQNbEeF4f9lhl3qKMypOIdWrbKGtuBPZH2TjtTfwjD+6Ouv/j2ZfxkPtgeZU4/k814USia4nseRf1Hh98njrUmUZ22vv4D7F8bR08sPubRTlQjy1r78f9L5qGS+7t8lFESveyCczU8RE6ve0DPEeCnXbnCBERERHRIGRzus7vXR3+FDl3eCY+PZXA4USIqEd8peXYvigHvoM1qBCZcSIiGjyyc5xocfPaTkRE1NdYc4aIesXoCDhaDREiIiIiIiKKjIUzRNRjskkT0NXjjmOJiIiIiIiIzZqIiIiIKAI2ayIiIkoO1pwhIiIiIiIiIkohFs4QEREREREREaUQC2eIiIiIiIiIiFKIhTNERERERERERCnEwhkiIiIiIiIiohRi4QwRERERERERUQqxcIaIiIiIiIiIKIVYOENERERERERElEIsnCEiIiIiIiIiSiEWzhARERERERERpRALZ4iIiIiIiIiIUoiFM0REREREREREKcTCGSIiIiIiIiKiFGLhDBERERERERFRCrFwhoiIiIiIiIgohVg4Q0RERERERESUQiycISIiIiIiIiJKIRbOEBERERERERGlEAtniIiIiIiIiIhSiIUzREREREREREQpxMIZIiIiIiIiIqIUYuEMEREREREREVEKsXCGiIiIiIiIiCiFWDhDRERERERERJRCLJwhIiIiIiIiIkohFs4QEREREREREaUQC2eIiIiIiIiIiFKIhTNERERERERERCnEwhkiIiIiIiIiohRi4QwRERERERERUQqxcIaIiIiIiIiIKIVYOENERERERERElEIsnCEiIiIiIiIiSiEWzlBY05bNwtanZ2GR06dPISIiIiIiIqK+wMIZimCo/j8RERERERER9SWb03X+gKwace7wTHx6qk3/K7l8znRMn3MxFmS2Y0Plbuy02dT0vHnluPvKbLS8XotmRyHKxg5FrvjN5+tE7frdWL6vQ81nyCsdi+srclBmT1N/q/leF/NtDMznKy3HuoXZwOs7sBJjVPgyzOYd27FEn8/ndOLGOYWYP84UTsj6/HFbvwO7s8dggR6O1HywBkuealLfpy2bj7vGadND1VS/IMKU2+NE1epCZB86jJWbG3GiKfz8RERENLBl5zjR4taeEYiIiKjvnJkx7Owq/fuA8vWzzsI/vvhc/ys5ZGHKbYsvxc9n5aN8xBCkd3Wg5eNmNLRrhRPnXDQG/5o3BDl5OUj3nRK/dcJ9Uvw2YigKi/OR1/Y+3m6RhRvpuHH5t/HTS4Yju+ufqP3olJivQ8x3HgrzAvMp2bm4pTgDGXl5qMhLRzq6YLMNwdFddVpYTieq7p2MK0f8E+5Dp3BUhNOC81B2ST4u/UozNn3wpQrGH7eiPEwZ2oGjKm4d8GWmIdee61/nGTnDcM4XYrovDRlDbWg+6FZhuk+2YHf9SXwkt9XlxPUFWcj9Ri4qLhmD6ydmYMgX7Who0dZFREREg0N6egY6O9r1v4iIiKivsOZMDP5aMnotGKn54FFs2HwQO0NqjOTNm4VVM9L8NUwMPudYrLv3QuSc/AC3Vx7ECVmbpnQsbkQjqk21W2Qtme2LcuA7WIMKvSaLf5qvEy+t3x00v2TUdDGvUyv8mYFrR7TgkZu0mj0R4xZmnZIM986xXXjpwa2ojlAzJlyNHTdr0xAREQ0arDlDRESUHOxzJgpZoLH9vpm4a1wack52oaZ6O25b+gKWPHWoW8FMVI2NqDkp/h+Rg6kubZJt36FuBS3RuF/vXjAjmxddPFb87z2K52v1iYLN1oEmVW6VAae+voi8nWj29ax8ztbUhOqntmHm0u14eIcbbgxF7rgyrLrvOlSWsiNhIiIiIiIiIitYOBODrA0iC2UqqrapPlxkrZeestlkEyL9D0HWypk2rxxrq2Zh2+oFqgZLXCbnoEzEx2a/CKvWXKfCMD6yNk3o+vqKLAzauXEPltz8Im7b4e5xYQ8RERERERHR6YiFMzHIAo6yRTOxtWoWKkvTkdeLggdZ0NPs1b77a+XMyIEskqk56EaNt1P7MU4+sZxavtvnKHbr6+tLshmVKmR6ej5Wie0xmn8RERERERERUWwsnInixMZtmLliOx4+2An3iKGqkEbWUFm7bCymOeMppBmG3BHy/3Y0NcoaM2Nx95VDVWHNiyte0GrlPLUHVVvj7HDPaJLUdlgt3/0TZ/OrOOU5naismoXta4xCpi7U7KhRTb/M/doQERERERERUWQsnInB1tSBnU9t05rsVB9FjdeH3HEX4a77rsPWqnIsslBIk39NoWp+hENubdhte5pWu+TQ4Yid7Vpi9GUzttBSPOIVqVmULFxaWzUfq+4rU8OAN3vdeHjFdlTcvA3LNzb1qukXERERERER0emGQ2nH4W8tbXj7rSP4/cFmnMwYgdyzvsSeV5vxkV4Ycc5F+ajIG4Jshwt5ozNx2aRcXDa7DEsmDIHP58YjlYe0ec8chku/eR7SR4j/XZkoVvONwc8vGa7CwUk3nn9Xr0WTnYvvF6Wj468n/MNiG2y2L1H/xTDcUDwco7/pCoQlPteL9V41ugub9HCMuLkbDgeG6ZbEdnz7EhGXtpbAOoUzclwh2zIG37AdR4Nc9rOvoeTyYfB91ID7n92N515z46N2DqNNREQ02HAobSIiouRgzZke8Nemqdqj1YQJNQIoG5ejPpNHdKH5YA1u14e0lmxNh7ByfYs+upGYZ2wGsttk7ZOjcXema9u3BzPFcrUnocJS6xThAS3YsPkzbaYekE26Ht6hN+dSYYrwIcOVhUJNWF4ltv+pJg6ZTURERERERNRLNqfr/MS3h0mCc4dn4tNTarzofkN28rtqRhpqqtnnChEREQ182TlOtLib9L+IiIior7DmDBERERERERFRCrFwhoiIiIiIiIgohVg4Q0RERERERESUQuxzhoiIiIjCYp8zREREycGaM0REREREREREKcTCGSIiIiIiIiKiFGLhDBERERERERFRCrFwhoiIiIiIiIgohVg4Q0RERERERESUQiycISIiIiIiIiJKIRbOEBERERERERGlEAtniIiIiIiIiIhSiIUzREREREREREQpxMIZIiIiIiIiIqIUYuEMEREREREREVEKsXCGiIiIiIiIiCiFWDijO3d4pv6NiIiIiIiIiCh5WDhDRERERERERJRCLJwhIiIiIiIiIkohFs4QEREREREREaUQC2eIiIiIiIiIiFKIhTNERERERERERCnEwhkiIiIiIiIiohRi4QwRERERERERUQqxcIaIiIiIiIiIKIVYOENERERERERElEIsnCEiIiIiIiIiSiEWzhARERERERERpRALZ4iIiIiIiIiIUoiFM0REREREREREKcTCGSIiIiIiIiKiFGLhDBERDUg+XzoWVc3H2mVO5Pl8+lQiIiIiooGHhTPUb/lKy7H2aZHxmpeuT6H+zOdagFtXPIfq9b9TnwduL4eL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MhIdXm/Jaujr7r0QOYdqUSEeqM18znRML7kYd81IExmQo7i98mDKqqXLIXFXiXjUVA/uPgtk/yi/rpwNx4E1uPFx01jMghxtqLz0Fiyu0EfUCckAWyU7x60UYdSvvQFP7E3dvkzGthLFQzZVUh36Hqzpdj0043WTKPGyc5xocfdwCH8iIiKyjDVn+qsow77Kt8tv1OnDn/ZwtA6KU5QhpG2NTdizr06r7RFmqOEB53TaVhoQjI6AY460xOsmEREREQ1QrDmj63c1Z3xOVK2erDqH9IlMcK05apkZqlNHlVmJZ/SRPnDa1JzxleO29VqHqrIJidGyRbFnodgh+4/xYGsvmq70m5ozSdhWIqtkk6bpt1yMOzPdMWu78LpJlHisOUNERJQc7BBYl4oOgaORHT6+dcitd455Hgq/kYGcEenqk931T9TubsDKDfvx5xT3H2B0bOluOBy9k84BzmZrRu2BepzKuAiOofkoyM+Cw6F97F1daHjneaz7Q3WvRjKK2GFvkiVjW4mskh3zfvTuCTz/Vhv+FqVgRuJ1kyjx2CEwERFRcrDmjK6/1ZwhIiIiSjXWnCEiIkoO9jlDRERERERERJRCLJwhIiIiIiIiIkohFs4QEREREREREaUQC2eIiIiIiIiIiFKIhTNERERERERERCnEwhkiIiIiIiIiohRi4QwRERERERERUQqxcIaIiIiIiIiIKIVYOENERERERERElEIsnCEiIiIiIiIiSiEWzhARERERERERpRALZ4iIiIiIiIiIUoiFM0REREREREREKcTCGSIiIiIiIiKiFGLhDBERERERERFRCrFwhoiIiIiIiIgohVg4Q0RERERERESUQiycISIiIiIiIiJKIRbOEBERERERERGlEAtniIiIiIiIiIhSiIUzREREREREREQpxMIZIiIiIiIiIqIUYuEMEREREREREVEKsXCGiIiIiIiIiCiFWDhDRERERERERJRCLJwhIiIiIiIiIkohFs4QERGZ+HzpWFQ1H2uXOZHn8+lTiYiIiIj6DgtnKCqfcywqRSZl2+oF6tPfMyu+0nKsfVpkqual61MoHq75d+CB6udw6xRmSOk05nKhbASQI76esNm0af0Ar8dEREREgxcLZwh582ZpD/ohD9AyI7Du3gsxeUQXag661afF81lSMys+nxOV4uF+69PlmGYxE5LbjzJT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VopHZGCXa0P/BrFDn6cERXYvWhtW45f6EMFJ0+pBvdhm2b+HR0RIi88czF5yExZXPaA6xP1OrFF7dHKEp/oGj9iuYv92OeBF/dr7g4a6lmyNG/Bvy9cE7atIzanimVeSx2HdVrE9dm175LwOxH4tH8/xi7QOGdd16+rVvpRhFE3Igt1bh3VVm+MePUiKti2ySdpCEa6sZRLYL7JKSD22iExrwsVIr4nc9r7atp6kjXDXWEn2dzJ1vGwW5MbuKKMY8XqcmusxERER0enE5nSdH/+TZT9w7vBMfHqqTf+r9xIdHg1ustPUygoH6tfegCf2pi6DIfsI+XXlbDgOrMGNj5vGLBbkiDvlpbdgsYinqvUSUrhCp4/+kl77G19puRrZyHewBhVPxTcUOtHpIjvHiRY3zw8iIqK+xpozRANZmOGyDbbGJuzZV6d3zNp9GGui053REfBLppojRERERESpwMIZooFsz7uqSZOt6CY8u8IYRlv/rJBDIs9RzZKM4bSJSCObNAFdql+WXSybISIiIqIUY+EM0QBms+3BquW/UENpexDoJ0b1xSF+r9+6Gr9M2HDaRIOHzab1Q1NRdYgjBBERERFRyrHPGR37nCEiIiIKxj5niIiIkoM1Z4iIiIiIiIiIUoiFM0REREREREREKcTCGSIiIiIiIiKiFGLhDBERERERERFRCrFwhoiIiIiIiIgohVg4Q0RERERERESUQiycISIiIiIiIiJKIRbOEBERERERERGlEAtniIiIiIiIiIhSiIUzREREREREREQpxMIZIiIiIiIiIqIUYuEMEREREREREVEKsXCGiIiIiIiIiCiFWDhDRERERERERJRCLJwhIiIiIiIiIkohFs4QEREREREREaUQC2eIiIiIiIiIiFKIhTNERERERERERCnEwhkiIiIiIiIiohRi4QwRERERERERUQqxcIaIiIiIiIiIKIVYOENERERERERElEIsnCEiIiIiIiIiSiEWzhARERERERERpRALZ4iIiIiIiIiIUoiFM0REREREREREKcTCGSIiIiIiIiKiFGLhDNEA5/OlY1HVfKxd5kSez6dPJSIiIiIiooGChTNEA53LhbIRQI74esJm06YRERERERHRgGFzus4fkK/azx2eiU9Ptel/9V6iwxus8ubNwqoZaWjesR1LNnboU/sPn6sc186di6IJdmTp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" width="400" /&gt;&lt;/div&gt;&lt;pre class="overflow-visible!" data-end="2521" data-start="341"&gt;&lt;div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary"&gt;&lt;div class="overflow-y-auto p-4" dir="ltr"&gt;&lt;code class="whitespace-pre! language-xml"&gt;&lt;h2 data-end="2549" data-start="2528"&gt;&lt;br /&gt;&lt;/h2&gt;&lt;div&gt;&lt;h2 data-end="2549" data-start="2528" dir="rtl" style="text-align: right;"&gt;&#128313; شرح أهم الأقسام&lt;/h2&gt;&lt;div style="text-align: center;"&gt;&lt;img height="307" src="data:image/png;base64,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" width="640" /&gt;&lt;/div&gt;
&lt;div class="_tableContainer_80l1q_1"&gt;&lt;div class="_tableWrapper_80l1q_14 group flex w-fit flex-col-reverse" tabindex="-1"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;h2 data-end="2986" data-start="2939" dir="rtl" style="text-align: right;"&gt;&#128313; أشهر &lt;code data-end="2960" data-start="2950"&gt;starters&lt;/code&gt; تُستخدم في &lt;code data-end="2986" data-start="2972"&gt;dependencies&lt;/code&gt;&lt;/h2&gt;&lt;div&gt;&lt;code data-end="2986" data-start="2972"&gt;&lt;img height="282" src="data:image/png;base64,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sw8jWG7ecUhFFL0mWf5j8U76ESgvFU6npFNeWcnuxzxXbQ229OQwk0hkT9h3LEWONfe6rlWR8gwco5a9LiW8h6385Rnu0099fVQRsdoNWKZiLKVXpNdCv0b7cuVXTk3lul6mN7IsUKJ8wQsAECZvwCoqGHS2RmgYyMwex2xv2BoErI21rWYRjJoex5Nv2vJKors/SnKCcFUJzAQoaVn+xK4DAGqYM5FBkBn7JCvymHAF1KTaDVhmrMs6flBVt/oU+b0s/ftD1dAKoX9YN2/XMWwuMwFKKWP9dEvXWsbNAUBtefasmjva6Jnn/LPq6cX5PaoSu90BEavuz1R1qN0ugoo79iZ0bMrFYRk+N5i3VUc/t+fzFrpxIUJ0DwSAcu3bt0927dpl1wCs19dffy1ffPGFXcNGqOmAZeQd3F9oooP8EyYA5QhOsBE2oQkAIL9YLCb19SX+mj2AopaXl2V1NeK57+FT+wELAABUtbq6Otm9e7ddA7BWX375paysFPtBA6wXk1wAAICKpiuE+lt33bWJ8SNAefRnRn929GeIcLU5aMECAAAAgIjQggUAAAAAESFgAQAAAEBECFgAAAAAEBECFgAAAABEhIAFAAAAABEhYAEAAABARAhYAAAAABARAhYAAAAARISABQAAAAARIWABAAAAQEQIWAAAAAAQEQIWAAAAAESEgAUAAAAAESFgAQAAAEBECFgAAAAAEBECFgAAAABEhIAFAAAAABEhYAEAAABARAhYAAAAABARAhYAAAAARISABQAAAAARIWABAAAAQEQIWAAAAAAQEQIWAAAAAESEgAUAAAAAESFgAQAAAEBECFgAAAAAEBECFgAAAABEhIAFAAAAABEhYAEAAABARAhYAAAAABARAhYAAAAARISABQAAAAARIWABAAAAQEQIWAAAAAAQEQIWAAAAAESEgAUAAAAAESFgAQAAAEBECFgAAAAAEBECFgAAAABEhIAFAAAAABEhYAEAAABARAhYAAAAABARAhYAAAAARISABQAAAAARIWABAAAAQEQIWAAAAAAQEQIWAAAAAESEgAUAAAAAESFgAQAAAEBECFgAAAAAEBECFgAAAABEhIAFAAAAABEhYAEAAABARAhYAAAAABARAhYAAAAARISABQAAAAARIWABAAAAQCRE/n8ZR3Myvpd2fgAAAABJRU5ErkJggg==" width="640" /&gt;&lt;/code&gt;&lt;/div&gt;
&lt;div class="_tableContainer_80l1q_1"&gt;&lt;div class="_tableWrapper_80l1q_14 group flex w-fit flex-col-reverse" tabindex="-1"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="_tableContainer_80l1q_1"&gt;&lt;div class="_tableWrapper_80l1q_14 group flex w-fit flex-col-reverse" tabindex="-1"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://lh3.googleusercontent.com/gg-dl/AJfQ9KRS9PaBHsIM8xrNiQW8Wg4_8YvTx0HriaNS5fOj8qbwa3gm0R0Sx9aeBu3ZW5dza4CSUUnsbBiSa9qA7aU7qbQus6-iFMOK_DXslmWY5Qbmi8T1APGQxNzSwyE9dQw-RInGPHGNsOGtiLe6KPwZt4NphbJE_3zv65Z2ee01UreZRoM4gA=s72-c" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>6- هيكلة وملفات مشروع Spring boot3</title><link>http://muteealjabri.blogspot.com/2025/07/6-spring-boot3.html</link><category>spring-boot</category><author>noreply@blogger.com (muteealjabri.blogspot.com)</author><pubDate>Wed, 9 Jul 2025 17:48:00 +0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-5547022875870167028.post-4157330077116172218</guid><description>&lt;p style="text-align: center;"&gt;&lt;img src="https://lh3.googleusercontent.com/gg-dl/AJfQ9KTJeMpplsFqldfdV6sOzPHk2X6Y5YeFwlgYP4FK6ehptV45ZM8dZX0w8qgXw4CZfsJLI0dMIMDFMqhxXHOROh4dyfn1bSJnjyMJlfUdoAOQsFVmjdlWXhP1FVhedY1VE357QFc6QB-70zQNQqXQIX4LFDafyGjJm6P9P73yM9pQr2R7sw=s1024" /&gt;&lt;/p&gt;&lt;p&gt;سنتعرف في هذا الدرس على تركيبة وهيكلة ملفات مشروع Spring boot3 :&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;وسوف نشرح الان جميع الملفات والمجلدات:&lt;/p&gt;&lt;h2 style="text-align: right;"&gt;&#128193; &lt;code data-end="152" data-start="145"&gt;.idea&lt;/code&gt;&lt;/h2&gt;&lt;p&gt;
&lt;/p&gt;&lt;ul data-end="337" data-start="153"&gt;
&lt;li data-end="258" data-start="153"&gt;
&lt;p data-end="258" data-start="155"&gt;&lt;strong data-end="165" data-start="155"&gt;الوصف:&lt;/strong&gt; مجلد خاص بـ IntelliJ IDEA يحتوي على إعدادات المشروع مثل التكوينات، الأكواد المحفوظة، وغيرها.&lt;/p&gt;
&lt;/li&gt;
&lt;li data-end="337" data-start="259"&gt;
&lt;p data-end="337" data-start="261"&gt;&lt;strong data-end="272" data-start="261"&gt;ملاحظة:&lt;/strong&gt; لا داعي لإضافته إلى Git غالباً، لذلك يتم تجاهله في &lt;code data-end="336" data-start="324"&gt;.gitignore&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;h2 style="text-align: right;"&gt;&#128193; &lt;code data-end="357" data-start="351"&gt;.mvn&lt;/code&gt;&lt;/h2&gt;
&lt;ul data-end="519" data-start="358"&gt;
&lt;li data-end="434" data-start="358"&gt;
&lt;p data-end="434" data-start="360"&gt;&lt;strong data-end="370" data-start="360"&gt;الوصف:&lt;/strong&gt; يحتوي على ملفات دعم لتشغيل Maven Wrapper (&lt;code data-end="419" data-start="413"&gt;mvnw&lt;/code&gt; و &lt;code data-end="432" data-start="422"&gt;mvnw.cmd&lt;/code&gt;).&lt;/p&gt;
&lt;/li&gt;
&lt;li data-end="519" data-start="435"&gt;
&lt;p data-end="519" data-start="437"&gt;&lt;strong data-end="449" data-start="437"&gt;الوظيفة:&lt;/strong&gt; يمكِّنك من تشغيل أو بناء المشروع بدون الحاجة لتثبيت Maven على النظام.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;h2 style="text-align: right;"&gt;&#128193; &lt;code data-end="538" data-start="533"&gt;src&lt;/code&gt;&lt;/h2&gt;
&lt;p data-end="598" data-start="539"&gt;المجلد الرئيسي للكود المصدر، ويحتوي على ثلاثة أقسام رئيسية:&lt;/p&gt;
&lt;h4 data-end="619" data-start="600"&gt;&#128193; &lt;code data-end="619" data-start="608"&gt;main/java&lt;/code&gt;&lt;/h4&gt;
&lt;ul data-end="779" data-start="620"&gt;
&lt;li data-end="676" data-start="620"&gt;
&lt;p data-end="676" data-start="622"&gt;&lt;strong data-end="632" data-start="622"&gt;الوصف:&lt;/strong&gt; يحتوي على الكود الأساسي لتطبيق Spring Boot.&lt;/p&gt;
&lt;/li&gt;
&lt;li data-end="779" data-start="677"&gt;
&lt;p data-end="779" data-start="679"&gt;&lt;strong data-end="691" data-start="679"&gt;الوظيفة:&lt;/strong&gt; تضع فيه جميع الحزم (Packages) والملفات (مثل: Controllers, Services, Repositories, etc).&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-end="805" data-start="781"&gt;&#128193; &lt;code data-end="805" data-start="789"&gt;main/resources&lt;/code&gt;&lt;/h4&gt;
&lt;ul data-end="1021" data-start="806"&gt;
&lt;li data-end="862" data-start="806"&gt;
&lt;p data-end="862" data-start="808"&gt;&lt;strong data-end="818" data-start="808"&gt;الوصف:&lt;/strong&gt; يحتوي على الموارد (Resources) غير البرمجية.&lt;/p&gt;
&lt;/li&gt;
&lt;li data-end="1021" data-start="863"&gt;
&lt;p data-end="888" data-start="865"&gt;&lt;strong data-end="877" data-start="865"&gt;الوظيفة:&lt;/strong&gt; ملفات مثل:&lt;/p&gt;
&lt;ul data-end="1021" data-start="891"&gt;
&lt;li data-end="956" data-start="891"&gt;
&lt;p data-end="956" data-start="893"&gt;&lt;code data-end="917" data-start="893"&gt;application.properties&lt;/code&gt; أو &lt;code data-end="938" data-start="921"&gt;application.yml&lt;/code&gt; (إعدادات المشروع)&lt;/p&gt;
&lt;/li&gt;
&lt;li data-end="990" data-start="959"&gt;
&lt;p data-end="990" data-start="961"&gt;قوالب Thymeleaf أو ملفات HTML&lt;/p&gt;
&lt;/li&gt;
&lt;li data-end="1021" data-start="993"&gt;
&lt;p data-end="1021" data-start="995"&gt;ملفات JSON، XML، صور، إلخ.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-end="1037" data-start="1023"&gt;&#128193; &lt;code data-end="1037" data-start="1031"&gt;test&lt;/code&gt;&lt;/h4&gt;
&lt;ul data-end="1201" data-start="1038"&gt;
&lt;li data-end="1130" data-start="1038"&gt;
&lt;p data-end="1130" data-start="1040"&gt;&lt;strong data-end="1050" data-start="1040"&gt;الوصف:&lt;/strong&gt; يحتوي على اختبارات الوحدة (Unit Tests) أو اختبارات التكامل (Integration Tests).&lt;/p&gt;
&lt;/li&gt;
&lt;li data-end="1201" data-start="1131"&gt;
&lt;p data-end="1201" data-start="1133"&gt;&lt;strong data-end="1145" data-start="1133"&gt;الوظيفة:&lt;/strong&gt; تنفذ الكود لاختبار صحة الأداء باستخدام JUnit أو TestNG.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;h2 style="text-align: right;"&gt;&#128193; &lt;code data-end="1223" data-start="1215"&gt;target&lt;/code&gt;&lt;/h2&gt;
&lt;ul data-end="1375" data-start="1224"&gt;
&lt;li data-end="1279" data-start="1224"&gt;
&lt;p data-end="1279" data-start="1226"&gt;&lt;strong data-end="1236" data-start="1226"&gt;الوصف:&lt;/strong&gt; مجلد يتم إنشاؤه تلقائيًا عند بناء المشروع.&lt;/p&gt;
&lt;/li&gt;
&lt;li data-end="1375" data-start="1280"&gt;
&lt;p data-end="1375" data-start="1282"&gt;&lt;strong data-end="1294" data-start="1282"&gt;الوظيفة:&lt;/strong&gt; يحتوي على ملفات الـ &lt;code data-end="1323" data-start="1315"&gt;.class&lt;/code&gt; المترجمة، وملف الـ &lt;code data-end="1349" data-start="1343"&gt;.jar&lt;/code&gt; النهائي، ونتائج الاختبار.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;h2 style="text-align: right;"&gt;&#128196; &lt;code data-end="1405" data-start="1389"&gt;.gitattributes&lt;/code&gt;&lt;/h2&gt;
&lt;ul data-end="1495" data-start="1406"&gt;
&lt;li data-end="1495" data-start="1406"&gt;
&lt;p data-end="1495" data-start="1408"&gt;&lt;strong data-end="1418" data-start="1408"&gt;الوصف:&lt;/strong&gt; إعدادات خاصة بـ Git لتحديد سمات الملفات، مثل الترميز أو معالجة نهاية الأسطر.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;h2 style="text-align: right;"&gt;&#128196; &lt;code data-end="1521" data-start="1509"&gt;.gitignore&lt;/code&gt;&lt;/h2&gt;
&lt;ul data-end="1613" data-start="1522"&gt;
&lt;li data-end="1613" data-start="1522"&gt;
&lt;p data-end="1613" data-start="1524"&gt;&lt;strong data-end="1534" data-start="1524"&gt;الوصف:&lt;/strong&gt; يحدد الملفات والمجلدات التي يجب تجاهلها في Git (مثل &lt;code data-end="1596" data-start="1587"&gt;target/&lt;/code&gt;, &lt;code data-end="1606" data-start="1598"&gt;.idea/&lt;/code&gt;, إلخ).&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;h2 style="text-align: right;"&gt;&#128196; &lt;code data-end="1636" data-start="1627"&gt;HELP.md&lt;/code&gt;&lt;/h2&gt;
&lt;ul data-end="1797" data-start="1637"&gt;
&lt;li data-end="1735" data-start="1637"&gt;
&lt;p data-end="1735" data-start="1639"&gt;&lt;strong data-end="1649" data-start="1639"&gt;الوصف:&lt;/strong&gt; ملف توثيق اختياري يتم إنشاؤه غالباً تلقائياً عند إنشاء المشروع عبر Spring Initializr.&lt;/p&gt;
&lt;/li&gt;
&lt;li data-end="1797" data-start="1736"&gt;
&lt;p data-end="1797" data-start="1738"&gt;&lt;strong data-end="1750" data-start="1738"&gt;الوظيفة:&lt;/strong&gt; يحتوي على روابط مفيدة وتوجيهات لتطوير المشروع.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;h2 style="text-align: right;"&gt;&#128196; &lt;code data-end="1817" data-start="1811"&gt;mvnw&lt;/code&gt; و &lt;code data-end="1830" data-start="1820"&gt;mvnw.cmd&lt;/code&gt;&lt;/h2&gt;
&lt;ul data-end="1972" data-start="1831"&gt;
&lt;li data-end="1895" data-start="1831"&gt;
&lt;p data-end="1895" data-start="1833"&gt;&lt;strong data-end="1843" data-start="1833"&gt;الوصف:&lt;/strong&gt; أدوات Maven Wrapper لتشغيل Maven محلياً دون تثبيته.&lt;/p&gt;
&lt;/li&gt;
&lt;li data-end="1972" data-start="1896"&gt;
&lt;p data-end="1910" data-start="1898"&gt;&lt;strong data-end="1910" data-start="1898"&gt;الوظيفة:&lt;/strong&gt;&lt;/p&gt;
&lt;/li&gt;&lt;ul data-end="1972" data-start="1913"&gt;
&lt;li data-end="1941" data-start="1913"&gt;
&lt;p data-end="1941" data-start="1915"&gt;&lt;code data-end="1921" data-start="1915"&gt;mvnw&lt;/code&gt; = لنظام Linux/macOS&lt;/p&gt;
&lt;/li&gt;
&lt;li data-end="1972" data-start="1944"&gt;
&lt;p data-end="1972" data-start="1946"&gt;&lt;code data-end="1956" data-start="1946"&gt;mvnw.cmd&lt;/code&gt; = لنظام Windows&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;h2 style="text-align: right;"&gt;&#128196; &lt;code data-end="1995" data-start="1986"&gt;pom.xml&lt;/code&gt;&lt;/h2&gt;
&lt;ul data-end="2189" data-start="1996"&gt;
&lt;li data-end="2032" data-start="1996"&gt;
&lt;p data-end="2032" data-start="1998"&gt;&lt;strong data-end="2008" data-start="1998"&gt;الوصف:&lt;/strong&gt; أهم ملف في مشروع Maven.&lt;/p&gt;
&lt;/li&gt;
&lt;li data-end="2189" data-start="2033"&gt;
&lt;p data-end="2073" data-start="2035"&gt;&lt;strong data-end="2047" data-start="2035"&gt;الوظيفة:&lt;/strong&gt; يحدد إعدادات المشروع مثل:&lt;/p&gt;
&lt;ul data-end="2189" data-start="2076"&gt;
&lt;li data-end="2103" data-start="2076"&gt;
&lt;p data-end="2103" data-start="2078"&gt;الإعتمادات (dependencies)&lt;/p&gt;
&lt;/li&gt;
&lt;li data-end="2118" data-start="2106"&gt;
&lt;p data-end="2118" data-start="2108"&gt;إصدار Java&lt;/p&gt;
&lt;/li&gt;
&lt;li data-end="2141" data-start="2121"&gt;
&lt;p data-end="2141" data-start="2123"&gt;الإضافات (plugins)&lt;/p&gt;
&lt;/li&gt;
&lt;li data-end="2189" data-start="2144"&gt;
&lt;p data-end="2189" data-start="2146"&gt;اسم المشروع والمجموعة (groupId, artifactId)&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://lh3.googleusercontent.com/gg-dl/AJfQ9KTJeMpplsFqldfdV6sOzPHk2X6Y5YeFwlgYP4FK6ehptV45ZM8dZX0w8qgXw4CZfsJLI0dMIMDFMqhxXHOROh4dyfn1bSJnjyMJlfUdoAOQsFVmjdlWXhP1FVhedY1VE357QFc6QB-70zQNQqXQIX4LFDafyGjJm6P9P73yM9pQr2R7sw=s72-c" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>5 - ماهو Maven وكيف يعمل؟</title><link>http://muteealjabri.blogspot.com/2025/07/5-maven.html</link><category>spring-boot</category><author>noreply@blogger.com (muteealjabri.blogspot.com)</author><pubDate>Tue, 8 Jul 2025 14:30:00 +0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-5547022875870167028.post-4437906557472542491</guid><description>&lt;p&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEiAlWykCwezGDqtGKGWd1i41yvFFeZ-P8eqNYiAuTPnM2fpdC0_hNdM-n43Alc8LzpssNkRBjTwIGCAS6Pwh7lfN9aJDukifR5PjQ5HoYGn1K45Cbnyp2pAcMODCqO-rkP-nPLwIHPhqq4ivyM4aT9dhULtDFzx5SnVS-sX6_Jkv-4NSSU8bCGMZoiX0RRO" style="margin-left: 1em; margin-right: 1em; text-align: center;"&gt;&lt;img data-original-height="1024" data-original-width="1024" height="320" src="https://blogger.googleusercontent.com/img/a/AVvXsEiAlWykCwezGDqtGKGWd1i41yvFFeZ-P8eqNYiAuTPnM2fpdC0_hNdM-n43Alc8LzpssNkRBjTwIGCAS6Pwh7lfN9aJDukifR5PjQ5HoYGn1K45Cbnyp2pAcMODCqO-rkP-nPLwIHPhqq4ivyM4aT9dhULtDFzx5SnVS-sX6_Jkv-4NSSU8bCGMZoiX0RRO=w320-h320" width="320" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;h2 style="text-align: right;"&gt;&lt;br /&gt;&lt;p style="font-size: medium; font-weight: 400;"&gt;&amp;nbsp;في هذا المقال سوف نتعرف بنظرة سريعة حول اداة Maven والتي كثير مانسمع عنها ..&lt;/p&gt;&lt;/h2&gt;&lt;h2&gt;&lt;/h2&gt;&lt;h2 style="text-align: right;"&gt;Maven and Spring boot&lt;/h2&gt;&lt;p&gt;هناك علاقة قوية بين Maven و Spring boot&amp;nbsp; وذلك عندما نقوم بانشاء مشروع spring boot&amp;nbsp; باستخدام موقع start.spting.io&lt;/p&gt;&lt;p&gt;(لمزيد من التفاصيل حول ذلك اضغط هنا) يتم ذلك ايضا بانشاء مشروع maven&amp;nbsp; مع تلقائيا.&lt;/p&gt;&lt;h2 style="text-align: right;"&gt;ماهو Maven؟&lt;/h2&gt;&lt;p&gt;&lt;/p&gt;&lt;ul style="text-align: right;"&gt;&lt;li&gt;maven&amp;nbsp; هي عبارة عن اداء لادارة المشروع الذي لديك.&lt;/li&gt;&lt;li&gt;الاستخدام الشائع لـ Maven هي ادارة الاعتماديات dependences في مشروعك.&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&lt;h2 style="text-align: right;"&gt;ماهي المشكلة الشائعة التي يقوم Maven بحلها ؟&lt;/h2&gt;&lt;div&gt;عندما تقوم بانشاء مشروع جافا ففي بعض الاحيان تكون محتاج لاضافة مكتبات خارجية لمشروعك مثل : مكتبات الاتصال بقواعد البيانات او مكتبات http وغيرها من كثير من المكتبات ويتم ذلك قديما بتحميل ملفات jar واضافتها يدويا الى مشروعك عبر اضافتها الى build path أو class path (المبرمجين القدامى يعرفون ذلك).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;h2 style="text-align: right;"&gt;ماذا لو كان مشروعك بدون Maven؟&lt;/h2&gt;&lt;div&gt;لنتفرض ان لديك مشروعا لايستخدم اداة maven واردت ان تضيف مكتبات خارجية اردت استخدامها في مشروعك .. ماذا يعني ذلك وماذا ستفعل؟&lt;/div&gt;&lt;div&gt;&lt;ul style="text-align: right;"&gt;&lt;li&gt;اولا ستقوم بالذهاب الى الموقع الرسمي لكل مكتبة وتقوم بتزيل ملف jar الخاص بها.&lt;/li&gt;&lt;li&gt;ستقوم بتجميع كل تلك الملفات وتقوم باضافتها الى المشروع الى build path | class path .&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;اليست العملية متعبة وصعبة .. وهنا يظهر maven ليقدم لك الحل.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;h2 style="text-align: right;"&gt;مشروعك باستخدام أداة Maven؟&lt;/h2&gt;&lt;div&gt;عندما يكون مشروعك يستخدم Maven لادارة الاعتماديات يتم ذلك عبر هذه الخطوات:&lt;/div&gt;&lt;div&gt;&lt;ul style="text-align: right;"&gt;&lt;li&gt;تقوم باخبار Maven ان مشروعك يستخدم بعض المكتبات الخارجية وسوف يتم شرح ذلك بالتفصيل.&lt;/li&gt;&lt;li&gt;يقوم Maven بتنزيل جميع المكتبات التي قمت باخبار Maven ان يقوم بتنزيلها من الانترنت.&lt;/li&gt;&lt;li&gt;يقوم Maven بربط تلك كل المكتبات وجعلها متاحة للاستخدام في مشروعك.&lt;/li&gt;&lt;/ul&gt;&lt;h2 style="text-align: right;"&gt;كيف يعمل Maven ؟&lt;/h2&gt;&lt;/div&gt;&lt;div&gt;يعمل maven&amp;nbsp; بالخطوات التالية:&lt;/div&gt;&lt;div&gt;&lt;ol style="text-align: right;"&gt;&lt;li&gt;يكون هناك ملف خاص بالاعدادات في مشروع ويتم فيه اضافة المكتبات الخارجية التي تريدها في مشروعك.&lt;/li&gt;&lt;li&gt;يتم فحص الكاش المحلي&amp;nbsp; فإذا كان هناك بعض المكتبات قد تمت اضافتها من قبل في مشروعك فيتم تحميلها واضافتها لمشروعك من التخزين المحلي.&lt;/li&gt;&lt;li&gt;اذا كانت المكتبات غير موجودة في النخزين المحلي يتم تحميلها عبر الانترنت واضافتها لمشروعك.&lt;/li&gt;&lt;li&gt;يتم تخزين المكتبات التي تم تحميلها من الانترنت الى التخزين المحلي لكي يتم استخدامها لاحقا.&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEjO_gLSUEfrBhh4YC3NdVw3WcCNZCfyFezbQgNGzWeMechb4gYLVsGIigWnu5pF0UvKR57ipNPXmAIg6q2qCh-i1fqeeXx0l2TCChj3CmQ6Rvpx68_u3rVHSGpAV1Lb2LDpb9RwkYcMpm6RIOeJFhZdfZ5LKIcDMq25pX5p7zMu2ouKGgcva1W1oUjJ2yNd" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img data-original-height="1024" data-original-width="1024" height="400" src="https://blogger.googleusercontent.com/img/a/AVvXsEjO_gLSUEfrBhh4YC3NdVw3WcCNZCfyFezbQgNGzWeMechb4gYLVsGIigWnu5pF0UvKR57ipNPXmAIg6q2qCh-i1fqeeXx0l2TCChj3CmQ6Rvpx68_u3rVHSGpAV1Lb2LDpb9RwkYcMpm6RIOeJFhZdfZ5LKIcDMq25pX5p7zMu2ouKGgcva1W1oUjJ2yNd=w400-h400" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/a/AVvXsEiAlWykCwezGDqtGKGWd1i41yvFFeZ-P8eqNYiAuTPnM2fpdC0_hNdM-n43Alc8LzpssNkRBjTwIGCAS6Pwh7lfN9aJDukifR5PjQ5HoYGn1K45Cbnyp2pAcMODCqO-rkP-nPLwIHPhqq4ivyM4aT9dhULtDFzx5SnVS-sX6_Jkv-4NSSU8bCGMZoiX0RRO=s72-w320-h320-c" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>4-ما هي تقنية spring?</title><link>http://muteealjabri.blogspot.com/2025/07/4-spring.html</link><category>spring-boot</category><author>noreply@blogger.com (muteealjabri.blogspot.com)</author><pubDate>Mon, 7 Jul 2025 22:32:00 +0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-5547022875870167028.post-5120453884095258533</guid><description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEjjcN2Qcv5GtL5kaJ6EiM4rniK2Yv1kNT0_jj_LTzDVl6y3cZi8MYkWMckBbvgXw1KQ7mDoRKUeWhG5QiAyQYw90mDEe1xz659SsaWryySpFlkbHCVarC19fIKSidAtpLJOPWGRPqKEGahfUs3_OQraF_ZDKBERrteuL5UHDOgddyYNlZMyx_Kar_lShOLD" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img data-original-height="1024" data-original-width="1024" height="400" src="https://blogger.googleusercontent.com/img/a/AVvXsEjjcN2Qcv5GtL5kaJ6EiM4rniK2Yv1kNT0_jj_LTzDVl6y3cZi8MYkWMckBbvgXw1KQ7mDoRKUeWhG5QiAyQYw90mDEe1xz659SsaWryySpFlkbHCVarC19fIKSidAtpLJOPWGRPqKEGahfUs3_OQraF_ZDKBERrteuL5UHDOgddyYNlZMyx_Kar_lShOLD=w400-h400" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;h2 data-end="179" data-start="147"&gt;&#127793; أولاً: ما هي تقنية Spring؟&lt;/h2&gt;
&lt;p data-end="332" data-start="181"&gt;&lt;strong data-end="191" data-start="181"&gt;Spring&lt;/strong&gt; هو إطار عمل (Framework) مفتوح المصدر بلغة &lt;strong data-end="242" data-start="234"&gt;Java&lt;/strong&gt;، يُستخدم لتسهيل بناء تطبيقات قوية وقابلة للتوسعة، خاصة في تطبيقات الويب وJava Enterprise.&lt;/p&gt;&lt;h3 data-end="356" data-start="334"&gt;أهم مميزات Spring:&lt;/h3&gt;&lt;ul data-end="663" data-start="357"&gt;
&lt;li data-end="431" data-start="357"&gt;
&lt;p data-end="431" data-start="359"&gt;&#128230; &lt;strong data-end="391" data-start="362"&gt;Dependency Injection (DI)&lt;/strong&gt;: إدارة الاعتماديات بين الكائنات بسهولة.&lt;/p&gt;
&lt;/li&gt;
&lt;li data-end="521" data-start="432"&gt;
&lt;p data-end="521" data-start="434"&gt;&#128257; &lt;strong data-end="467" data-start="437"&gt;Inversion of Control (IoC)&lt;/strong&gt;: نقل مسؤولية إنشاء الكائنات من الكود إلى الإطار نفسه.&lt;/p&gt;
&lt;/li&gt;
&lt;li data-end="562" data-start="522"&gt;
&lt;p data-end="562" data-start="524"&gt;&#128274; &lt;strong data-end="541" data-start="527"&gt;أمان متقدم&lt;/strong&gt; عبر Spring Security.&lt;/p&gt;
&lt;/li&gt;
&lt;li data-end="612" data-start="563"&gt;
&lt;p data-end="612" data-start="565"&gt;&#128736;️ دعم لتقنيات مثل JDBC، JPA، MVC، AOP وغيرها.&lt;/p&gt;
&lt;/li&gt;
&lt;li data-end="663" data-start="613"&gt;
&lt;p data-end="663" data-start="615"&gt;&#129309; قابل للتكامل مع Hibernate، Thymeleaf، وغيرها.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;&lt;p data-end="332" data-start="181"&gt;

&lt;/p&gt;&lt;blockquote data-end="811" data-start="665"&gt;
&lt;p data-end="811" data-start="667"&gt;&lt;strong data-end="694" data-start="667"&gt;مشكلة Spring التقليدية:&lt;/strong&gt; إعداد كثير ومعقد (configuration ثقيل)، يجب إنشاء ملفات XML أو Java Config كثيرة، مما يجعل المشروع بطيئًا في الإعداد.&lt;/p&gt;&lt;/blockquote&gt;&lt;h2 data-end="842" data-start="818"&gt;&#128640; ما هو Spring Boot؟&lt;/h2&gt;
&lt;p data-end="945" data-start="844"&gt;&lt;/p&gt;&lt;p data-end="945" data-start="844"&gt;&lt;strong data-end="859" data-start="844"&gt;Spring Boot&lt;/strong&gt; هو "امتداد" لإطار Spring التقليدي، تم تطويره لتبسيط عملية بناء وتشغيل تطبيقات Spring.&lt;/p&gt;
&lt;h3 data-end="970" data-start="947"&gt;مميزات Spring Boot:&lt;/h3&gt;
&lt;ul data-end="1269" data-start="971"&gt;
&lt;li data-end="1014" data-start="971"&gt;
&lt;p data-end="1014" data-start="973"&gt;⚙️ &lt;strong data-end="1013" data-start="976"&gt;إعداد تلقائي (Auto Configuration)&lt;/strong&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li data-end="1098" data-start="1015"&gt;
&lt;p data-end="1098" data-start="1017"&gt;&#128230; يأتي مع &lt;strong data-end="1045" data-start="1028"&gt;خادم ويب مدمج&lt;/strong&gt; (مثل Tomcat أو Jetty)، فلا تحتاج لتثبيت سيرفر خارجي.&lt;/p&gt;
&lt;/li&gt;
&lt;li data-end="1183" data-start="1099"&gt;
&lt;p data-end="1183" data-start="1101"&gt;✅ &lt;strong data-end="1125" data-start="1103"&gt;لا حاجة لملفات XML&lt;/strong&gt; للتكوين (أغلب التكوين يتم عبر annotations أو properties).&lt;/p&gt;
&lt;/li&gt;
&lt;li data-end="1219" data-start="1184"&gt;
&lt;p data-end="1219" data-start="1186"&gt;&#129514; جاهز للاختبار والتشغيل مباشرة.&lt;/p&gt;
&lt;/li&gt;
&lt;li data-end="1269" data-start="1220"&gt;
&lt;p data-end="1269" data-start="1222"&gt;☕ مشروع جاهز بـ &lt;code data-end="1246" data-start="1238"&gt;main()&lt;/code&gt; لتشغيل التطبيق بسهولة.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ببساطة: &lt;strong data-end="1351" data-start="1281"&gt;Spring Boot = Spring + إعداد تلقائي + أدوات تسهل التطوير بشكل كبير&lt;/strong&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;
&lt;/p&gt;&lt;p data-end="1511" data-start="1390"&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;h2 data-end="1388" data-start="1358"&gt;⚡ Spring Boot 3: ما الجديد؟&lt;/h2&gt;&lt;div&gt;&lt;p data-end="1511" data-start="1390"&gt;&lt;strong data-end="1407" data-start="1390"&gt;Spring Boot 3&lt;/strong&gt; صدر مع تغييرات جوهرية عن الإصدارات السابقة. يعتمد على &lt;strong data-end="1484" data-start="1462"&gt;Spring Framework 6&lt;/strong&gt; ويدعم فقط Java 17 أو أحدث.&lt;/p&gt;
&lt;h3 data-end="1542" data-start="1513"&gt;أبرز ميزات Spring Boot 3:&lt;/h3&gt;
&lt;ul style="text-align: right;"&gt;&lt;li&gt;&#129521; &lt;strong data-end="1570" data-start="1549"&gt;دعم Jakarta EE 10&lt;/strong&gt; بدلًا من Java EE.&lt;/li&gt;&lt;li&gt;☕ &lt;strong data-end="1670" data-start="1646"&gt;دعم حصري لـ Java 17+&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;&#128737;️ تحسينات على Spring Security وObservability (مثل Actuator).&lt;/li&gt;&lt;/ul&gt;&lt;ul style="text-align: right;"&gt;&lt;li&gt;&#128257; &lt;strong data-end="1819" data-start="1781"&gt;دعم محسّن لـ GraalVM Native Images&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul style="text-align: right;"&gt;&lt;li&gt;&#129529; إزالة بعض التقنيات القديمة أو المهجورة (deprecated).&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;h2 data-end="1976" data-start="1927"&gt;&#127386; الفروقات بين Spring التقليدي وSpring Boot 3&lt;/h2&gt;&lt;div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEjDxwAJ_Jp_uwLlpng9E2-s0mB1JR-fO0Rnu-1RHn7aUZTO5mxBODQzM09HYa4bKuQCr1s6HImby1W_A76buEJooReifS481GF6hSkoMrdzuLagbykT8z1sqTSD7rc7551VNmt2ffdJzbDTFjYiUK-QcrUWzraOhqLKIfRDe1evjgGWNimVY5FDbnYKDCDr" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img data-original-height="482" data-original-width="947" height="326" src="https://blogger.googleusercontent.com/img/a/AVvXsEjDxwAJ_Jp_uwLlpng9E2-s0mB1JR-fO0Rnu-1RHn7aUZTO5mxBODQzM09HYa4bKuQCr1s6HImby1W_A76buEJooReifS481GF6hSkoMrdzuLagbykT8z1sqTSD7rc7551VNmt2ffdJzbDTFjYiUK-QcrUWzraOhqLKIfRDe1evjgGWNimVY5FDbnYKDCDr=w640-h326" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;h2 data-end="2987" data-start="2975"&gt;&#129504; خلاصة:&lt;/h2&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;ul style="text-align: right;"&gt;&lt;li&gt;Spring: إطار عمل قوي، لكنه يتطلب إعداد يدوي معقد.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;ul style="text-align: right;"&gt;&lt;li&gt;Spring Boot: يسهل عليك استخدام Spring، مع إعداد تلقائي وتشغيل سريع.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;ul style="text-align: right;"&gt;&lt;li&gt;Spring Boot 3: النسخة الحديثة التي تدعم Jakarta EE وJava 17+، مع تحسينات للأداء والأمان.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div class="_tableContainer_80l1q_1"&gt;&lt;div class="_tableWrapper_80l1q_14 group flex w-fit flex-col-reverse" tabindex="-1"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/a/AVvXsEjjcN2Qcv5GtL5kaJ6EiM4rniK2Yv1kNT0_jj_LTzDVl6y3cZi8MYkWMckBbvgXw1KQ7mDoRKUeWhG5QiAyQYw90mDEe1xz659SsaWryySpFlkbHCVarC19fIKSidAtpLJOPWGRPqKEGahfUs3_OQraF_ZDKBERrteuL5UHDOgddyYNlZMyx_Kar_lShOLD=s72-w400-h400-c" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>3-أول تطبيق Spring Boot</title><link>http://muteealjabri.blogspot.com/2025/07/3-spring-boot.html</link><category>spring-boot</category><author>noreply@blogger.com (muteealjabri.blogspot.com)</author><pubDate>Mon, 7 Jul 2025 21:52:00 +0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-5547022875870167028.post-7491896427468523309</guid><description>&lt;p&gt;&amp;nbsp;في هذا المقال، سنتعرف على كيفية إنشاء &lt;strong data-end="200" data-start="175"&gt;&amp;nbsp; &amp;nbsp;Api End Point REST بسيطة&lt;/strong&gt; باستخدام إطار العمل&amp;nbsp;&amp;nbsp;&lt;strong data-end="243" data-start="228"&gt;Spring Boot&lt;/strong&gt;. الكود التالي يمثل تطبيقًا صغيرًا يعرض رسالة ترحيبية عند زيارة الرابط الجذر ("/").&lt;/p&gt;&lt;p&gt;
  &lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEj71TwuRY733JFwSvuyrS7_MTH-sZrPVTVOjZoLTW0AALyQVqa5x_VYHncmv0QE-FZHF9t2q-xWNIIZBo0bg3EXsNCIHkjifqwB8229dk2FWDphNyfG93Q3ZEyq96AZQZUg1CixjUmyC4Vk0w8ZvNimJZyj03YGOodywgKsBIPULkU5qEETyR1swH3CZ_qN" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img data-original-height="512" data-original-width="772" height="424" src="https://blogger.googleusercontent.com/img/a/AVvXsEj71TwuRY733JFwSvuyrS7_MTH-sZrPVTVOjZoLTW0AALyQVqa5x_VYHncmv0QE-FZHF9t2q-xWNIIZBo0bg3EXsNCIHkjifqwB8229dk2FWDphNyfG93Q3ZEyq96AZQZUg1CixjUmyC4Vk0w8ZvNimJZyj03YGOodywgKsBIPULkU5qEETyR1swH3CZ_qN=w640-h424" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;ونأتي الان لشرح الاكواد بالتفصيل سطربسطر:&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div&gt;&lt;h2 data-end="162" data-start="133"&gt;&#128295; أولاً: الحزمة (Package)&lt;/h2&gt;&lt;div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEgQGZDBgVrzHJNdCBw8zhABPwt9w0CJtUyyiptgI_yrUgffzIuFEtb9ut6RfUrrNLOhZsu193Uc1-QkSlH5XPpX6Gmk87oKy9SY_tyMjxy1loTpHM-AP-_3itGA7AoLRzPEYvDVQJ8s7TpWmb0arGLHqYW8BJPi-YWpoccJw4jjxTDorswOmNiNjjt9zIR_" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img data-original-height="48" data-original-width="571" height="34" src="https://blogger.googleusercontent.com/img/a/AVvXsEgQGZDBgVrzHJNdCBw8zhABPwt9w0CJtUyyiptgI_yrUgffzIuFEtb9ut6RfUrrNLOhZsu193Uc1-QkSlH5XPpX6Gmk87oKy9SY_tyMjxy1loTpHM-AP-_3itGA7AoLRzPEYvDVQJ8s7TpWmb0arGLHqYW8BJPi-YWpoccJw4jjxTDorswOmNiNjjt9zIR_=w400-h34" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul style="text-align: right;"&gt;&lt;li&gt;هذا السطر يحدد &lt;strong data-end="275" data-start="248"&gt;المسار الحزمي (package)&lt;/strong&gt; للكلاس داخل المشروع.&lt;/li&gt;&lt;li&gt;التنظيم بالحزم يجعل المشروع أكثر قابلية للإدارة، وهنا يتم تنظيم الكود داخل الحزمة &lt;code data-end="429" data-start="381"&gt;com.mutee.learnSpringboot.learnSpringBoot.rest&lt;/code&gt;.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;h2 data-end="462" data-start="437"&gt;&#128230; الاستيراد (Imports)&lt;/h2&gt;&lt;div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEg3bnRhW2IujeOiQ1-XRu9xJGBlABJzcXXybAcFfJNza3zkZPavApCBnr7TwfnZFj_NXf4Qw4JHx5J40pBHhDOelVSXcBICPtzbtsCFn0UzleHffoI9soLe21VIB3f-95MdXOOW_wil0IzpKZATcElCpjMUBXOq7QzATuXW1r1RCx7l-VVawV5TmxmXOssa" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img data-original-height="85" data-original-width="637" height="54" src="https://blogger.googleusercontent.com/img/a/AVvXsEg3bnRhW2IujeOiQ1-XRu9xJGBlABJzcXXybAcFfJNza3zkZPavApCBnr7TwfnZFj_NXf4Qw4JHx5J40pBHhDOelVSXcBICPtzbtsCFn0UzleHffoI9soLe21VIB3f-95MdXOOW_wil0IzpKZATcElCpjMUBXOq7QzATuXW1r1RCx7l-VVawV5TmxmXOssa=w400-h54" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;blockquote style="border: none; margin: 0px 40px 0px 0px; padding: 0px;"&gt;&lt;div class="separator" style="clear: both; text-align: right;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;ul style="text-align: right;"&gt;&lt;li&gt;@RestController: من مكتبة Spring، وتُستخدم لجعل الكلاس يستجيب لطلبات HTTP (عادةً تُستخدم في REST APIs).&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;ul style="text-align: right;"&gt;&lt;li&gt;@GetMapping: تحدد أن هذه الدالة ستُستدعى عندما يستقبل السيرفر طلبًا من نوع GET على رابط معين.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;h2 data-end="839" data-start="819"&gt;&#127919; الكلاس الرئيسي&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEh2aAXfo0M_8pYmUcYnUYbEXesYcGjqom7ljyQl9LuDBb_eQNs_D6PTlOEk9w-BYMlTozHFkzMEPnrIpVVrZMGK3aMbrqIXssCFoku8C-ZjZSNuOQtLxAx4Ogo1MHNoISrkcudN9ONhCqDlTGhZzXC1istVpfQrhy_Ls4f_nFwkPwP6vU2-i2iXfE4efdEn" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="" data-original-height="77" data-original-width="327" height="75" src="https://blogger.googleusercontent.com/img/a/AVvXsEh2aAXfo0M_8pYmUcYnUYbEXesYcGjqom7ljyQl9LuDBb_eQNs_D6PTlOEk9w-BYMlTozHFkzMEPnrIpVVrZMGK3aMbrqIXssCFoku8C-ZjZSNuOQtLxAx4Ogo1MHNoISrkcudN9ONhCqDlTGhZzXC1istVpfQrhy_Ls4f_nFwkPwP6vU2-i2iXfE4efdEn" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;ul style="text-align: right;"&gt;&lt;li&gt;@RestController: هذه التعليمة تجعل Spring Boot يفهم أن هذا الكلاس هو "Controller" (أي: وحدة تحكم تستقبل طلبات الـ HTTP وتُرجع ردود).&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;ul style="text-align: right;"&gt;&lt;li&gt;الكلاس يُسمى FunRestController، ويمكن تسميته بأي اسم، لكن الاسم يوضح أنه مسؤول عن التحكم في الطلبات القادمة للـ REST API.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;h2 data-end="1206" data-start="1174"&gt;&#127760; النقطة النهائية (Endpoint)&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEjM5K5Ay7YjXZx7Jg8OkDZ_nN8QoKoaNV62m_Qbje8owODo0Rb0gbRj3mqz8SrR2IpHjBBkg__dnYS7o_E0N0wB2sZ2S4vcTkQI4wSGzu_6Ppb9U9FkGSxZhpEgG552LvC_oZ5qYqI-_0bqBoCu0ZPe12K6dm2uYuyghCHBk8y7DqTSrDw06ANJMKKBab1O" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="" data-original-height="137" data-original-width="340" height="129" src="https://blogger.googleusercontent.com/img/a/AVvXsEjM5K5Ay7YjXZx7Jg8OkDZ_nN8QoKoaNV62m_Qbje8owODo0Rb0gbRj3mqz8SrR2IpHjBBkg__dnYS7o_E0N0wB2sZ2S4vcTkQI4wSGzu_6Ppb9U9FkGSxZhpEgG552LvC_oZ5qYqI-_0bqBoCu0ZPe12K6dm2uYuyghCHBk8y7DqTSrDw06ANJMKKBab1O" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;h2 style="text-align: right;"&gt;التحليل:&lt;/h2&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;ul style="text-align: right;"&gt;&lt;li&gt;@GetMapping("/"):&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;ul style="text-align: right;"&gt;&lt;li&gt;تُستخدم لتحديد أن هذه الدالة مرتبطة بمسار "/" (أي: العنوان الجذري للسيرفر).&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;ul style="text-align: right;"&gt;&lt;li&gt;عندما يفتح المستخدم المتصفح على العنوان: http://localhost:8080/ فسيتم تنفيذ هذه الدالة.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;ul style="text-align: right;"&gt;&lt;li&gt;public String sayHello(): دالة تُعيد نص بسيط من نوع String.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;ul style="text-align: right;"&gt;&lt;li&gt;return "Hello World";: الجملة التي سترجع للمستخدم عند فتح الرابط. أي أن المستخدم سيرى "Hello World" في المتصفح.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;h2 data-end="1712" data-start="1690"&gt;✅ النتيجة النهائية:&lt;/h2&gt;&lt;div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEiRWIgirY8-WddmAkwv2S5fCAqgy5XXAsNHMPOz4MyuYtvB5L7HICShWgIS5xJNpvj10LSU83ZeO8q85sz6A64tQl5Y6YzLitNVCOS69gNis6lbNCZQRfntsjvyHW6PWSjMAjxoNHGQRvV6IdeFLSm8-HpKsmfWnDXvngnhjq0YxkcJ7VQys_DCwhHt-0r7" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img data-original-height="237" data-original-width="562" height="169" src="https://blogger.googleusercontent.com/img/a/AVvXsEiRWIgirY8-WddmAkwv2S5fCAqgy5XXAsNHMPOz4MyuYtvB5L7HICShWgIS5xJNpvj10LSU83ZeO8q85sz6A64tQl5Y6YzLitNVCOS69gNis6lbNCZQRfntsjvyHW6PWSjMAjxoNHGQRvV6IdeFLSm8-HpKsmfWnDXvngnhjq0YxkcJ7VQys_DCwhHt-0r7=w400-h169" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;
&lt;p data-end="1806" data-start="1713"&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;pre class="overflow-visible!" data-end="596" data-start="463"&gt;&lt;div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary"&gt;&lt;div class="overflow-y-auto p-4" dir="ltr"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;pre class="overflow-visible!" data-end="230" data-start="163"&gt;&lt;div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary"&gt;&lt;div class="overflow-y-auto p-4" dir="ltr"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/a/AVvXsEj71TwuRY733JFwSvuyrS7_MTH-sZrPVTVOjZoLTW0AALyQVqa5x_VYHncmv0QE-FZHF9t2q-xWNIIZBo0bg3EXsNCIHkjifqwB8229dk2FWDphNyfG93Q3ZEyq96AZQZUg1CixjUmyC4Vk0w8ZvNimJZyj03YGOodywgKsBIPULkU5qEETyR1swH3CZ_qN=s72-w640-h424-c" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>2-ما هو start.spring.io؟</title><link>http://muteealjabri.blogspot.com/2025/07/2-startspringio.html</link><category>spring-boot</category><author>noreply@blogger.com (muteealjabri.blogspot.com)</author><pubDate>Sun, 6 Jul 2025 13:19:00 +0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-5547022875870167028.post-3172392069308064766</guid><description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEhqj7-3VQG9ut2eGdFBa0ZQKIcHfduXNGTyIl_dgIMCJgMPZ0gamr4hp-ltZVYOzGN8yxEmmHCYgCziK-RN9WamO79pHi-b1RdlHEykc2GEK4lh2e0iK-3xIuQSDQNaCctEZvTbJezx5c1-7qpDYBU7ax9f49UflvznFcrIxE2222xS0fL_rq210RuEQ6lD" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img data-original-height="720" data-original-width="1080" height="426" src="https://blogger.googleusercontent.com/img/a/AVvXsEhqj7-3VQG9ut2eGdFBa0ZQKIcHfduXNGTyIl_dgIMCJgMPZ0gamr4hp-ltZVYOzGN8yxEmmHCYgCziK-RN9WamO79pHi-b1RdlHEykc2GEK4lh2e0iK-3xIuQSDQNaCctEZvTbJezx5c1-7qpDYBU7ax9f49UflvznFcrIxE2222xS0fL_rq210RuEQ6lD=w640-h426" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;h2 data-end="176" data-start="148" style="text-align: right;"&gt;&#128994; ما هو start.spring.io؟&lt;/h2&gt;
&lt;p data-end="293" data-start="177"&gt;هو مولّد مشروع Spring Boot، يتيح لك إعداد مشروعك بالخيارات التي تريدها (لغة – إصدار – تبعيات) ثم تحميله كملف &lt;code data-end="292" data-start="286"&gt;.zip&lt;/code&gt;.&lt;b&gt;&#128248; شرح سريع بالصور لاستخدامه:&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;h2 style="text-align: right;"&gt;1. &lt;strong data-end="356" data-start="341"&gt;ادخل الموقع&lt;/strong&gt;&lt;/h2&gt;
&lt;p data-end="435" data-start="359"&gt;&#128279; &lt;a class="" data-end="412" data-start="362" href="https://start.spring.io" rel="noopener" target="_new"&gt;https://start.spring.io&lt;/a&gt;&lt;br data-end="415" data-start="412" /&gt;
ستشوف واجهة مثل هذه:&lt;/p&gt;&lt;p data-end="435" data-start="359"&gt;&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEjkOCdR8lvgumIGtVNvAZRHyt5gFOlfB58axn364HQkD9c4cC4pyncI1X-xD8rFGOHJeGj347L-hlJ9j2oMG6eoHFJMijA2pUJecyabc-8JZzz7hbxhimYPEBSPdQO13lqz30F_fNW8MfiCjSIR-rgjqM-77j_V99ir1l5yWKYosK_9PtJerhyom5RO-t1I" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img data-original-height="875" data-original-width="1603" height="350" src="https://blogger.googleusercontent.com/img/a/AVvXsEjkOCdR8lvgumIGtVNvAZRHyt5gFOlfB58axn364HQkD9c4cC4pyncI1X-xD8rFGOHJeGj347L-hlJ9j2oMG6eoHFJMijA2pUJecyabc-8JZzz7hbxhimYPEBSPdQO13lqz30F_fNW8MfiCjSIR-rgjqM-77j_V99ir1l5yWKYosK_9PtJerhyom5RO-t1I=w640-h350" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p data-end="435" data-start="359"&gt;
&lt;/p&gt;&lt;div class="_tableContainer_80l1q_1"&gt;&lt;div class="_tableWrapper_80l1q_14 group flex w-fit flex-col-reverse" tabindex="-1"&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;h2 style="text-align: right;"&gt;2. &lt;strong data-end="543" data-start="522"&gt;اختيار الأساسيات:&lt;/strong&gt;&lt;/h2&gt;&lt;/div&gt;&lt;div&gt;&lt;strong data-end="543" data-start="522"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEjMU0S7KX3mdApoZUfQQz4OD515i9mUqJNlQHCrOLfqDSB3hlWGxRHaoB2V3iD83GJ8NuH7gz6sMy4APp5a4pIKwdQAz5W6EKv5Wpy2SxZBv5Ds1jLNgpwEc9CuclDH5OMn9yFwL7tuakdq0BMUDeVtvIb6MdAqhEbixOlwJGNVZdE4Fa06IurBIthTzTXT" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img data-original-height="235" data-original-width="1047" height="144" src="https://blogger.googleusercontent.com/img/a/AVvXsEjMU0S7KX3mdApoZUfQQz4OD515i9mUqJNlQHCrOLfqDSB3hlWGxRHaoB2V3iD83GJ8NuH7gz6sMy4APp5a4pIKwdQAz5W6EKv5Wpy2SxZBv5Ds1jLNgpwEc9CuclDH5OMn9yFwL7tuakdq0BMUDeVtvIb6MdAqhEbixOlwJGNVZdE4Fa06IurBIthTzTXT=w640-h144" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/strong&gt;&lt;h2 style="text-align: right;"&gt;&lt;strong data-end="543" data-start="522"&gt;3. &lt;strong data-end="887" data-start="870"&gt;إعداد الهوية:&lt;/strong&gt;&lt;/strong&gt;&lt;/h2&gt;&lt;/div&gt;&lt;div&gt;&lt;span data-end="543" data-start="522"&gt;&lt;span data-end="887" data-start="870"&gt;&lt;div class="separator" style="clear: both; font-weight: bold; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEickgkhux7kIGrWznrGd1tc1czHnTSePKQergNZqhkzn8VuFV45VPoWMlfqIEfXOwiN0JssQi8onnUlnaa_TnHdbqjFY4fxFok0D7B5NHWnVe7ER_G2Yg-moq9i0YhD77FdZYktK80V_m_NU-umcZoeDjZTxdPiUObc_RsqBU1oVplGZyxmBPF-9_CvzNAq" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img data-original-height="421" data-original-width="973" height="276" src="https://blogger.googleusercontent.com/img/a/AVvXsEickgkhux7kIGrWznrGd1tc1czHnTSePKQergNZqhkzn8VuFV45VPoWMlfqIEfXOwiN0JssQi8onnUlnaa_TnHdbqjFY4fxFok0D7B5NHWnVe7ER_G2Yg-moq9i0YhD77FdZYktK80V_m_NU-umcZoeDjZTxdPiUObc_RsqBU1oVplGZyxmBPF-9_CvzNAq=w640-h276" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="font-weight: bold;"&gt;&lt;strong data-end="543" data-start="522"&gt;&lt;strong data-end="887" data-start="870"&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/div&gt;&lt;h2 style="font-weight: bold; text-align: right;"&gt;4. &lt;strong data-end="1354" data-start="1320"&gt;إضافة التبعيات (Dependencies):&lt;/strong&gt;&lt;/h2&gt;
&lt;p data-end="1409" data-start="1356" style="font-weight: bold;"&gt;&lt;/p&gt;&lt;p data-end="1409" data-start="1356"&gt;اضغط على زر &lt;span data-end="1388" data-start="1368"&gt;Add Dependencies&lt;/span&gt; وأضف ما تحتاجه، مثل:&lt;/p&gt;&lt;p data-end="1409" data-start="1356"&gt;&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEinMaP58dWAeHQszPosufLh57c-xwFh8CTu90wy5Xw-w7pO25C145M9tLa-eTdsJp80xDo9F0n1Xoq1D2Hjv6wbUVlEpYIxJ2Nw27g76vVqDW6S__KnFK3DghSgbEFK47pmVv4lK_prBC5-R3w0EcqK1bYfuOL6ui2gLebEYHqwwUgWuuS3qSyomGbV0W2g" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img data-original-height="333" data-original-width="941" height="226" src="https://blogger.googleusercontent.com/img/a/AVvXsEinMaP58dWAeHQszPosufLh57c-xwFh8CTu90wy5Xw-w7pO25C145M9tLa-eTdsJp80xDo9F0n1Xoq1D2Hjv6wbUVlEpYIxJ2Nw27g76vVqDW6S__KnFK3DghSgbEFK47pmVv4lK_prBC5-R3w0EcqK1bYfuOL6ui2gLebEYHqwwUgWuuS3qSyomGbV0W2g=w640-h226" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;p data-end="1947" data-start="1918"&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;h2 style="font-weight: bold; text-align: right;"&gt;5. &lt;strong data-end="1916" data-start="1890"&gt;إنشاء المشروع وتحميله:&lt;/strong&gt;&lt;/h2&gt;&lt;div&gt;&lt;span data-end="1916" data-start="1890"&gt;&lt;p data-end="1947" data-start="1918"&gt;بعد اختيار التبعيات، اضغط زر:&lt;/p&gt;
&lt;p data-end="1966" data-start="1949"&gt;&#128073; &lt;span data-end="1966" data-start="1952"&gt;"Generate"&lt;/span&gt;&lt;/p&gt;
&lt;p data-end="2000" data-start="1968"&gt;سيتم تحميل ملف &lt;code data-end="1989" data-start="1983"&gt;.zip&lt;/code&gt; إلى جهازك.&lt;/p&gt;&lt;h2 style="text-align: right;"&gt;6. &lt;strong data-end="2053" data-start="2014"&gt;فتح المشروع في IntelliJ أو VS Code:&lt;/strong&gt;&lt;/h2&gt;&lt;div&gt;&lt;ul style="text-align: right;"&gt;&lt;li&gt;&lt;span data-end="2053" data-start="2014"&gt;فك ضغط الملف.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span data-end="2053" data-start="2014"&gt;افتح IntelliJ → &lt;span data-end="2105" data-start="2089"&gt;Open Project&lt;/span&gt; → اختر مجلد المشروع.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span data-end="2053" data-start="2014"&gt;IntelliJ سيكتشف تلقائيًا أنه مشروع Maven ويبدأ بتحميل التبعيات.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="_tableContainer_80l1q_1" style="font-weight: bold;"&gt;&lt;div class="_tableWrapper_80l1q_14 group flex w-fit flex-col-reverse" tabindex="-1"&gt;&lt;/div&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/a/AVvXsEhqj7-3VQG9ut2eGdFBa0ZQKIcHfduXNGTyIl_dgIMCJgMPZ0gamr4hp-ltZVYOzGN8yxEmmHCYgCziK-RN9WamO79pHi-b1RdlHEykc2GEK4lh2e0iK-3xIuQSDQNaCctEZvTbJezx5c1-7qpDYBU7ax9f49UflvznFcrIxE2222xS0fL_rq210RuEQ6lD=s72-w640-h426-c" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total><enclosure length="65726" type="application/vnd.initializr.v2.1+json" url="https://start.spring.io"/><itunes:explicit>no</itunes:explicit><itunes:subtitle>&amp;nbsp; &#128994; ما هو start.spring.io؟ هو مولّد مشروع Spring Boot، يتيح لك إعداد مشروعك بالخيارات التي تريدها (لغة – إصدار – تبعيات) ثم تحميله كملف .zip.&#128248; شرح سريع بالصور لاستخدامه:1. ادخل الموقع &#128279; https://start.spring.io ستشوف واجهة مثل هذه: 2. اختيار الأساسيات: 3. إعداد الهوية: 4. إضافة التبعيات (Dependencies): اضغط على زر Add Dependencies وأضف ما تحتاجه، مثل: 5. إنشاء المشروع وتحميله:بعد اختيار التبعيات، اضغط زر: &#128073; "Generate" سيتم تحميل ملف .zip إلى جهازك.6. فتح المشروع في IntelliJ أو VS Code:فك ضغط الملف.افتح IntelliJ → Open Project → اختر مجلد المشروع.IntelliJ سيكتشف تلقائيًا أنه مشروع Maven ويبدأ بتحميل التبعيات.</itunes:subtitle><itunes:author>noreply@blogger.com (muteealjabri.blogspot.com)</itunes:author><itunes:summary>&amp;nbsp; &#128994; ما هو start.spring.io؟ هو مولّد مشروع Spring Boot، يتيح لك إعداد مشروعك بالخيارات التي تريدها (لغة – إصدار – تبعيات) ثم تحميله كملف .zip.&#128248; شرح سريع بالصور لاستخدامه:1. ادخل الموقع &#128279; https://start.spring.io ستشوف واجهة مثل هذه: 2. اختيار الأساسيات: 3. إعداد الهوية: 4. إضافة التبعيات (Dependencies): اضغط على زر Add Dependencies وأضف ما تحتاجه، مثل: 5. إنشاء المشروع وتحميله:بعد اختيار التبعيات، اضغط زر: &#128073; "Generate" سيتم تحميل ملف .zip إلى جهازك.6. فتح المشروع في IntelliJ أو VS Code:فك ضغط الملف.افتح IntelliJ → Open Project → اختر مجلد المشروع.IntelliJ سيكتشف تلقائيًا أنه مشروع Maven ويبدأ بتحميل التبعيات.</itunes:summary><itunes:keywords>spring-boot</itunes:keywords></item><item><title>1- نظرة ومقدمة سريعه حول Spring Boot3</title><link>http://muteealjabri.blogspot.com/2025/07/1-spring-boot3.html</link><category>spring-boot</category><author>noreply@blogger.com (muteealjabri.blogspot.com)</author><pubDate>Sun, 6 Jul 2025 12:18:00 +0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-5547022875870167028.post-1882757850144499097</guid><description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;h3 data-end="90" data-start="61"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEirYk7L-tWqD51aK5T8b0UvSgKoJjGzmmfCPK67ADfN1dP2XUU5ONllqvDlHU8f31RL-wie5s9pax6KQqWjVMMmC-xAHr0Or6zZvP8gP5z2lYH8hND-30WXE2cvEJpxjS4nTfmhRxPTyqAhbAiJPkhfggYLq2vtgOcE3qZ7MGAeyBeSY6gzW6seNdTVVez-" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img data-original-height="720" data-original-width="1080" height="266" src="https://blogger.googleusercontent.com/img/a/AVvXsEirYk7L-tWqD51aK5T8b0UvSgKoJjGzmmfCPK67ADfN1dP2XUU5ONllqvDlHU8f31RL-wie5s9pax6KQqWjVMMmC-xAHr0Or6zZvP8gP5z2lYH8hND-30WXE2cvEJpxjS4nTfmhRxPTyqAhbAiJPkhfggYLq2vtgOcE3qZ7MGAeyBeSY6gzW6seNdTVVez-=w400-h266" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/h3&gt;&lt;h3 data-end="90" data-start="61"&gt;&#127793; &lt;strong data-end="90" data-start="68"&gt;ما هو Spring Boot؟&lt;/strong&gt;&lt;/h3&gt;
&lt;p data-end="328" data-start="91"&gt;Spring Boot هو إطار عمل مبني على منصة &lt;strong data-end="139" data-start="129"&gt;Spring&lt;/strong&gt;، يُستخدم لتطوير تطبيقات Java بسرعة وكفاءة، خاصة تطبيقات الويب والخدمات المصغرة (Microservices). يوفر إعدادات تلقائية (Auto Configuration) وبيئة جاهزة للإنتاج تقلل الحاجة إلى إعدادات معقدة.&lt;/p&gt;&lt;p data-end="328" data-start="91"&gt;&lt;/p&gt;&lt;h3 data-end="373" data-start="335"&gt;&#128640; &lt;strong data-end="373" data-start="342"&gt;ما الجديد في Spring Boot 3؟&lt;/strong&gt;&lt;/h3&gt;
&lt;p data-end="528" data-start="374"&gt;Spring Boot 3 هو إصدار رئيسي (Major Release) تم إصداره بالتزامن مع &lt;strong data-end="463" data-start="441"&gt;Spring Framework 6&lt;/strong&gt;، وهو يجلب تحديثات كبيرة في البنية التحتية والتوافق. أهم الميزات&lt;/p&gt;&lt;ul style="text-align: right;"&gt;&lt;li&gt;
&lt;div&gt;&lt;span data-end="558" data-start="533"&gt;&lt;b&gt;الاعتماد على Java 17+&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul data-end="632" data-start="564"&gt;&lt;li data-end="603" data-start="564"&gt;&lt;p data-end="603" data-start="566"&gt;Spring Boot 3 يتطلب Java 17 كحد أدنى.&lt;/p&gt;&lt;/li&gt;&lt;li data-end="632" data-start="607"&gt;&lt;p data-end="632" data-start="609"&gt;يدعم Java 21 بشكل كامل.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul style="text-align: right;"&gt;&lt;li&gt;
&lt;div&gt;&lt;span data-end="658" data-start="637"&gt;&lt;b&gt;دعم Jakarta EE 10&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul data-end="765" data-start="664"&gt;&lt;li data-end="709" data-start="664"&gt;&lt;p data-end="709" data-start="666"&gt;تم نقل الحزمة من &lt;code data-end="692" data-start="683"&gt;javax.*&lt;/code&gt; إلى &lt;code data-end="708" data-start="697"&gt;jakarta.*&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;&lt;li data-end="765" data-start="713"&gt;&lt;p data-end="765" data-start="715"&gt;يتطلب تعديل في الكود عند الترقية من إصدارات سابقة.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul style="text-align: right;"&gt;&lt;li&gt;
&lt;div&gt;&lt;span data-end="805" data-start="770"&gt;&lt;b&gt;دعم محسّن لـ Native Compilation&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul data-end="926" data-start="811"&gt;&lt;li data-end="926" data-start="811"&gt;&lt;p data-end="926" data-start="813"&gt;باستخدام GraalVM يمكن تحويل التطبيق إلى ملف تنفيذي أصلي (Native Image) لتقليل استهلاك الذاكرة وتسريع بدء التشغيل.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul style="text-align: right;"&gt;&lt;li&gt;
&lt;div&gt;&lt;strong data-end="957" data-start="931"&gt;أمان Spring Security 6&lt;/strong&gt;&lt;/div&gt;&lt;/li&gt;&lt;ul data-end="1018" data-start="963"&gt;&lt;li data-end="990" data-start="963"&gt;&lt;p data-end="990" data-start="965"&gt;إعدادات أمان جديدة ومرنة.&lt;/p&gt;&lt;/li&gt;&lt;li data-end="1018" data-start="994"&gt;&lt;p data-end="1018" data-start="996"&gt;دعم OAuth2 بشكل محسّن.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;div&gt;&lt;div&gt;&lt;h3&gt;&lt;strong data-end="1049" data-start="1023"&gt;مكتبات وموديولات جديدة:&lt;/strong&gt;&lt;/h3&gt;&lt;/div&gt;&lt;p&gt;&lt;strong data-end="1049" data-start="1023"&gt;&lt;/strong&gt;&lt;/p&gt;&lt;ul data-end="1183" data-start="1055"&gt;&lt;li data-end="1118" data-start="1055"&gt;&lt;p data-end="1118" data-start="1057"&gt;تحسينات على Spring Data, Spring Web, Spring Actuator، وغيرها.&lt;/p&gt;&lt;/li&gt;&lt;li data-end="1183" data-start="1122"&gt;&lt;p data-end="1183" data-start="1124"&gt;دعم محسّن لـ Observability (مثل Micrometer وOpenTelemetry).&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;h3 data-end="1227" data-start="1190"&gt;✅ &lt;strong data-end="1227" data-start="1196"&gt;لماذا تستخدم Spring Boot 3؟&lt;/strong&gt;&lt;/h3&gt;&lt;p data-end="328" data-start="91"&gt;
&lt;/p&gt;&lt;ul data-end="1404" data-start="1228"&gt;
&lt;li data-end="1255" data-start="1228"&gt;
&lt;p data-end="1255" data-start="1230"&gt;إعداد تلقائي وتكوين مبسط.&lt;/p&gt;
&lt;/li&gt;
&lt;li data-end="1292" data-start="1256"&gt;
&lt;p data-end="1292" data-start="1258"&gt;دعم حديث وآمن مع Java وJakarta EE.&lt;/p&gt;
&lt;/li&gt;
&lt;li data-end="1328" data-start="1293"&gt;
&lt;p data-end="1328" data-start="1295"&gt;أداء أعلى بفضل دعم Native Images.&lt;/p&gt;
&lt;/li&gt;
&lt;li data-end="1374" data-start="1329"&gt;
&lt;p data-end="1374" data-start="1331"&gt;بيئة جاهزة للحوسبة السحابية (Cloud Native).&lt;/p&gt;
&lt;/li&gt;
&lt;li data-end="1404" data-start="1375"&gt;
&lt;p data-end="1404" data-start="1377"&gt;مجتمع كبير ودعم طويل الأجل.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/a/AVvXsEirYk7L-tWqD51aK5T8b0UvSgKoJjGzmmfCPK67ADfN1dP2XUU5ONllqvDlHU8f31RL-wie5s9pax6KQqWjVMMmC-xAHr0Or6zZvP8gP5z2lYH8hND-30WXE2cvEJpxjS4nTfmhRxPTyqAhbAiJPkhfggYLq2vtgOcE3qZ7MGAeyBeSY6gzW6seNdTVVez-=s72-w400-h266-c" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>1-هياكل بيانت بلغة جافا-المصفوفات || Java Data Structures -Arrays</title><link>http://muteealjabri.blogspot.com/2025/06/1-java-data-structures-arrays.html</link><author>noreply@blogger.com (muteealjabri.blogspot.com)</author><pubDate>Wed, 4 Jun 2025 19:05:00 +0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-5547022875870167028.post-1766090895169941392</guid><description>&lt;p&gt;&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEgU26O0EMnrWw-f5BYpRE59zIYqcmGcI1i3bNshmrNtM-CQLP_K9JbyfazjEgDXXMaYyZJIXi2QcCTfffcGdlyzk5wIBfsZkRd_76vLHRApJOlWpMd-aEYOzp9OOmJn_Ibr1T-6HE-TVR6DDd1YVLqcVjiF1hgNMeFGCG6BnDYphlPvfPXh0bxYqqJ4K_IF" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img data-original-height="1024" data-original-width="1024" height="400" src="https://blogger.googleusercontent.com/img/a/AVvXsEgU26O0EMnrWw-f5BYpRE59zIYqcmGcI1i3bNshmrNtM-CQLP_K9JbyfazjEgDXXMaYyZJIXi2QcCTfffcGdlyzk5wIBfsZkRd_76vLHRApJOlWpMd-aEYOzp9OOmJn_Ibr1T-6HE-TVR6DDd1YVLqcVjiF1hgNMeFGCG6BnDYphlPvfPXh0bxYqqJ4K_IF=w400-h400" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&amp;nbsp;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEjC1p5sjgxewqApGyjtE3JB2FXlWA-UywdcUQgjv9yuRKmtDaytVPv6-uGUQSkefqmz4o2gLUEFTTCLEisephbJ_tkjEPOb_5dMsfAnBG7bxiQcwt9vovVVeAlfL8CWkQcKZR3ANorX9SpNO5fZ1lihm2CDOJZkP7uaDfBDTBkpFvKBOXHX04QZuKKWJJWZ" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="" data-original-height="1024" data-original-width="1024" height="1" src="https://blogger.googleusercontent.com/img/a/AVvXsEjC1p5sjgxewqApGyjtE3JB2FXlWA-UywdcUQgjv9yuRKmtDaytVPv6-uGUQSkefqmz4o2gLUEFTTCLEisephbJ_tkjEPOb_5dMsfAnBG7bxiQcwt9vovVVeAlfL8CWkQcKZR3ANorX9SpNO5fZ1lihm2CDOJZkP7uaDfBDTBkpFvKBOXHX04QZuKKWJJWZ" width="1" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;البيانات هي طريقة تخزين البيانات في الذاكرة والتعامل معها وتقدم لغة جافا كثير من الكلاسات التي تسهل التعامل مع هياكل&lt;/p&gt;&lt;p&gt;&amp;nbsp;البيانات المختلفة.&lt;/p&gt;&lt;p&gt;وقبل البدء في هذا الدرس تأكد من انك قمت بتنصيب لغة الجافا مسبقا على جهازك واستخدم محرر الاكواد الذي يناسبك وبعد ذلك قم بانشاء مشروع جافا فارغ والذي سنبدا العمل عليه.&lt;/p&gt;&lt;h2 style="text-align: center;"&gt;&lt;span style="color: #073763;"&gt;المصفوفات Arrays&lt;/span&gt;&lt;/h2&gt;&lt;div&gt;المصفوفات هي عبارة عن باكت او قائمة من البيانات ومرقمة في ارقام تسمى index بحيث كل رقم يشير لموقع في تلك المصفوفه ويبدا الدليل من صفر.&lt;/div&gt;&lt;div&gt;&lt;ul style="text-align: right;"&gt;&lt;li&gt;يكون لها حجم ثابت.&lt;/li&gt;&lt;li&gt;سريعه في استرجاع البيانات.&lt;/li&gt;&lt;li&gt;عملية الحذف منها صعبة لان لو تم حذف عنصر يعني ذلك اعادة ترتيب لجميع العناصر داخل المصفوفة.&lt;/li&gt;&lt;li&gt;يوجد منها مصفوفات بعد واحد او بعدين 2D.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;الان نذهب للكود البرمجي ونقوم بكتابة اول كود للتعامل مع المصفوفات:&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEjNJrWfopSwUn2Qych57SUDEHmZGmAlZ2fvhnUxF3JNGE0-n9kO6-QU4gvq9m4m-P3pKWT95_Cgbr5crb4Q7LjAiBrYdNtl2P77ct65ULIVKJDpi0cT6xhMeBgfj3ne_MREYskeQ1fy9ZB0AoOq2bJY-BYJnf8zne-plIBNJmbFaRk4d-wdgxNkR9Zkn1Na" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="" data-original-height="245" data-original-width="412" height="190" src="https://blogger.googleusercontent.com/img/a/AVvXsEjNJrWfopSwUn2Qych57SUDEHmZGmAlZ2fvhnUxF3JNGE0-n9kO6-QU4gvq9m4m-P3pKWT95_Cgbr5crb4Q7LjAiBrYdNtl2P77ct65ULIVKJDpi0cT6xhMeBgfj3ne_MREYskeQ1fy9ZB0AoOq2bJY-BYJnf8zne-plIBNJmbFaRk4d-wdgxNkR9Zkn1Na" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;ul style="text-align: right;"&gt;&lt;li&gt;الكود اعلاه يبين تعريف للمصفوفة.&lt;/li&gt;&lt;li&gt;نقوم بتحديد نوع البيانات التي سوف تحملها هذه المصفوفة ومن ثم نتبعها بالاقواس المربعة []&lt;/li&gt;&lt;li&gt;في الشق الاخر نقوم بتحديد حجم المصفوفة وهو 5 عناصر.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;blockquote style="border: none; margin: 0px 40px 0px 0px; padding: 0px;"&gt;&lt;div&gt;&lt;h2 style="text-align: center;"&gt;&lt;span style="color: #073763;"&gt;اضافة بيانات الى المصفوفة&lt;/span&gt;&lt;/h2&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;div&gt;الان نقوم باضافة بيانات الى المصفوفة وذلك باستخدم رقم الدليل index كما في الكود ادناه:&lt;/div&gt;&lt;div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEhtv7Sn05lgvWFSGudinn95Yrd7j482pxillnCS5Ky-JrUnTZiIkVbCQjjQQluoKMgvZD3zMTK_QTWSAkviH-4v1PiOHautDjiXdj_1Ci-jxlXAUtraMcvMjR0x1iAwkvpfvnP1qLVfBiexGQB3_6FzPyn3FcC3YMVxe8kB7WzPlfQPRHaGo6UuMRqHc95o" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="" data-original-height="342" data-original-width="422" height="240" src="https://blogger.googleusercontent.com/img/a/AVvXsEhtv7Sn05lgvWFSGudinn95Yrd7j482pxillnCS5Ky-JrUnTZiIkVbCQjjQQluoKMgvZD3zMTK_QTWSAkviH-4v1PiOHautDjiXdj_1Ci-jxlXAUtraMcvMjR0x1iAwkvpfvnP1qLVfBiexGQB3_6FzPyn3FcC3YMVxe8kB7WzPlfQPRHaGo6UuMRqHc95o" width="296" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;حيث نلاحظ في الكود اعلاه تم اضافة القيمة Blue في الدليل 0 وهو الذي يشير للعنصر الاول.&lt;/div&gt;&lt;div&gt;وتم ايضا اضافة العنصر Black في الدليل 1 وهو يشير للعنصر الثاني في المصفوفة.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;blockquote style="border: none; margin: 0px 40px 0px 0px; padding: 0px;"&gt;&lt;div&gt;&lt;h2 style="text-align: center;"&gt;&lt;b&gt;&lt;span style="color: #0b5394;"&gt;طباعة وعرض جميع البيانات في المصفوفة&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ولطباعة العناصر الموجودة داخل المصفوفة نستخدم الكود ادناه:&lt;/div&gt;&lt;div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEgoyEUpaU4GHX8Dh_gkOIRLY0Qgipzp0kPF1nusNdFBjzHGf-avoNaQ-yp18W--w2DdJghPgeeAexiktq4wrs2CnnwZdqq5_29Qza5XnxKlQfrRd35WQ7kiQ9Emu5Kl12OHNGgcQNCACpl_hOAwm38L1qCxf5ClVWo1h00qyUa0EHLUd_ED-Oqvf37BrGpF" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="" data-original-height="497" data-original-width="651" height="240" src="https://blogger.googleusercontent.com/img/a/AVvXsEgoyEUpaU4GHX8Dh_gkOIRLY0Qgipzp0kPF1nusNdFBjzHGf-avoNaQ-yp18W--w2DdJghPgeeAexiktq4wrs2CnnwZdqq5_29Qza5XnxKlQfrRd35WQ7kiQ9Emu5Kl12OHNGgcQNCACpl_hOAwm38L1qCxf5ClVWo1h00qyUa0EHLUd_ED-Oqvf37BrGpF" width="314" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;وسيكون الناتج لهذا الكود:&lt;/div&gt;&lt;div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEgfElXL2mDo4vkqOBE5RutqdKqqt7PsU5uAKrRMr_ZWorh9bFjQhR2xQvwKaYTo__sYHFCHgvFQ2PHHZoSdxR-q-PFbZMX7J8zSYzl1bmLLZx9jDdimoB8Ofv4DWmcQvz8kXvU8SB9e2jDvjG3mubJjDt-KaSqKYXFjph78eHxNdsfwhytMNU36yViQ7HrB" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="" data-original-height="142" data-original-width="361" height="126" src="https://blogger.googleusercontent.com/img/a/AVvXsEgfElXL2mDo4vkqOBE5RutqdKqqt7PsU5uAKrRMr_ZWorh9bFjQhR2xQvwKaYTo__sYHFCHgvFQ2PHHZoSdxR-q-PFbZMX7J8zSYzl1bmLLZx9jDdimoB8Ofv4DWmcQvz8kXvU8SB9e2jDvjG3mubJjDt-KaSqKYXFjph78eHxNdsfwhytMNU36yViQ7HrB" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;ونلاحظ ان العنصر الاول والثاني هي عبارة القيم التي قمنا بادخالها بينما العناصر المتبقية تحتوي على قيمة null اي لاتوجد قيم فيها.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;h2 style="text-align: center;"&gt;&lt;b&gt;&lt;span style="color: #0b5394;"&gt;طباعة العنصر في موقع معين داخل المصفوفة&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;&lt;div&gt;لكي يتم طباعة عنصر معين في المصفوفة يتم ذلك عير تمرير رقم الدليل وموقع العنصر في المصفوفة كما في الكود ادناه:&lt;/div&gt;&lt;div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEhei47skbCIpBJpq7nA89UkdT_vf6vLD-XNaVr5ydyYY9kklz3EpihxnS3D3jqTaBXzKnhWcWIK6aDPP93XS4P19zg-VVKUblTZtMkuvs50ywLzG7FwR3xb1anNxjvLQ3PRhc5ud5tg2l3i6-LiHMLGpH0kQH_DrcjUcRSUvOS5hvEoWKt0d8Z9mgSJsvBw" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="" data-original-height="62" data-original-width="291" height="68" src="https://blogger.googleusercontent.com/img/a/AVvXsEhei47skbCIpBJpq7nA89UkdT_vf6vLD-XNaVr5ydyYY9kklz3EpihxnS3D3jqTaBXzKnhWcWIK6aDPP93XS4P19zg-VVKUblTZtMkuvs50ywLzG7FwR3xb1anNxjvLQ3PRhc5ud5tg2l3i6-LiHMLGpH0kQH_DrcjUcRSUvOS5hvEoWKt0d8Z9mgSJsvBw" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;من الكود اعلاه يتم طباعة العنصر رقم 0 وهو يشير للعنصر الاول وسيطبع القيمة Blue والتي تشير لذلك العنصر.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;h2 style="text-align: center;"&gt;&lt;b&gt;&lt;span style="color: #073763;"&gt;طريقة اخرى لانشاء مصفوفة&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;&lt;div&gt;&lt;span&gt;يمكن تعريف المصفوفة بطريقة اخرى وهو مثلما في الكود ادناه:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEjQeSwhbrr3DN0y6pi4ddxVWVVJHyJd4IJ-rtJ8L7-FjK29QaEU2c1fapFwEn8P742gfF2fJgKXjAylHQD-LxkBmKCB4yVlIIcJjOuma5bbLMVUGgcITt23DiiLokqwnrwjY3WELVQSBoG6uK95gQM6wtjA7ZH6FUeJmKxT97GLsgGTfIZNgrjwwkZ-v48d" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="" data-original-height="95" data-original-width="316" height="96" src="https://blogger.googleusercontent.com/img/a/AVvXsEjQeSwhbrr3DN0y6pi4ddxVWVVJHyJd4IJ-rtJ8L7-FjK29QaEU2c1fapFwEn8P742gfF2fJgKXjAylHQD-LxkBmKCB4yVlIIcJjOuma5bbLMVUGgcITt23DiiLokqwnrwjY3WELVQSBoG6uK95gQM6wtjA7ZH6FUeJmKxT97GLsgGTfIZNgrjwwkZ-v48d" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;حيث في هذه الطريقة تم تعريف مصفوفة وتم تمرير البيانات لها مباشرة وبهكذا تكون المصفوفة ثابتة الحجم وتوجد بها بيانات معرفة مسبقا وهي 100 و 200.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;h2 style="text-align: center;"&gt;&lt;span style="color: #073763;"&gt;&lt;b&gt;طباعة العناصر في المصفوفة باستخدام for Loop&lt;/b&gt;&lt;/span&gt;&lt;/h2&gt;&lt;div&gt;&lt;ul style="text-align: right;"&gt;&lt;li&gt;&lt;b&gt;يمكن الطباعة باستخدم for loop بعدة طرق واولها الطريقة القديمة:&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEhe83KDwb_zsV9I_OGEby7MShhHZ2rrAZFBMMOIM3tZUqEyWLcXvc1ua7GT6JXRCLRFfgqodTAK6JIFvRxwxjQXRTbN-W5ESTrCXmGMUDF0lBioAjDFOGb8aZ37cDIEwtiiW8IehSYNZP4KkM3V3GgTGlaQblY18ZV9_6QCINk_5PZDJ0V0a_X51qJo5e2g" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="" data-original-height="190" data-original-width="423" height="144" src="https://blogger.googleusercontent.com/img/a/AVvXsEhe83KDwb_zsV9I_OGEby7MShhHZ2rrAZFBMMOIM3tZUqEyWLcXvc1ua7GT6JXRCLRFfgqodTAK6JIFvRxwxjQXRTbN-W5ESTrCXmGMUDF0lBioAjDFOGb8aZ37cDIEwtiiW8IehSYNZP4KkM3V3GgTGlaQblY18ZV9_6QCINk_5PZDJ0V0a_X51qJo5e2g" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;وهي بجملة for loop القديمة التي تمرعلى جميع العناصر بداخل المصفوفة.&lt;/div&gt;&lt;div&gt;&lt;ul style="text-align: right;"&gt;&lt;li&gt;&lt;b&gt;يوجد نوع اخر من انواع ال for loop ويسمى المحسنة ويتم استخدامها لطباعة العناصر داخل المصفوفة بالشكل التالي:&lt;/b&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEj_RYV1A3Dr5sIVjYnCT_dJJoT7vuJ8oIcTNmI8Lhjf2WiwpAVXmo2UGYZdCmi2Xp4_i99pHTVlCJ5vQshn4E78ghNTBDTu2jPrqGJIVd0lFZ0tfyLzJtMhswHYhVndluuYL03xt5J1rFGbPVOyd6gsLbS_96RmyHeQSKRuSubEUFRKPY5sS6-KZrn47JOV" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="" data-original-height="170" data-original-width="306" height="178" src="https://blogger.googleusercontent.com/img/a/AVvXsEj_RYV1A3Dr5sIVjYnCT_dJJoT7vuJ8oIcTNmI8Lhjf2WiwpAVXmo2UGYZdCmi2Xp4_i99pHTVlCJ5vQshn4E78ghNTBDTu2jPrqGJIVd0lFZ0tfyLzJtMhswHYhVndluuYL03xt5J1rFGbPVOyd6gsLbS_96RmyHeQSKRuSubEUFRKPY5sS6-KZrn47JOV" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;توجد طريقة اخرى لطباعة المصفوفة عبر Streams مثلما في الكود ادناه:&lt;/b&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEjjLYeIFdsHlggQoCFHw9pSQw0ZiRvOiW0Yzd_qsfjLtaQ_EZgoaHNzd0-Hdpgy1GhUhl5fd3PfD8RDA1o-BA8ELIH0RhcGcW3l2qe9RRBjtwT6gx683arFJ5fwCnpUxIEBG5tz44qrIaBQfkG-fxFK9v_Jy2ixyg_AXd109u_wq_xBIFFK1e0EiEXDsiDU" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="" data-original-height="96" data-original-width="542" height="57" src="https://blogger.googleusercontent.com/img/a/AVvXsEjjLYeIFdsHlggQoCFHw9pSQw0ZiRvOiW0Yzd_qsfjLtaQ_EZgoaHNzd0-Hdpgy1GhUhl5fd3PfD8RDA1o-BA8ELIH0RhcGcW3l2qe9RRBjtwT6gx683arFJ5fwCnpUxIEBG5tz44qrIaBQfkG-fxFK9v_Jy2ixyg_AXd109u_wq_xBIFFK1e0EiEXDsiDU" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/a/AVvXsEgU26O0EMnrWw-f5BYpRE59zIYqcmGcI1i3bNshmrNtM-CQLP_K9JbyfazjEgDXXMaYyZJIXi2QcCTfffcGdlyzk5wIBfsZkRd_76vLHRApJOlWpMd-aEYOzp9OOmJn_Ibr1T-6HE-TVR6DDd1YVLqcVjiF1hgNMeFGCG6BnDYphlPvfPXh0bxYqqJ4K_IF=s72-w400-h400-c" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>كيف تتعلم برمجة بطريقة صحيحة</title><link>http://muteealjabri.blogspot.com/2024/05/adviceToLearnProgramming.html</link><category>مقالات برمجية</category><author>noreply@blogger.com (muteealjabri.blogspot.com)</author><pubDate>Sat, 25 May 2024 11:35:00 +0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-5547022875870167028.post-6084433056335688372</guid><description>&lt;p&gt;&amp;nbsp;السلام عليكم&amp;nbsp;&lt;/p&gt;&lt;p&gt;لو اردت ان تتعلم او تسأل عن اي مجال ف بشكل طبيعي سوف تبحث عن الخبراء في هذه المجال , ولكن بحثك يحتاج نوع من التمحيص والتدقيق بحيث تتاكد ان الشخص يعطيك معلومة صحيحة.&lt;/p&gt;&lt;p&gt;وفي هذا المقال سوف اعطيك بعض المصادر من المهندس : محمد مشرف وهو مهندس برمجيات خبير يعمل حاليا بشركة امازون&lt;/p&gt;&lt;p&gt;حساب الليكندان الخاص بالمهندس :محمد مشرف&amp;nbsp;&lt;a href="https://www.linkedin.com/in/mmeshref/" target="_blank"&gt;linkedin&lt;/a&gt;&lt;/p&gt;&lt;p&gt;كل التفاصيل والنصائح موجودة في المقطع:&lt;/p&gt;&lt;p&gt;
  &lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="" frameborder="0" height="315" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/jZIXKlSJcrc?si=Bo8r8wTd0kt6vmlP" title="YouTube video player" width="560"&gt;&lt;/iframe&gt;&lt;/p&gt;&lt;p&gt;اليكك المصادر :&lt;/p&gt;&lt;p&gt;كورس البرمجة الخاص ب محمد مشرف:&amp;nbsp;&lt;a href="https://www.youtube.com/redirect?event=video_description&amp;amp;redir_token=QUFFLUhqazlLcmd0MlYtdGxMRTlWS2dvMUxScWFsMzZuUXxBQ3Jtc0tsanViSFBlNGpMUFU5Q01IZTE5OUp6aGs2ZG9nazVhQVdLdjFMMXlVZzdfM2xZcEd5UFRwTnNjdTI2ZFo1b3Y5ak5zYlY0em45dUt2b3p4VlNDcHI0SVhuRTZBckZDbkpJZTVXMTFZTEpwdm5NdEpzUQ&amp;amp;q=https%3A%2F%2Fmmoshrif.blogspot.com%2F2020%2F09%2Fblog-post.html%3Fm%3D1&amp;amp;v=jZIXKlSJcrc" target="_blank"&gt;اضغط هنا&lt;/a&gt;&lt;/p&gt;&lt;p&gt;كتب السي بلس بلس:&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.amazon.com/How-Program-10th-Paul-Deitel/dp/9332585733/ref=sr_1_2?crid=ZO5YOL0XKYQ&amp;amp;dchild=1&amp;amp;keywords=c%2B%2B+how+to+program&amp;amp;qid=1601477578&amp;amp;sprefix=C%2B%2B+ho%2Caps%2C1268&amp;amp;sr=8-2" target="_blank"&gt;C++ How to Program (10th Edition)&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.amazon.com/Object-Oriented-Programming-Kaleidoscope-Robert-Lafore-ebook/dp/B004X1VEGQ/ref=sr_1_1?dchild=1&amp;amp;keywords=object+oriented+programming+in+C%2B%2B&amp;amp;qid=1601477606&amp;amp;sr=8-1" target="_blank"&gt;Object-Oriented Programming in C++&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;كتب الداتا ستركتشر (هياكل البيانات)&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.amazon.com/Data-Structures-Algorithm-Analysis-C/dp/013284737X/ref=sr_1_1?dchild=1&amp;amp;keywords=data+structures+in+C%2B%2B&amp;amp;qid=1601477631&amp;amp;sr=8-1" target="_blank"&gt;Data Structures &amp;amp; Algorithm Analysis in C++&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.amazon.com/Data-Structures-Algorithms-Michael-Goodrich/dp/0470383275/ref=sr_1_2?dchild=1&amp;amp;keywords=data+structures+in+C%2B%2B&amp;amp;qid=1601477631&amp;amp;sr=8-2" target="_blank"&gt;Data Structures and Algorithms in C++&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;كتب الخوارزميات:&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.amazon.com/Algorithms-Parts-1-4-Fundamentals-Structure/dp/0201350882/ref=sr_1_2?dchild=1&amp;amp;keywords=algorithms+in+C%2B%2B&amp;amp;qid=1601477687&amp;amp;sr=8-2" target="_blank"&gt;Algorithms in C++, Parts 1-4: Fundamentals, Data Structure, Sorting, Searching, Third Edition&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.amazon.com/Algorithms-Part-Graph-3rd-Pt-5/dp/0201361183/ref=sr_1_3?dchild=1&amp;amp;keywords=algorithms+in+C%2B%2B&amp;amp;qid=1601477698&amp;amp;sr=8-3" target="_blank"&gt;Algorithms in C++ Part 5: Graph Algorithms&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;كتب ال design patterns:&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.amazon.com/Head-First-Design-Patterns-Brain-Friendly/dp/0596007124/ref=sr_1_2?dchild=1&amp;amp;keywords=design+patterns&amp;amp;qid=1601477723&amp;amp;sr=8-2" target="_blank"&gt;Head First Design Patterns: A Brain-Friendly Guide&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented/dp/0201633612/ref=sr_1_1?dchild=1&amp;amp;keywords=design+patterns&amp;amp;qid=1601477723&amp;amp;sr=8-1" target="_blank"&gt;Design Patterns: Elements of Reusable Object-Oriented Software&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;في الاخير اليك بعض الصور من مدونة محمد مشرف : التي فيها بعض العناوين الخاصة بالكورس به:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEhWtJl3OA9GXkWResoMddOD4qiqn5nTLVNTBNXjwXtJ0zt5MO573JgEMbl9mnPmYWpcS0gK0NhttNnRuJL4ymVIQw6cx0ogM5dBW0BqrIwmLv_r0CQsZTcWBYIuNRpAdTuObYXnEu7QO49qm1PPOiQaHPJhrkuAlH1aaxjGSn8v4hKygOZ7oSzAR9QJf19R" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="" data-original-height="256" data-original-width="280" height="240" src="https://blogger.googleusercontent.com/img/a/AVvXsEhWtJl3OA9GXkWResoMddOD4qiqn5nTLVNTBNXjwXtJ0zt5MO573JgEMbl9mnPmYWpcS0gK0NhttNnRuJL4ymVIQw6cx0ogM5dBW0BqrIwmLv_r0CQsZTcWBYIuNRpAdTuObYXnEu7QO49qm1PPOiQaHPJhrkuAlH1aaxjGSn8v4hKygOZ7oSzAR9QJf19R" width="263" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEjYXfwJbm_lv4LkrxAnkBFJJk6eiw3MxdHVtSbNkmE-tde0vcLaGCOmFMvTW5ehAAroF2qAckDNKJlUVchScBY6qg8Bw7k37tKiQoL6Z1-BsUbyFlo9obeMa4NrHF5l7w32QByokKpSrtLyxEbkphPT2yhzKjHDcpMVOvIzhFNq9fcehPhXPivO0tE0v8_w" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="" data-original-height="272" data-original-width="280" height="240" src="https://blogger.googleusercontent.com/img/a/AVvXsEjYXfwJbm_lv4LkrxAnkBFJJk6eiw3MxdHVtSbNkmE-tde0vcLaGCOmFMvTW5ehAAroF2qAckDNKJlUVchScBY6qg8Bw7k37tKiQoL6Z1-BsUbyFlo9obeMa4NrHF5l7w32QByokKpSrtLyxEbkphPT2yhzKjHDcpMVOvIzhFNq9fcehPhXPivO0tE0v8_w" width="247" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEhupI8a28Fg7S4c1utqUV1-vyQW30mpRNhB1FHpHgKW5OE1DhX0BYcl1ZTPrb7n13mpxUCc9M7yIZLHSj3p3n_5gypHOjzjWnlwMmmQnCtbi4u-8kFjeJBqAKkqTC3brW2PWbxLXieHNDBFVWyzSZ7_p43KBmb0qk2jaqKYloOM5tB6VQDLcRwWC23GdoNM" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="" data-original-height="320" data-original-width="228" height="240" src="https://blogger.googleusercontent.com/img/a/AVvXsEhupI8a28Fg7S4c1utqUV1-vyQW30mpRNhB1FHpHgKW5OE1DhX0BYcl1ZTPrb7n13mpxUCc9M7yIZLHSj3p3n_5gypHOjzjWnlwMmmQnCtbi4u-8kFjeJBqAKkqTC3brW2PWbxLXieHNDBFVWyzSZ7_p43KBmb0qk2jaqKYloOM5tB6VQDLcRwWC23GdoNM" width="171" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEid_gEbx7fKm_uyZdti0Uc3-7pwRttThuQQFt0zpvNLfx_d0mP-hx9F871abfyrAmcGwdvBcju9cNvzUWhbxB9J9T-0AwyxMf_ILcUzImOWzhIg175BqZXg4g7OtKTzPRaMhLch37YSVxl3WSbC09CIzVgF68_aBk5SlPz9aL2fhhg9KQZBcOD33WOd7C9y" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="" data-original-height="320" data-original-width="301" height="240" src="https://blogger.googleusercontent.com/img/a/AVvXsEid_gEbx7fKm_uyZdti0Uc3-7pwRttThuQQFt0zpvNLfx_d0mP-hx9F871abfyrAmcGwdvBcju9cNvzUWhbxB9J9T-0AwyxMf_ILcUzImOWzhIg175BqZXg4g7OtKTzPRaMhLch37YSVxl3WSbC09CIzVgF68_aBk5SlPz9aL2fhhg9KQZBcOD33WOd7C9y" width="226" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEgDziT2gj_m0Sz4j71-riw9Pi1axMQ6uX3hDnFxhTzXQoaoiY_jGvc6454kZH6aOdw4uRv9_qNF2RmebIxyJk74RkON2GPWqaBSOWKqGDhQPRlZJUQLgD2OhQpHJCdLMaUZGo0KKjFOGvU9FaK8ySiWUaoHHRAuamaCafjixWVo1bvM_D2W1lXKu6diXFy9" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="" data-original-height="320" data-original-width="316" height="240" src="https://blogger.googleusercontent.com/img/a/AVvXsEgDziT2gj_m0Sz4j71-riw9Pi1axMQ6uX3hDnFxhTzXQoaoiY_jGvc6454kZH6aOdw4uRv9_qNF2RmebIxyJk74RkON2GPWqaBSOWKqGDhQPRlZJUQLgD2OhQpHJCdLMaUZGo0KKjFOGvU9FaK8ySiWUaoHHRAuamaCafjixWVo1bvM_D2W1lXKu6diXFy9" width="237" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;وفي الاخير لا يسعنا ان نشكر المهندس محمد على مشرف على نصائحه وانا شخصيا استفدت منها:&lt;/p&gt;&lt;p&gt;للمزيد تابعو قناة محمد مشرف على اليوتيوب من خلال الضغط على الرابط ادناه:&lt;/p&gt;&lt;p&gt;&lt;a href="https://www.youtube.com/@mmeshref" target="_blank"&gt;Youtube&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="background-color: rgba(255, 255, 255, 0.1); color: white; font-family: Roboto, Arial, sans-serif; font-size: 14px; white-space-collapse: preserve;"&gt;كتب الخوارزميات:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="background-color: rgba(255, 255, 255, 0.1); color: white; font-family: Roboto, Arial, sans-serif; font-size: 14px; white-space-collapse: preserve;"&gt;كتب السي بلس بلس:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="background-color: rgba(255, 255, 255, 0.1); color: white; font-family: Roboto, Arial, sans-serif; font-size: 14px; white-space-collapse: preserve;"&gt;كتب السي بلس بلس:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="background-color: rgba(255, 255, 255, 0.1); color: white; font-family: Roboto, Arial, sans-serif; font-size: 14px; white-space-collapse: preserve;"&gt;كتب السي بلس بلس:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://img.youtube.com/vi/jZIXKlSJcrc/default.jpg" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>6- Casting in Python</title><link>http://muteealjabri.blogspot.com/2024/05/Casting In Python.html</link><category>Swift-Tutorials</category><category>لغة بايثون</category><author>noreply@blogger.com (muteealjabri.blogspot.com)</author><pubDate>Mon, 20 May 2024 06:11:00 +0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-5547022875870167028.post-7358697978567958604</guid><description>&lt;p&gt;&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPJYsCmlDR6coJmAO1gWs3h_T3oq22pmIjIWGzpSdV0xY2NCR87zjHQJssPoEx4M1QoNhVBHfOfl-jvdTJHv1EYj19lz_bgImVpNPXxjh1gTjzzXWA2aPizjjj_9npZsRrGlb65umS-hqQumuw5iAPggqAExtgZW887zCDSx0rIDQ05xxVtoX8CGMpwhee/s1920/Casting%20In%20Python.png" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="1080" data-original-width="1920" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPJYsCmlDR6coJmAO1gWs3h_T3oq22pmIjIWGzpSdV0xY2NCR87zjHQJssPoEx4M1QoNhVBHfOfl-jvdTJHv1EYj19lz_bgImVpNPXxjh1gTjzzXWA2aPizjjj_9npZsRrGlb65umS-hqQumuw5iAPggqAExtgZW887zCDSx0rIDQ05xxVtoX8CGMpwhee/w640-h360/Casting%20In%20Python.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&amp;nbsp;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;السلام عليكم&amp;nbsp;&lt;/p&gt;&lt;p&gt;تعرفنا في الدروس الماضية انه عند تعريف متغير ليس بالضرورة تحديد نوع بيانات هذا المتغيرولكن يمكن ايضا تحديد نوع بيانات المتغير بالاضافة الى انه يمكن التحويل بين انواع المتغيرات.&lt;/p&gt;&lt;p&gt;والسبب في ذلك انه لغة بايثون لغة تدعم اسلوب البرمجة كائنية التوجه OOP وهو مفهوم سيتم شرحه في دروس لاحقة.&lt;/p&gt;&lt;p&gt;عملية ال Casting&amp;nbsp; في لغة البايثون تتم عبر استخدام دالة Constructor وهي ماتعرف بدالة الباني وهي دالة يتم استدعائها عند انشاء كائن جديد من الكلاس.&lt;/p&gt;&lt;p&gt;قد يبدو الكلام معقد وغير مفهوم ولكن اليك بعض الامثلة ادناه:&lt;/p&gt;&lt;p style="text-align: left;"&gt;&lt;/p&gt;&lt;ul style="text-align: right;"&gt;&lt;li&gt;&lt;b&gt;()int&amp;nbsp;&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: right;"&gt;وهذه دالة Constructor&amp;nbsp;&amp;nbsp;الباني&amp;nbsp; الخاصة بنوع البيانات int حيث يتم تمرير بداخلها الرقم الصحيح او رقم عشري بفاصلة عشرية ولكن عند استخدامه ك int ستكون قيمته رقم صحيح بدون فاصلة عشرية&amp;nbsp; واليك بعض الامثلة:&lt;/div&gt;&lt;div style="text-align: right;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: right;"&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkUIRL0LqT1q5bmNgFq8iLyMXwpuQje35y3t285xZHcPgObMO0FKh7a9V7GVKT7tDGmG9Ldy67nWQB40SQhceqJPCF_FAWUFGVIxkFaeQuFs7JmPp00HnsbIGzhbN4FFGyHoosyqBd3L_lgW7C_gh1Rk_6S-2psryuk3Z6Do184wlNCJQ4w0gHMkZPo3Rc/s361/casting%20int.png" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="127" data-original-width="361" height="113" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkUIRL0LqT1q5bmNgFq8iLyMXwpuQje35y3t285xZHcPgObMO0FKh7a9V7GVKT7tDGmG9Ldy67nWQB40SQhceqJPCF_FAWUFGVIxkFaeQuFs7JmPp00HnsbIGzhbN4FFGyHoosyqBd3L_lgW7C_gh1Rk_6S-2psryuk3Z6Do184wlNCJQ4w0gHMkZPo3Rc/s320/casting%20int.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: right;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: right;"&gt;نلاحظ من الكود اعلاه&amp;nbsp; التالي :&lt;/div&gt;&lt;div style="text-align: right;"&gt;&lt;b&gt;-السطر الاول :&lt;/b&gt;انه تم استخدام int وتم تمرير بعض قيم لها ففي السطر الاول تم تمرير 11 فسيتم اعتبار المتغير x متغير رقمي صحيح قيمته 11.&lt;/div&gt;&lt;div style="text-align: right;"&gt;&lt;b&gt;السطر الثاني:&lt;/b&gt; تم تمرير القيمة 5.3 وهو رقم عشري ولكن عندما تم تمرير الى int تم التعامل معه كأنه رقم صحيح وستكون قيمته 5.&lt;/div&gt;&lt;div style="text-align: right;"&gt;&lt;b&gt;السطر الثالث:&lt;/b&gt; تم تمرير نص الى int ولكن فعليا تم تحويل ذالك النص الى رقم ويتم التعامل كأنه متغير رقمي.&lt;/div&gt;&lt;div style="text-align: right;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: right;"&gt;&lt;ul style="text-align: right;"&gt;&lt;li&gt;&lt;b&gt;()Floats&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;وهي دالة Constructor&amp;nbsp; الخاصة بنوع البيانات float الخاص بالارقام العشرية وعند تمرير اي قيمة اليها يتم التعامل معها كأنه رقم عشري&amp;nbsp; واليك المثال التالي:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6qYo_rtBt9Gcf6-FAlZskMHQOk1LrwYMi0bjsz1u6WuMK2WKUgHfNmO_mejeWhPtWWfeoFlZIgJJ_gCdYcdMuEaUf4qCIKymSW7o-pDnhjJrJq6oHy4_5uc95KNsEeW6kl8kXGC38KhH1H7jubydQBbHmwlhipYWq1IXWax1dZmRkp2j9DTqiZiIUZI3C/s407/floating%20casting.png" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="133" data-original-width="407" height="105" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6qYo_rtBt9Gcf6-FAlZskMHQOk1LrwYMi0bjsz1u6WuMK2WKUgHfNmO_mejeWhPtWWfeoFlZIgJJ_gCdYcdMuEaUf4qCIKymSW7o-pDnhjJrJq6oHy4_5uc95KNsEeW6kl8kXGC38KhH1H7jubydQBbHmwlhipYWq1IXWax1dZmRkp2j9DTqiZiIUZI3C/s320/floating%20casting.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: right;"&gt;نلاحظ من الكود اعلاه التالي:&lt;/div&gt;&lt;div style="text-align: right;"&gt;-&lt;b&gt;السطر الاول&lt;/b&gt; :&amp;nbsp; تم تمرير القيمة 1 وهو عبارة عن رقم عشري ولكن تم التعامل معه وتحويله الى رقم عشري وستكون قيمته 1.0.&lt;/div&gt;&lt;div style="text-align: right;"&gt;-&lt;b&gt;السطر الثاني&lt;/b&gt; : تم تمرير القيمة 2.8 وهو عبارة عن رقم عشري وسيتم التعامل معه كرقم عشري وستكون قيمته 2.8.&lt;/div&gt;&lt;div style="text-align: right;"&gt;-&lt;b&gt;السطر الثالث&lt;/b&gt;: تم تمرير قيمة نصية "3" وسيتم التعامل معه وتحويله الى float وستكون قيمته 3.0.&lt;/div&gt;&lt;div style="text-align: right;"&gt;-&lt;b&gt;السطر الرابع&lt;/b&gt; :تم تمرير قيمة نصية "4.2" وسيتم التعامل معه وتحويله الى float وستكون قيمته 2.4.&lt;/div&gt;&lt;div style="text-align: right;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: right;"&gt;&lt;ul style="text-align: right;"&gt;&lt;li&gt;&lt;b&gt;()str&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;وهو عبارة عن دالة Constructor الخاصة بالمتغيرات النصية ويتم تمرير اي قيمة بداخلها وسيتم التعامل معه كأنه متغير نصي واليك المثال التالي:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhB-2Rr0KW4mnla4GyavuhWNpoukTZCpLAYJD7P9KJ7LmSXoa7RyGc-HQ-ZtIIzVrgr_q2ISmj3GY0NEvMGFrhOyyJP5RVAKj0irekP9HRBJbkAtnVhc9gJtzhEFAJesqXY0dTlsj7r-acbRLtiO_FDoPCebhdyAqZuAlNOgILZceNdpFIXqEZKJa_CxSjv/s440/str%20casting.png" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="143" data-original-width="440" height="104" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhB-2Rr0KW4mnla4GyavuhWNpoukTZCpLAYJD7P9KJ7LmSXoa7RyGc-HQ-ZtIIzVrgr_q2ISmj3GY0NEvMGFrhOyyJP5RVAKj0irekP9HRBJbkAtnVhc9gJtzhEFAJesqXY0dTlsj7r-acbRLtiO_FDoPCebhdyAqZuAlNOgILZceNdpFIXqEZKJa_CxSjv/s320/str%20casting.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div&gt;نلاحظ من الكود اعلاه التالي:&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;b&gt;-السطر الاول&amp;nbsp;&lt;/b&gt; :&amp;nbsp; تم تمرير القيمة mutee وهو عبارة عن نص وسيتم التعامل معه كأنه متغير نصي.&lt;/div&gt;&lt;div&gt;&lt;b&gt;-السطر الثاني&lt;/b&gt; : تم تمرير القيمة 22&amp;nbsp; وهو عبارة عن رقم صحيح وسيتم التعامل معه كنص وستكون قيمته 22.&lt;/div&gt;&lt;div&gt;&lt;b&gt;-السطر الثالث &lt;/b&gt;: تم تمرير قيمة 5.0 وهو عبارة عن رقم عشري وسيتم التعامل معه وتحويله الى نص وستكون قيمته "5.0".&lt;/div&gt;&lt;div&gt;.&lt;/div&gt;&lt;div&gt;وهكذا نكون وصلنا الى نهاية الدرس .&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPJYsCmlDR6coJmAO1gWs3h_T3oq22pmIjIWGzpSdV0xY2NCR87zjHQJssPoEx4M1QoNhVBHfOfl-jvdTJHv1EYj19lz_bgImVpNPXxjh1gTjzzXWA2aPizjjj_9npZsRrGlb65umS-hqQumuw5iAPggqAExtgZW887zCDSx0rIDQ05xxVtoX8CGMpwhee/s72-w640-h360-c/Casting%20In%20Python.png" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>5-الارقام في لغة بايثون| Numbers In Python</title><link>http://muteealjabri.blogspot.com/2024/05/number-in-python.html</link><category>لغة بايثون</category><author>noreply@blogger.com (muteealjabri.blogspot.com)</author><pubDate>Thu, 16 May 2024 17:54:00 +0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-5547022875870167028.post-2022587970754276393</guid><description>&lt;p&gt;&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLS5uLvaI4VCNyaA6iXvoZMqDnbriZeABygUN5yYigTur-rhlssSBLjgZeuqf-2FD59tXOKLngb31vqCx4GvEcKRhtRpNDZfVAI06trnmrdSHB6Rqt_t-vWI1Qon1g-HoypZU06nrAb2HlarytuHx4ZIMRux2zVcdSE4OM-ip0WU4O6jcGEeLULsomxXDQ/s1920/Numbers%20InPython.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="1080" data-original-width="1920" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLS5uLvaI4VCNyaA6iXvoZMqDnbriZeABygUN5yYigTur-rhlssSBLjgZeuqf-2FD59tXOKLngb31vqCx4GvEcKRhtRpNDZfVAI06trnmrdSHB6Rqt_t-vWI1Qon1g-HoypZU06nrAb2HlarytuHx4ZIMRux2zVcdSE4OM-ip0WU4O6jcGEeLULsomxXDQ/w640-h360/Numbers%20InPython.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&amp;nbsp;&lt;p&gt;&lt;/p&gt;&lt;p&gt;السلام عليكم&amp;nbsp;&lt;/p&gt;&lt;p&gt;سوف نتعلم في عذذا الدرس الارقام بلغة بايثون:&lt;/p&gt;&lt;p&gt;الارقام في لغة بايثون لها ثلاثة انواع وهي كما يلي:&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;ul style="text-align: right;"&gt;&lt;li&gt;&lt;span style="font-size: large;"&gt;int&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: large;"&gt;float&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: large;"&gt;complex&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;وسوف نتعرف على هذه الثلاثة الانواع بالتفصيل:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqcTjYaaB6QMw5QF66l49rB8TMWr_CZitVPGy88o3clg097PeE-PeeX4svG_mEVDp1u3z0rHu4ihM3gl2w6XkwPj9O0-oVzfl4K_coEGqLDAlBg7gg8TR6ol47S76TtSy8vY7WeoSJfXJtF4bSGheblzymyNNf4Pk0UNveT23sRJq0PDlmvzJy7vpwWiky/s298/numbers%20python.png" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="107" data-original-width="298" height="107" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqcTjYaaB6QMw5QF66l49rB8TMWr_CZitVPGy88o3clg097PeE-PeeX4svG_mEVDp1u3z0rHu4ihM3gl2w6XkwPj9O0-oVzfl4K_coEGqLDAlBg7gg8TR6ol47S76TtSy8vY7WeoSJfXJtF4bSGheblzymyNNf4Pk0UNveT23sRJq0PDlmvzJy7vpwWiky/s1600/numbers%20python.png" width="298" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;للتحقق من كل نوع كل متغير نستخدم دالة type() كما في المثال ادناه:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfdpexpT2rJAwgI87iBrc7zBzUvssJnSnAp-agk6kOyB37M-a5MqL2VBVVJH5rLWrZJ0SWtai8slv86Vsbi_a9iRmgj-2xQtEf080S4ZpnKv8q_cOi4ZdaZtTyKtWEwFhEjPHvFjplqBdoCZR0-73VtoYVGoYw4er1KxZPi7GhuYAl0a3FBMN74sZMJ16p/s271/python%20Numbers.png" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="258" data-original-width="271" height="258" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfdpexpT2rJAwgI87iBrc7zBzUvssJnSnAp-agk6kOyB37M-a5MqL2VBVVJH5rLWrZJ0SWtai8slv86Vsbi_a9iRmgj-2xQtEf080S4ZpnKv8q_cOi4ZdaZtTyKtWEwFhEjPHvFjplqBdoCZR0-73VtoYVGoYw4er1KxZPi7GhuYAl0a3FBMN74sZMJ16p/s1600/python%20Numbers.png" width="271" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;وسيكون هذا الناتج لهذا الكود مايلي:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiawv-t7TYsOGaEffQJ7vZMEcyho87fB0lKTpVWdEFzFoB6D7y2fptTpGm-Bv5-V3ltgQQzdAOZdehiFymrFbWfo9okOyYbjqmhS-a0lYmzUhcaI4ifyhkoK9wgZbReB6Xav1X5akeBmG7XUSEwY7CHEHEWZVAW9Q0IEvg-5BBCSGdyXYIaEPu8Y4Cylsx0/s261/python%20out%20put.png" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="83" data-original-width="261" height="83" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiawv-t7TYsOGaEffQJ7vZMEcyho87fB0lKTpVWdEFzFoB6D7y2fptTpGm-Bv5-V3ltgQQzdAOZdehiFymrFbWfo9okOyYbjqmhS-a0lYmzUhcaI4ifyhkoK9wgZbReB6Xav1X5akeBmG7XUSEwY7CHEHEWZVAW9Q0IEvg-5BBCSGdyXYIaEPu8Y4Cylsx0/s1600/python%20out%20put.png" width="261" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;h2 style="text-align: center;"&gt;int&lt;/h2&gt;&lt;div&gt;سوف نتعرف بالتفصيل على نوع int او مايسمي integer وهذا النوع من الارقام يشمل جميع الارقام الصحيحة سوا&amp;nbsp; الموجبة اوالسالبة بدون الفاصلة العشرية, وفي هذا النوع الطول غير محدود.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;مثال :&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihGKunhQY0DHgv-ay8uXPp0UHvi2S5eAe5fzJsdvPKKfShGNyiyHJMCyALkidYyKsYh9wax-yawcnHcnjCILJpqbImTcqZgvqla5XK_40V7VffP9fD719LoWNDeg-_Qd69yRDgXeno33D6Vssck_ky0fpk1ZTCY692u7nDv_au53lQujDE6uiw7i9rS1qC/s451/integers%20python.png" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="451" data-original-width="382" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihGKunhQY0DHgv-ay8uXPp0UHvi2S5eAe5fzJsdvPKKfShGNyiyHJMCyALkidYyKsYh9wax-yawcnHcnjCILJpqbImTcqZgvqla5XK_40V7VffP9fD719LoWNDeg-_Qd69yRDgXeno33D6Vssck_ky0fpk1ZTCY692u7nDv_au53lQujDE6uiw7i9rS1qC/s320/integers%20python.png" width="271" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;ونلاحظ من الكود اعلاه اننا قمنا بتعريف ثلاثة متغيرات رقمية حيث المتغير الاول رقم صحيح موجب, والرقم الثاني عبارة عن رقم طويل , والرقم الثالث عبارة عن رقم سالب, ونلاحظ ان النتيجة&amp;nbsp; من هذا الكود انه قام بطباعة نوع المتغيرات الثلاثة وهي int.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;h2 style="text-align: center;"&gt;float&lt;/h2&gt;&lt;div class="separator" style="clear: both; text-align: right;"&gt;&lt;div&gt;سوف نتعرف بالتفصيل على نوع float او مايسمي floating&amp;nbsp; وهذا النوع من الارقام يشمل جميع الارقام العشرية سوا&amp;nbsp; الموجبة اوالسالبة, وفي هذا النوع الطول غير محدود.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;مثال:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgN2hZIa0bTtWTQh03Vasth58FHhs-DlQfrxPyraLXuLyLByTV07B3rC1-G5QksLWww9RA1bnftJWtJwfUEWKghMkw7cujBNgL_V-0bc3qySioeRx51ODj18h7Lt3jPfD9mRzgXGxq2GnVZ1Kw4VkEL0pnci3YrOa56G6I-3zchIZUQQrcROltB7gbhgLXN/s502/floating.png" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="502" data-original-width="457" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgN2hZIa0bTtWTQh03Vasth58FHhs-DlQfrxPyraLXuLyLByTV07B3rC1-G5QksLWww9RA1bnftJWtJwfUEWKghMkw7cujBNgL_V-0bc3qySioeRx51ODj18h7Lt3jPfD9mRzgXGxq2GnVZ1Kw4VkEL0pnci3YrOa56G6I-3zchIZUQQrcROltB7gbhgLXN/s320/floating.png" width="291" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: right;"&gt;&lt;br /&gt;&lt;/div&gt;ونلاحظ من الكود اعلاه اننا قمنا بتعريف ثلاثة متغيرات رقمية حيث المتغير الاول والثاني رقم عشري موجب , والرقم الثالث عبارة عن رقم عشري سالب, ونلاحظ ان النتيجة&amp;nbsp; من هذا الكود انه قام بطباعة نوع المتغيرات الثلاثة وهي float.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: right;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: right;"&gt;يمكن ايضا استخدام النوع float لتمثيل الارقام العلمية كمايلي:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: right;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpyQR6_5EmV6TUpD1IGUQcErngph3276us9sbbry2Kk8-nutiOrBHHUlfMEu_ISm4_JHSB0qeFNbzy_x-P7lSgA5vkwCtO9Do6ZvEYzSC4AxfT5-UwvbwM7KwQCLK6BLembDc770MLQA_PhhXe4tn0kF9qoYHpJoGuvchyHgIiPCO7Nxtk1GtuV066BU2W/s597/float%20numbers%20python.png" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="597" data-original-width="425" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpyQR6_5EmV6TUpD1IGUQcErngph3276us9sbbry2Kk8-nutiOrBHHUlfMEu_ISm4_JHSB0qeFNbzy_x-P7lSgA5vkwCtO9Do6ZvEYzSC4AxfT5-UwvbwM7KwQCLK6BLembDc770MLQA_PhhXe4tn0kF9qoYHpJoGuvchyHgIiPCO7Nxtk1GtuV066BU2W/s320/float%20numbers%20python.png" width="228" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: right;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;h2 style="clear: both; text-align: center;"&gt;Complex&lt;/h2&gt;&lt;div&gt;وهذا النوع يشير الى الارقام المعقدة التي تنتهي ب "J" والذي يشير للجزء التخيلي من الرقم.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;مثال:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXcjcvOoceZfrzt4fzG_j77Ck4pGl5sdqWAm0oUP1Rm2GCp-PH_KAh3zomXAmJsAonyJ-s1ewNgXe5uznCLwvRyEb_Ipauf4GdYikE1Ub4ig4nwGrqz6WemAE4hBJBi7IxrzSawLSl0iiHX1-MNxF37v6_0lVGtHKG4UfYgHRcqwjrI1SUONJSj9Ec7CWs/s516/complex.png" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="516" data-original-width="426" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgXcjcvOoceZfrzt4fzG_j77Ck4pGl5sdqWAm0oUP1Rm2GCp-PH_KAh3zomXAmJsAonyJ-s1ewNgXe5uznCLwvRyEb_Ipauf4GdYikE1Ub4ig4nwGrqz6WemAE4hBJBi7IxrzSawLSl0iiHX1-MNxF37v6_0lVGtHKG4UfYgHRcqwjrI1SUONJSj9Ec7CWs/s320/complex.png" width="264" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;نلاحظ من الكود اعلاه انه تم تعريف 3 متغيرات نوعها complex.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;h2 style="text-align: center;"&gt;التحويل بين انواع الارقام&lt;/h2&gt;&lt;div&gt;توفر لك لغة بايثون امكانية التحويل بين انواع الارقام التالية باستخدام الداول : int() او float() او complex()&lt;/div&gt;&lt;div&gt;واليك المثال التالي:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWH9jZNrK0-i-ha4gDdOFupcGtfvXIQJteZ6gIfWkHixxW_nX7yWaPUoT-HS0fwGmAFr2mvGad3RQgT3VnZuuEZmkImRw8Vq5dQu1cCgImSYWOqxrbqY0jVqZdkX5FGjCcnT232NcF6niXLUHplHXOKq8xqAGpjW0MU53ESOMtxX7Toe1M7J8LIpJzEXFs/s460/convert%20dataTypes.png" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="378" data-original-width="460" height="263" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWH9jZNrK0-i-ha4gDdOFupcGtfvXIQJteZ6gIfWkHixxW_nX7yWaPUoT-HS0fwGmAFr2mvGad3RQgT3VnZuuEZmkImRw8Vq5dQu1cCgImSYWOqxrbqY0jVqZdkX5FGjCcnT232NcF6niXLUHplHXOKq8xqAGpjW0MU53ESOMtxX7Toe1M7J8LIpJzEXFs/s320/convert%20dataTypes.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: right;"&gt;&lt;div&gt;وهنا نصل الى نهاية الدرس والقادم اجمل للاستفسار يرجى التواصل معي عبر وسائل التواصل الاجتماعي في الموقع&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLS5uLvaI4VCNyaA6iXvoZMqDnbriZeABygUN5yYigTur-rhlssSBLjgZeuqf-2FD59tXOKLngb31vqCx4GvEcKRhtRpNDZfVAI06trnmrdSHB6Rqt_t-vWI1Qon1g-HoypZU06nrAb2HlarytuHx4ZIMRux2zVcdSE4OM-ip0WU4O6jcGEeLULsomxXDQ/s72-w640-h360-c/Numbers%20InPython.png" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>4-تعرف على انواع بيانات المتغيرات في لغة بايثون-الجزء الاول</title><link>http://muteealjabri.blogspot.com/2024/04/data-types-in-python-.html</link><category>لغة بايثون</category><author>noreply@blogger.com (muteealjabri.blogspot.com)</author><pubDate>Mon, 22 Apr 2024 14:38:00 +0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-5547022875870167028.post-4471241368297797063</guid><description>&lt;p&gt;&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUR9uEozO965nfNyU4Ns8TCKKmj64uBSuhdXdeHn1i_9v1IRuYA7OwMDWgdu0439b5RwVpNbnV4Kdhv_VkVV1n8XqldVE738UTUUShA8Puo8v_BuhD97XcaJVq_J_OsN6aHccuqpaAkY6I_cfaWLLiCEvWGLLrvxQMZbpoWQUs8h73nN2KPzClgoWG4zBw/s1920/Python%20DataType.png" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="1080" data-original-width="1920" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUR9uEozO965nfNyU4Ns8TCKKmj64uBSuhdXdeHn1i_9v1IRuYA7OwMDWgdu0439b5RwVpNbnV4Kdhv_VkVV1n8XqldVE738UTUUShA8Puo8v_BuhD97XcaJVq_J_OsN6aHccuqpaAkY6I_cfaWLLiCEvWGLLrvxQMZbpoWQUs8h73nN2KPzClgoWG4zBw/w640-h360/Python%20DataType.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&amp;nbsp;&lt;p&gt;&lt;/p&gt;&lt;p&gt;السلام عليكم&lt;/p&gt;&lt;p&gt;تعرفنا في الدرس السابق على المتغيرات وكيفية استخدامها في لغة بياثون &lt;a href="https://muteealjabri.blogspot.com/2024/02/variables-in-python.html" target="_blank"&gt;لمزيد من التفاصيل اضغط هنا&lt;/a&gt;&lt;/p&gt;&lt;p&gt;وفي هذا الدرس سوف نتعلم على انواع بيانات المتغيرات.&lt;/p&gt;&lt;p&gt;وبشكل عام انواع البيانات هو احد المفاهيم الاساسية في جميع&amp;nbsp; لغات البرمجة.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;h2 style="text-align: right;"&gt;&lt;b&gt;&lt;span style="color: #0b5394;"&gt;ماهو تعريف&amp;nbsp; انواع البيانات في لغات البرمجة؟&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;&lt;div&gt;مهم جدا ان تتوضح لك فكرة انواع البيانات لان عند استخدامك لأي برنامج مكتوب بأي لغة برمجة&lt;span style="background-color: #cfe2f3;"&gt; قد تلاحظ بعض البيانات عبارة عن رقمية , والبعض الاخر عبارة عن نصوص , وبعضها عبارة من قائمة او مصفوفة من البيانات&lt;/span&gt; , وهذا يفسر بشكل واضح تواجد انواع بيانات مختلفة.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;h2&gt;&lt;b&gt;&lt;span style="color: #0b5394;"&gt;ماسبب تواجد انواع البيانات المختلفة في لغات البرمجة؟&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;&lt;/div&gt;&lt;div&gt;كشخص عادي قد تقول ليه يا عمي انواع بيانات ومافي داعي للحوسة ماهي هي في الاخير بيانات بتنعرض النا .. والجواب على هذا السوال وراح نوضحه ادناه:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;مثلا يا عمي عندك تطبيق محاسبي بسيط لحساب حسابات العملاء قد تحتاج حساب اجمالي ديون عميل مثلا: بطبيعة الحال المبالغ في حساب هذا العميل تكون ارقام لكي يتم تطبيق العمليات الحسابية مثلا الجمع والطرح&amp;nbsp; وينتج الاجمالي.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;في المقابل اسم العميل مثلا "محمد" هل يمكن تطبيق العمليات الحسابية على نص؟؟؟&amp;nbsp;&lt;/div&gt;&lt;div&gt;الجواب : بكل تاكيد لا.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;هل لاحظت انه السلوك في التعامل مع الارقام يختلف في التعامل مع النصوص ويختلف ايضا في التعامل مع الانواع الاخرى.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;h2&gt;&lt;b&gt;&lt;span style="color: #0b5394;"&gt;انواع البيانات في لغة البايثون&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;&lt;/div&gt;&lt;div&gt;الجدول ادناه يوضح انواع البيانات المختلفة ونصنيفها:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;


&lt;style type="text/css"&gt;.nobrtable br { display: none } tr {text-align: center;} tr.alt td {background-color: #eeeecc; color: black;} tr {text-align: center;} caption {caption-side:bottom;}&lt;/style&gt;
&lt;div class="nobrtable"&gt;
&lt;table border="2" bordercolor="#0033FF" cellpadding="10" cellspacing="0" style="background-color: #99ffff; border-collapse: collapse; width: 100%;"&gt;
&lt;caption&gt;انواع البيانات في لغة بايثون&lt;/caption&gt;
&lt;tbody&gt;&lt;tr style="background-color: #0033ff; color: white; padding-bottom: 4px; padding-top: 5px;"&gt;
&lt;th&gt;التصنيف&lt;/th&gt;
&lt;th&gt;نوع البيانات&lt;/th&gt;
&lt;th&gt;التفاصيل&lt;/th&gt;
&lt;/tr&gt;
&lt;tr class="alt"&gt;
&lt;td&gt;Text Types&lt;/td&gt;
&lt;td&gt;str&lt;/td&gt;
&lt;td&gt;وهي بكل بساطة انواع البيانات النصية التي تستخدم للنصوص&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Numeric Types&lt;/td&gt;
&lt;td&gt;int, float, complex&lt;/td&gt;
&lt;td&gt;وهي بكل بساطة انواع البيانات الخاصة بالارقام&lt;/td&gt;
&lt;/tr&gt;
&lt;tr class="alt"&gt;
&lt;td&gt;Sequence Types&lt;/td&gt;
&lt;td&gt;list, tuple, range&lt;/td&gt;
&lt;td&gt;وهي نوع البيانات التي تحتوي على سلسلة او مصفوفة من البيانات&lt;/td&gt;
&lt;/tr&gt;
  
 &lt;tr&gt;
&lt;td&gt;Mapping Type&lt;/td&gt;
&lt;td&gt;dict&lt;/td&gt;
&lt;td&gt;وهو نوع البيانات الذي يعمل مثل القاموس بحيث انه يجب انه لكي تحصل على القيمة يجب ان تمرر قيمة لكي تحصل القيمة المراد الحصول عليها..سيتم توضيح  ذلك بامثلة&lt;/td&gt;
&lt;/tr&gt;
  
&lt;tr class="alt"&gt;
&lt;td&gt;Mapping Type&lt;/td&gt;
&lt;td&gt;dict&lt;/td&gt;
&lt;td&gt;وهو نوع البيانات الذي يعمل مثل القاموس بحيث انه يجب انه لكي تحصل على القيمة يجب ان تمرر قيمة لكي تحصل القيمة المراد الحصول عليها..سيتم توضيح  ذلك بامثلة&lt;/td&gt;
&lt;/tr&gt;
  
 &lt;tr&gt;
&lt;td&gt;Set Types&lt;/td&gt;
&lt;td&gt;set, frozenset&lt;/td&gt;
&lt;td&gt;وهي نوع البيانات مثل المصفوفات ويعمل على تخزين مجموعة من البيانات ولكن مايميز هذه التصنيف انه لايسمح بتكرار البيانات&lt;/td&gt;
&lt;/tr&gt;
  
&lt;tr class="alt"&gt;
&lt;td&gt;Boolean Type&lt;/td&gt;
&lt;td&gt;bool&lt;/td&gt;
&lt;td&gt;وهو توع البيانات الذي يحتوى على قيمة منطقية بمعنى لا او نعم,,ويحتوي هذا النوع على قيمتي true او False&lt;/td&gt;
&lt;/tr&gt;
  
&lt;tr&gt;
&lt;td&gt;Binary Types&lt;/td&gt;
&lt;td&gt;bytes, bytearray, memoryview&lt;/td&gt;
&lt;td&gt;وهو نوع البيانات الذي  يتعامل مع انواع البيانات الثنائية&lt;/td&gt;
&lt;/tr&gt;

&lt;tr class="alt"&gt;
&lt;td&gt;None Type&lt;/td&gt;
&lt;td&gt;NoneType&lt;/td&gt;
&lt;td&gt;وهو نوع البيانات الذي يشير الى القيمة الفارغة او بمايسمى null&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;



&lt;div&gt;من الجدول اعلاه تتوضح تصنيقات البيانات وانواعها بلغة بايثون ,, لا تقلق اذا لم تفهم الجدول اعلاه فسنوضح كل نوع بكافة تفاصيله في الدروس اللاحقة.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;h2&gt;&lt;b&gt;&lt;span style="color: #0b5394;"&gt;كيفية معرفة نوع بيانات المتغير في لغة البايثون؟&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;&lt;/div&gt;&lt;div&gt;كما تعلمنا انه يتم تعريف المتغير في لغة البايثون من خلال الكود ادناه كمثال:&lt;/div&gt;&lt;div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0m9vGVLoXR8xf9GtUMUEJqWbmNTsJwlcg8PFjP_dOooZe3pl6v2icWsTNGW2EBn17z88DfzU9LBl_bmLVcxhqz77UtdLQxgQwgWwTs3-Qt2p7cVMOV6yufpSUF-r9mPdjelh4g56vt46WVoM5smyzdPHzkGVm3nrgo_DCZcHZNPHa5TxuQXWX-EFiKEQF/s245/myName.png" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="68" data-original-width="245" height="68" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0m9vGVLoXR8xf9GtUMUEJqWbmNTsJwlcg8PFjP_dOooZe3pl6v2icWsTNGW2EBn17z88DfzU9LBl_bmLVcxhqz77UtdLQxgQwgWwTs3-Qt2p7cVMOV6yufpSUF-r9mPdjelh4g56vt46WVoM5smyzdPHzkGVm3nrgo_DCZcHZNPHa5TxuQXWX-EFiKEQF/s1600/myName.png" width="245" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;نلاحظ من الكود اعلاه انه عبارة فقط عن تعريف متغير واعطائه قيمة ولكن ايضا نستطيع ان نعرف متغير اخرونعطيه قيمة&amp;nbsp;&lt;/div&gt;&lt;div&gt;ولكن كيف نستطيع ان نعرف نوع المتغير ؟؟&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;لمعرفة نوع بيانات المتغير توفر لغة بايثون دالة اسها type تستطيع من خلالها معرفة نوع بيانات المتغير واليك المثال ادناه:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYrse6d473XfQE96NFoODJb5hurrUWyUOkTE-paHBxUQljRATJSnKvB8P37Jk5ghFFhyoeuoObVXQq5qj3QzimeX6aIxKsU1750AjqLMyo8sAfdS0-Y28hLq5Kmyk6JWuNpPJbRYpyYCe3ikLy9fwl-VOiK7OkJt_WY_9517Z8RZLBPGMw72ShVBrWGC0l/s754/pythonDataType.png" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="491" data-original-width="754" height="260" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYrse6d473XfQE96NFoODJb5hurrUWyUOkTE-paHBxUQljRATJSnKvB8P37Jk5ghFFhyoeuoObVXQq5qj3QzimeX6aIxKsU1750AjqLMyo8sAfdS0-Y28hLq5Kmyk6JWuNpPJbRYpyYCe3ikLy9fwl-VOiK7OkJt_WY_9517Z8RZLBPGMw72ShVBrWGC0l/w400-h260/pythonDataType.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;نلاحظ من الكود اعلاه انه تم تعريف متغيرين myName واعطائه القيمة mutee وتم تعريف متغير اخر ايضا اسمه x وتما اعطائه القيمة 5&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ولكي نعرف نوع بيانات المتغيرين قمنا باستخدام الدالة type&amp;nbsp; ومررنا لها المتغير myName وحصلنا على الناتج التالي&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;lt;'class 'str&amp;gt;&amp;nbsp; وهذا يشير الى نوع المتغير myName يساوي str وهو ومتغير نصي.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;قمنا باستخدام الدالة type&amp;nbsp; ومررنا لها المتغير x وحصلنا على الناتج التالي&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;lt;'class 'int&amp;gt;&amp;nbsp; وهذا يشير الى نوع المتغير x يساوي int وهو ومتغير رقمي&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;وهنا نصل الى نهاية الدرس ففي الدروس القادمة سوف نفصل ونشرح كل نوع من انواع البيانات بالتفصيل&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUR9uEozO965nfNyU4Ns8TCKKmj64uBSuhdXdeHn1i_9v1IRuYA7OwMDWgdu0439b5RwVpNbnV4Kdhv_VkVV1n8XqldVE738UTUUShA8Puo8v_BuhD97XcaJVq_J_OsN6aHccuqpaAkY6I_cfaWLLiCEvWGLLrvxQMZbpoWQUs8h73nN2KPzClgoWG4zBw/s72-w640-h360-c/Python%20DataType.png" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>1-Flutter CURD App With  Floor</title><link>http://muteealjabri.blogspot.com/2024/03/1-flutter-curd-app-with-floor.html</link><category>android-programming</category><category>Flutter</category><author>noreply@blogger.com (muteealjabri.blogspot.com)</author><pubDate>Mon, 11 Mar 2024 19:29:00 +0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-5547022875870167028.post-6191326301211918759</guid><description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEgpqv7ccCNkzH7Cds3jSPqY_fwSkPYZXysU7Axho2R1L9pQ4nXiQ7-mE5TMfU5xLs_cCfKxG5_ICaNNr8ulP3zEJ3RpJS19mys1zM56QG7MvMUH-_bVjOMkbZ7V-KjJpZ7chx7cLl8cV96uco2qHn2DxxNQrr3AaJcS32zQY5WH3Yl6T4M842mDayVxi5b7" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img data-original-height="720" data-original-width="1280" height="360" src="https://blogger.googleusercontent.com/img/a/AVvXsEgpqv7ccCNkzH7Cds3jSPqY_fwSkPYZXysU7Axho2R1L9pQ4nXiQ7-mE5TMfU5xLs_cCfKxG5_ICaNNr8ulP3zEJ3RpJS19mys1zM56QG7MvMUH-_bVjOMkbZ7V-KjJpZ7chx7cLl8cV96uco2qHn2DxxNQrr3AaJcS32zQY5WH3Yl6T4M842mDayVxi5b7=w640-h360" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="text-align: left;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="text-align: left;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="text-align: left;"&gt;This Project Made By Flutter and Floor DataBase&lt;/p&gt;
&lt;div style="text-align: center;"&gt;&lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/kFy46Iaj5gc?si=dkdqZb2XHE6UkAyG" title="YouTube video player" width="560"&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p style="text-align: left;"&gt;Source Code&amp;nbsp;&lt;/p&gt;&lt;p style="text-align: left;"&gt;&lt;a href="https://github.com/muteealjabri9/notes_app_using_floor"&gt;Github&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/a/AVvXsEgpqv7ccCNkzH7Cds3jSPqY_fwSkPYZXysU7Axho2R1L9pQ4nXiQ7-mE5TMfU5xLs_cCfKxG5_ICaNNr8ulP3zEJ3RpJS19mys1zM56QG7MvMUH-_bVjOMkbZ7V-KjJpZ7chx7cLl8cV96uco2qHn2DxxNQrr3AaJcS32zQY5WH3Yl6T4M842mDayVxi5b7=s72-w640-h360-c" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>4-ماهي المتغيرات؟ وكيفية استخدامها في لغة بايثون؟</title><link>http://muteealjabri.blogspot.com/2024/02/variables-in-python.html</link><category>لغة بايثون</category><author>noreply@blogger.com (muteealjabri.blogspot.com)</author><pubDate>Thu, 8 Feb 2024 15:01:00 +0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-5547022875870167028.post-1037204658690968693</guid><description>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEir58njM2cvoMqhCLYRwh00mJOV75aMSx3LCMwIoILHQ2ZATkrMxivGN_XGOz_KrOZVyCLBJK3Rsg06uwdNKvGxQ3IAjCo64TJOTWBYfcAd3h4rUYbSfewMubyA2KFoVzF6Bvgp5xz0OVdlJpUDL7owgqqhmOz-LlgG5MXT2RnBOq8_SoqyJ70i5BC1WBXT/s1920/%D8%A7%D9%84%D9%85%D8%AA%D8%BA%D9%8A%D8%B1%D8%A7%D8%AA%20%D8%A8%D9%84%D8%BA%D8%A9%20%D8%A8%D8%A7%D9%8A%D8%AB%D9%88%D9%86.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="1080" data-original-width="1920" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEir58njM2cvoMqhCLYRwh00mJOV75aMSx3LCMwIoILHQ2ZATkrMxivGN_XGOz_KrOZVyCLBJK3Rsg06uwdNKvGxQ3IAjCo64TJOTWBYfcAd3h4rUYbSfewMubyA2KFoVzF6Bvgp5xz0OVdlJpUDL7owgqqhmOz-LlgG5MXT2RnBOq8_SoqyJ70i5BC1WBXT/w640-h360/%D8%A7%D9%84%D9%85%D8%AA%D8%BA%D9%8A%D8%B1%D8%A7%D8%AA%20%D8%A8%D9%84%D8%BA%D8%A9%20%D8%A8%D8%A7%D9%8A%D8%AB%D9%88%D9%86.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;السلام عليكم&lt;/p&gt;&lt;p&gt;سوف نتعلم في هذا الدرس مفهوم المتغيرات في البرمجة بشكل عام وفي لغة بايثون بشكل خاص&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #351c75; font-size: large;"&gt;&lt;b&gt;ماهو مفهوم المتغيرات ؟&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;بشكل مبسط يمكنك فهم المتغيرات في البرمجة وهو تعريف لصندوق او حاوي نضع بداخله شي ما..&lt;/p&gt;&lt;p&gt;وهذا الشي هو قيمة معينة..&lt;/p&gt;&lt;p&gt;لم تفهم شي ؟ صح؟&lt;/p&gt;&lt;p&gt;مثلا نريد ان نعرض نص معين مثلا Mohammed&amp;nbsp; ونريد استخدام المتغيرات لعرض هذا النص&lt;/p&gt;&lt;p&gt;فالقيمة هنا تعتبر هو النص Mohammed والصندوق الذي نضع القيمة بداخله يتم تمثيله هو الذاكرة الخاصة بالجهاز&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: large;"&gt;بمعنى ان المتغيرات هي عبارة عن قيم ومعلومات يتم تخزينها في الذاكرة الخاصة بالجهاز الذي يتم تشغيل البرنامج الذي سيتم تشغيل البرنامج عليه.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;b style="color: #351c75; font-size: x-large;"&gt;كيف يتم تعريف المتغيرات في لغة Python&lt;/b&gt;&lt;b style="color: #351c75; font-size: x-large;"&gt;&amp;nbsp;؟&lt;/b&gt;&lt;/p&gt;&lt;p&gt;في لغة بايثون يتم تعريف المتغير من خلال كتابة اسم المتغير ثم اشارة يساوي ومن ثم قيمة المتغير مثلما في الكود ادناه:&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIE8jidss_qa4jREhPcHtk68PtoUk03Tz2EUt_wC1MueUl3pZvJaFkbxtiHLM7BqZQTIX9dvD72ud1kjYnhA-LvgV7RUWdWMW2cF0ywisNbMQsvqfqtDLgOtYPH3AdYmHUW3r3fsQ4aGTN6ek5Ds9z4OIDuFh9l0iR0Y-3SJJI-tZeEjTWU1n4H0L6oPO3/s351/variable%20Python.png" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="65" data-original-width="351" height="118" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIE8jidss_qa4jREhPcHtk68PtoUk03Tz2EUt_wC1MueUl3pZvJaFkbxtiHLM7BqZQTIX9dvD72ud1kjYnhA-LvgV7RUWdWMW2cF0ywisNbMQsvqfqtDLgOtYPH3AdYmHUW3r3fsQ4aGTN6ek5Ds9z4OIDuFh9l0iR0Y-3SJJI-tZeEjTWU1n4H0L6oPO3/w640-h118/variable%20Python.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;نلاحظ من الكود انه تم تعريف متغير بأسم myName وتم اعطائه القيمة Mohammed ونلاحظ ان القيمة تم وضعها بين علامتي التنصيص وهذا يدل على ان نوع قيمة هذا المتغير قيمة نصية , وسيتم التطرق لانواع المتغيرات في دروس لاحقة.&lt;/p&gt;&lt;p&gt;يمكننا استخدام المتغير الي قمنا بتعريفه في البرنامج بطرق عديدة وعلى سبيل المثال يمكننا طباعة قيمة المتغير من خلال الكود ادناه باستخدام الدالة print التي تقوم بطباعة مايتم تمريره لها مثلما في الكود ادناه:&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhulg4knZN8eeHaS_fek5-n-CbTKHIpts_Shcjs-BWcMcXbEG8Tl1S2-AOF9QMuQCqk3KLOynpLbSaK3DfvMrmY92R_GQuYTWSCqkgq8JqfsRVALPJ7qSN07w8HB2qZyuNFi3mOPaBoEJ4_tZMOZ1zO6zD8cIHK5kZB64D8URQlFb6H2unXxIDlJ9RCZgNf/s1162/variable%20Python2.png" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="650" data-original-width="1162" height="358" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhulg4knZN8eeHaS_fek5-n-CbTKHIpts_Shcjs-BWcMcXbEG8Tl1S2-AOF9QMuQCqk3KLOynpLbSaK3DfvMrmY92R_GQuYTWSCqkgq8JqfsRVALPJ7qSN07w8HB2qZyuNFi3mOPaBoEJ4_tZMOZ1zO6zD8cIHK5kZB64D8URQlFb6H2unXxIDlJ9RCZgNf/w640-h358/variable%20Python2.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;نلاحظ من الصورة اعلاه انه تم طباعة قيمة المتغير myName وتمت طباعة القيمة Mohammed .&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;في الدرس القادم في سوف نتظرق الى انواع المتغيرات&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEir58njM2cvoMqhCLYRwh00mJOV75aMSx3LCMwIoILHQ2ZATkrMxivGN_XGOz_KrOZVyCLBJK3Rsg06uwdNKvGxQ3IAjCo64TJOTWBYfcAd3h4rUYbSfewMubyA2KFoVzF6Bvgp5xz0OVdlJpUDL7owgqqhmOz-LlgG5MXT2RnBOq8_SoqyJ70i5BC1WBXT/s72-w640-h360-c/%D8%A7%D9%84%D9%85%D8%AA%D8%BA%D9%8A%D8%B1%D8%A7%D8%AA%20%D8%A8%D9%84%D8%BA%D8%A9%20%D8%A8%D8%A7%D9%8A%D8%AB%D9%88%D9%86.png" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>3-كتابة اول كود لك في لغة بايثون</title><link>http://muteealjabri.blogspot.com/2024/02/first-program-with-python.html</link><category>لغة بايثون</category><author>noreply@blogger.com (muteealjabri.blogspot.com)</author><pubDate>Thu, 8 Feb 2024 11:45:00 +0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-5547022875870167028.post-5131018035803172471</guid><description>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgC1eR5QsfIADL9Y7SmN8lfIyJeT9rjhNhdcoEHGfP6KMheGDnJjc6EsQ4_bLwWomhhxq6aXdGOKgNn01DRCwD3srr65BlZFnVStdFa-XMuOX4HGFnF0SM0oT5v1vfAMONYCENdEsV3bKRZopXpMP2lk8SZ7lTDDOfRySQWxv4LLo0rVUdsnWby_9b9-sXV/s1920/Add%20a%20heading.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="1080" data-original-width="1920" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgC1eR5QsfIADL9Y7SmN8lfIyJeT9rjhNhdcoEHGfP6KMheGDnJjc6EsQ4_bLwWomhhxq6aXdGOKgNn01DRCwD3srr65BlZFnVStdFa-XMuOX4HGFnF0SM0oT5v1vfAMONYCENdEsV3bKRZopXpMP2lk8SZ7lTDDOfRySQWxv4LLo0rVUdsnWby_9b9-sXV/w640-h360/Add%20a%20heading.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;السلام عليكم&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;بعد تنصيب الادوات والبرامج اللازمة للبرمجة بلغة بايثون سوف نبدا الان بكتابة اول كود للانطلاق والابحار في لغة بايثون&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;وعلى بركة الله نبدا..&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="color: #674ea7; font-size: large;"&gt;1- أولا نقوم بفتح برنامج فيجول استديو كود&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;b&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiP-DeJQQD9QHt2LNvin22X57gjBNQXmCzkh9P0tP37CINJStFqL2yvcdop0dfMkxGliUw4qhthM-JgbTr_RJTDeOZmTZLKIn29wdnFc5vd1AGJnrGXypLY_eUBXa4LM_X6ENJhht3CUqil_fSET9EtE6aNdKBSWE4C2zP3tFTyDRe0LKR5Ns4GnmlhNUZK/s1920/vs3.png" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="1026" data-original-width="1920" height="342" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiP-DeJQQD9QHt2LNvin22X57gjBNQXmCzkh9P0tP37CINJStFqL2yvcdop0dfMkxGliUw4qhthM-JgbTr_RJTDeOZmTZLKIn29wdnFc5vd1AGJnrGXypLY_eUBXa4LM_X6ENJhht3CUqil_fSET9EtE6aNdKBSWE4C2zP3tFTyDRe0LKR5Ns4GnmlhNUZK/w640-h342/vs3.png" width="640" /&gt;&lt;/a&gt;&lt;/b&gt;&lt;/div&gt;&lt;b&gt;&lt;br /&gt;&lt;span style="color: #674ea7; font-size: large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color: #674ea7; font-size: large;"&gt;&lt;b&gt;2-بعد ذلك نقوم بانشاء مجلد جديد في اي مكان في جهازك&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="separator" style="clear: both; color: #674ea7; font-size: x-large; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZa-i_3kDVKuIUNM9JavExbXJPqW4P9qhS0fGtdBrkQd_L2lSnZjAuj-OsWDXhuLvH9JQ2n645I8OkbF59EwTMyn2LBH1qZ21Liu0yi3oHzKGb5C07tOmlK-zogY9zDAKkwAunj11OpTIKDvSVNxTamJuHzoAKciYo49VCWcBQLD0xJv1SQY8lM-OLDHjT/s1907/pythonProjects.png" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="1021" data-original-width="1907" height="342" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZa-i_3kDVKuIUNM9JavExbXJPqW4P9qhS0fGtdBrkQd_L2lSnZjAuj-OsWDXhuLvH9JQ2n645I8OkbF59EwTMyn2LBH1qZ21Liu0yi3oHzKGb5C07tOmlK-zogY9zDAKkwAunj11OpTIKDvSVNxTamJuHzoAKciYo49VCWcBQLD0xJv1SQY8lM-OLDHjT/w640-h342/pythonProjects.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;هذا المجلد سيحتوي ملفات بايثون التي سيتم كتابتها&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="color: #674ea7; font-size: large;"&gt;3- نقوم بفتح المجلد باستخدام visual studio code&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;من القائمة العلوية في برنامج visual studio code نختار File&amp;nbsp; ثم نختار Open Folder&amp;nbsp; ثم نختار المجلد الذي قمنا بانشائه.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="color: #674ea7; font-size: large;"&gt;4- إنشاء ملف Python&lt;/span&gt;&lt;/b&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;من القائمة العلوية نختار File&amp;nbsp; ثم نختار New File&amp;nbsp; ثم نعطي اي اسم للملف ويكون امتداد الملف .py&amp;nbsp; ثم نختار create New File&lt;/p&gt;&lt;p&gt;مثلما في الصورة ادناه:&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEht4LnGhhqO5WS0LyWNC7-fY4fAkGJm_S-p7hFIkFu9bWMSgtrLdahVhOr7yKfe59tDv9wmauY3wS2hHriPoCW4oLxka94bohUVbDMV99F6OtFJcfAYUR_V4UdZd4CLpaWXVPOvlK0HI7KmQSDc4B7EBrph0MIwA7BgPD_Cd_e-0TReNw92D_YkZqwnt60w/s1920/pythonFile.png" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="298" data-original-width="1920" height="100" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEht4LnGhhqO5WS0LyWNC7-fY4fAkGJm_S-p7hFIkFu9bWMSgtrLdahVhOr7yKfe59tDv9wmauY3wS2hHriPoCW4oLxka94bohUVbDMV99F6OtFJcfAYUR_V4UdZd4CLpaWXVPOvlK0HI7KmQSDc4B7EBrph0MIwA7BgPD_Cd_e-0TReNw92D_YkZqwnt60w/w640-h100/pythonFile.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;b&gt;&lt;span style="color: #674ea7; font-size: large;"&gt;5- كتابة وتشغيل اول كود بايثون&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;بعد انشاء الملف سوف تظهر محرر الاكواد الذي سيتم كتابة الاكواد فيه وسنقوم بكتابة اول كود الذي سيقوم بطباعة جملة في الterminal&amp;nbsp; والكود ادناه الذي سنقوم بكتابته ثم نضغط على زر Run وستظهر النتيجة ادناه:&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiq-HOcuJ-EWAtR7B0Uj9Lqf5BRNEd1Sm24FYfuXq8rqnHtEdbymb962DZIiNjW_vO_PPvGFHwq9wEQlrViRuJaLEYnd_U-A2ah03Rz7NPCXphR-9RZcAwL2OS5AsXI6neXrVYIKPc1lhJbbs3_-qyrpZ-3mok6-tFiQi7TIjNJ_vvnFLdxUU-KPlltGons/s1902/pythone%201.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="1018" data-original-width="1902" height="342" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiq-HOcuJ-EWAtR7B0Uj9Lqf5BRNEd1Sm24FYfuXq8rqnHtEdbymb962DZIiNjW_vO_PPvGFHwq9wEQlrViRuJaLEYnd_U-A2ah03Rz7NPCXphR-9RZcAwL2OS5AsXI6neXrVYIKPc1lhJbbs3_-qyrpZ-3mok6-tFiQi7TIjNJ_vvnFLdxUU-KPlltGons/w640-h342/pythone%201.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgC1eR5QsfIADL9Y7SmN8lfIyJeT9rjhNhdcoEHGfP6KMheGDnJjc6EsQ4_bLwWomhhxq6aXdGOKgNn01DRCwD3srr65BlZFnVStdFa-XMuOX4HGFnF0SM0oT5v1vfAMONYCENdEsV3bKRZopXpMP2lk8SZ7lTDDOfRySQWxv4LLo0rVUdsnWby_9b9-sXV/s72-w640-h360-c/Add%20a%20heading.png" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>2- الادوات اللازمة للبدء في تعلم بايثون</title><link>http://muteealjabri.blogspot.com/2024/02/2.html</link><category>لغة بايثون</category><author>noreply@blogger.com (muteealjabri.blogspot.com)</author><pubDate>Sat, 3 Feb 2024 16:42:00 +0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-5547022875870167028.post-3216177746284608374</guid><description>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtHiVhuRRzDUAf2ixgFu5W6l1FGWXA7GUh_Y19h3lVrYJ8qimv671Iwa9-m8rvJnZJ9hngkUEqO3t2XoaHjEPo8_n7ESt8wMUG5-nwJ00I2D-YWhBySpCqxRTD6DN-T53XgCWqtGw05Hh7cVUm_5GK9TsxJVMm1Rl1cG7g9UyxWru7KC2WqPMUxLJpXuzw/s1920/Add%20a%20heading.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="1080" data-original-width="1920" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtHiVhuRRzDUAf2ixgFu5W6l1FGWXA7GUh_Y19h3lVrYJ8qimv671Iwa9-m8rvJnZJ9hngkUEqO3t2XoaHjEPo8_n7ESt8wMUG5-nwJ00I2D-YWhBySpCqxRTD6DN-T53XgCWqtGw05Hh7cVUm_5GK9TsxJVMm1Rl1cG7g9UyxWru7KC2WqPMUxLJpXuzw/w640-h360/Add%20a%20heading.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp; السلام عليكم&lt;/p&gt;&lt;p&gt;&amp;nbsp;لكي نتمكم من كتابة اكواد وبرامج بلغة بايثون يجب اولا تحميل الادوات والبرامج المطلوبة .&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="text-align: center;"&gt;&lt;b&gt;اولا : تحميل وتنصيب برنامج لغة بايثون&lt;/b&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="text-align: right;"&gt;&lt;/p&gt;&lt;ul style="text-align: right;"&gt;&lt;li&gt;نقوم بتنزيل البرنامج من الرابط التالي&amp;nbsp;&lt;a href="https://www.python.org/" target="_blank"&gt;Python&lt;/a&gt;&amp;nbsp;.&lt;/li&gt;&lt;li&gt;نضغط على download&amp;nbsp; في الموقع ثم نختار النسخة المناسبة لنظام التشغيل بنا.&lt;/li&gt;&lt;li&gt;&amp;nbsp;نقوم بتثبيت البرنامج بطريقة طبيعية كتثبيت أي برنامج.&lt;/li&gt;&lt;li&gt;بعد ذلك نقوم باضافة مسار التثبيت الى متغيرات البيئة في الويندوز.&lt;/li&gt;&lt;li&gt;نقوم بفتح موجه الاوامر في الويندز cmd وننكتب الامر py --version&amp;nbsp; في حال ظهرت نسخة البايثون فهذا يعني انه تم تثبيت لغة البايثون بنجاح كما في الصورة ادناه:&lt;/li&gt;&lt;/ul&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAsy2El-AnVe1xQKDTKS1cuNwPG6xX6nL-riDGLvz_8B5l0AX_zQwxtyjfLyBypilyShKy_4xxplHiP4JeRMmbcrRTHnSx5YA7gvTYpFK-0JTHbmPEZy0MPFSpy6DvQJl6sYkYN1LH_Ka0f41fzECGCsCYTFO5Uc9Io8TcZh34Lb2zhhyphenhyphen9L2t6dsq4ioJs/s1092/cmd.png" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="500" data-original-width="1092" height="293" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAsy2El-AnVe1xQKDTKS1cuNwPG6xX6nL-riDGLvz_8B5l0AX_zQwxtyjfLyBypilyShKy_4xxplHiP4JeRMmbcrRTHnSx5YA7gvTYpFK-0JTHbmPEZy0MPFSpy6DvQJl6sYkYN1LH_Ka0f41fzECGCsCYTFO5Uc9Io8TcZh34Lb2zhhyphenhyphen9L2t6dsq4ioJs/w640-h293/cmd.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: right;"&gt;&lt;b style="text-align: center;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ثانيا: تحميل وتنصيب محرر الاكواد&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: right;"&gt;في هذه الخطوة نقوم بتحميل محرر الاكواد وهو البرنامج الذي ستتم كتابة الاكواد وتنفيذها من خلاله&amp;nbsp;&lt;/div&gt;&lt;div style="text-align: right;"&gt;توجد خيارات كثيرة&amp;nbsp; من هذه المحررات مثل visual studio code&amp;nbsp; او pycharm&amp;nbsp;&lt;/div&gt;&lt;div style="text-align: right;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: right;"&gt;سوف نقوم باختيار برنامج visual studio code وهو محرر الاكواد الاكثر شهرة مع العلم انه يمكنك ان تستخدم اي محرر اكواد تراه مناسبا.&lt;/div&gt;&lt;div style="text-align: right;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: right;"&gt;&lt;ul style="text-align: right;"&gt;&lt;li&gt;نقوم بالذهاب الى الموقع الرسمي لمحرر الاكواد فيجول ستديو كود من الرابط التالي&lt;a href="https://code.visualstudio.com/download" target="_blank"&gt;تحميل visual studio code&lt;/a&gt;&lt;/li&gt;&lt;li&gt;نقوم بتنزيل ملف تثبيت visual studio code مثل أي تثبيت برنامج اخر.&lt;/li&gt;&lt;li&gt;نقوم بفتح برنامج visual studio code&amp;nbsp; وستظهر الواجهة الرئيسية للبرنامج مثل الصورة ادناه:&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVFvbqtvhy3ckhd3uJhyphenhyphen7VaC5r9EAUN3ht17-kGdnFBNVCyRWVxZfuAQhDOCRFxJW49RTKTk5ttlgpDCiEjeAX9eS9dLrepBOGZZcf5y0z0PFoegmWYarlbj9Vc1jzTKy1f8cXu3NWVxW8fdeDvzD8PkaxQlmbPK6lyKuwgY172QnJE2ZCyub74bo7juRD/s1897/vs%20code.png" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="1018" data-original-width="1897" height="344" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVFvbqtvhy3ckhd3uJhyphenhyphen7VaC5r9EAUN3ht17-kGdnFBNVCyRWVxZfuAQhDOCRFxJW49RTKTk5ttlgpDCiEjeAX9eS9dLrepBOGZZcf5y0z0PFoegmWYarlbj9Vc1jzTKy1f8cXu3NWVxW8fdeDvzD8PkaxQlmbPK6lyKuwgY172QnJE2ZCyub74bo7juRD/w640-h344/vs%20code.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: right;"&gt;من القائمة العلوية نختار مايلي&lt;/div&gt;&lt;div style="text-align: right;"&gt;File-&amp;gt;Preferences-&amp;gt;Extensions&lt;/div&gt;&lt;div style="text-align: right;"&gt;&amp;nbsp;سوف تظهر لنا قائمة الاضافات نقوم بالبحث عن Python كما في الصورة ادناه:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjj785wyEc5dTlYuBj1GagdBhVbRz4BFXWYIhbxD4MzKUpyxuV4ixgTLMXJDJxVLDzp9MV0lS0ur9tyBx4A7R8y_VBpuWNXxVAZPmTokfZLBNcRi6sXIgCvs9DQai2J7d-NuWZsXGm8C7l46QqZ1h5gRbK_8P51HL_aYb8HmJ7kNC6IN_EIGLfHTJFB7Re3/s1915/vs%202.png" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="1026" data-original-width="1915" height="342" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjj785wyEc5dTlYuBj1GagdBhVbRz4BFXWYIhbxD4MzKUpyxuV4ixgTLMXJDJxVLDzp9MV0lS0ur9tyBx4A7R8y_VBpuWNXxVAZPmTokfZLBNcRi6sXIgCvs9DQai2J7d-NuWZsXGm8C7l46QqZ1h5gRbK_8P51HL_aYb8HmJ7kNC6IN_EIGLfHTJFB7Re3/w640-h342/vs%202.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: right;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: right;"&gt;نختار python ثم نضغط install&amp;nbsp; ثم نتنظر إلى ان يتم استكمال التثبيت&lt;/div&gt;&lt;div style="text-align: right;"&gt;&amp;nbsp;بعد ذلك نقوم باغلاق visual studio code&amp;nbsp; ونعيد فتحه من جديد مرة اخرى.&lt;/div&gt;&lt;div style="text-align: right;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: right;"&gt;نقوم بالذهاب الى القائمة العلوية View ونختار Command Platte&amp;nbsp; ثم نختار الامر Python: Select Interpreter&lt;/div&gt;&lt;div style="text-align: right;"&gt;بعد ذلك نقوم باختيار مسار التثبيت الذي تم تثبيت paython فيه.&lt;/div&gt;&lt;div style="text-align: right;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: right;"&gt;بعد هذه الخطوات استكلمنا جميع خطوات تثبيت بايثون.&lt;/div&gt;&lt;div style="text-align: right;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: right;"&gt;في حال واجهتك مشاكل او لمزيد من الاستفسار يرجى التواصل على واتساب من خلال الرابط التالي:&lt;a href="https://wa.me/+967733736075"&gt;واتساب&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtHiVhuRRzDUAf2ixgFu5W6l1FGWXA7GUh_Y19h3lVrYJ8qimv671Iwa9-m8rvJnZJ9hngkUEqO3t2XoaHjEPo8_n7ESt8wMUG5-nwJ00I2D-YWhBySpCqxRTD6DN-T53XgCWqtGw05Hh7cVUm_5GK9TsxJVMm1Rl1cG7g9UyxWru7KC2WqPMUxLJpXuzw/s72-w640-h360-c/Add%20a%20heading.png" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>1-مقدمة عن لغة بايثون</title><link>http://muteealjabri.blogspot.com/2024/02/1.html</link><category>لغة بايثون</category><author>noreply@blogger.com (muteealjabri.blogspot.com)</author><pubDate>Fri, 2 Feb 2024 20:14:00 +0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-5547022875870167028.post-3502232526974355666</guid><description>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKRq2B3Hv4LrV6hyflBGEx353VryGCparFChDTQPCDM3Fqbq3AS2SGHZF6tX5k1K5vNwSzWmMu3wjGAu4GVZVOrfkfKtycHdoE_s19qEoBt4hwAnfpFWtK2xfxGMHt2Tod6C14MlCZUo4GQlAolsUmQGeflxQZfcXq9-lItSi7OWsw4zbNZlQNh1gsnpbF/s1920/Add%20a%20heading%20(1).png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" data-original-height="1080" data-original-width="1920" height="360" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKRq2B3Hv4LrV6hyflBGEx353VryGCparFChDTQPCDM3Fqbq3AS2SGHZF6tX5k1K5vNwSzWmMu3wjGAu4GVZVOrfkfKtycHdoE_s19qEoBt4hwAnfpFWtK2xfxGMHt2Tod6C14MlCZUo4GQlAolsUmQGeflxQZfcXq9-lItSi7OWsw4zbNZlQNh1gsnpbF/w640-h360/Add%20a%20heading%20(1).png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;السلام عليكم&amp;nbsp;&lt;/p&gt;&lt;p&gt;سوف نبدا سلسة جديدة في تعلم لغة برمجة جديدة وهي لغة بايثون.&lt;/p&gt;&lt;p&gt;سيكون هذا الدرس حول ثلاثة محاور رئيسية&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="color: #2b00fe; font-size: large;"&gt;1-لماذا يجب تعلم بايثون.&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="color: #2b00fe;"&gt;&lt;span style="font-size: large;"&gt;2- كيف اتعلم لغة بايثون.&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="color: #2b00fe;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style="text-align: center;"&gt;&lt;b&gt;&lt;span style="color: #2b00fe; font-size: large;"&gt;1-لماذا يجب تعلم بايثون؟&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style="text-align: right;"&gt;&lt;/p&gt;&lt;ul style="text-align: right;"&gt;&lt;li&gt;لغة بايثون هي احد اللغات الواسعة الانتشار مؤخرا والسبب في ذلك هي تعدد استخداماتها ومن اشهر مجالاتها هو مجال الذكاء الاصطناعي بجميع مجالاته.&lt;/li&gt;&lt;li&gt;لغة بايثون&amp;nbsp; بسطة جدا وسهلة التعلم.&lt;/li&gt;&lt;li&gt;ممكن استخدامها في عمليات الاتتمتة.&lt;/li&gt;&lt;li&gt;يمكن استخدامها في بناء المواقع او التطبيقات للجوال او الكمبيوتر.&lt;/li&gt;&lt;li&gt;مختصرة جدا في كتابة الاكواد.&lt;/li&gt;&lt;li&gt;تعتبر لغة عالية المستوى حيث لاتحتاج للتعامل مع ادرة الذاكرة وموارد الجهاز مثل المعالج الخ.&lt;/li&gt;&lt;li&gt;تعتبر لغة بايثون cross platform بمعنى ان البرنامج المكتوب بلغة بايثون يمكن تشغيله على انظمة التشغيل المختلفة.&lt;/li&gt;&lt;li&gt;لغة بايثون لها مجتمع مبرمجين كبير جدا بحيث انه يمكن الحصول على اي حل لأي مشكلة بسهولة من خلال المجتمع الكبير للغة.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;b&gt;&lt;span style="color: #2b00fe;"&gt;&lt;span style="font-size: large;"&gt;2- كيف اتعلم لغة بايثون؟&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: right;"&gt;&amp;nbsp;افضل طريقة لتعلم لغة بايثون وهي من خلال :&lt;/div&gt;&lt;div style="text-align: right;"&gt;&lt;ul style="text-align: right;"&gt;&lt;li&gt;تعلم الاساسيات وهي كيف تكتب كود بايثون خالي من الاخطاء .&amp;nbsp;&lt;/li&gt;&lt;li&gt;تطبيق المفاهيم البرمجية العامة وتنفيذها بلغة بايثون.&lt;/li&gt;&lt;li&gt;تنفيذ وبرمجة مشاريع حقيقية.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;سيتم توضيح التفاصيل المذكورة اعلاه في الدروس القادمة.&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="color: #2b00fe;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;span style="color: #2b00fe;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgKRq2B3Hv4LrV6hyflBGEx353VryGCparFChDTQPCDM3Fqbq3AS2SGHZF6tX5k1K5vNwSzWmMu3wjGAu4GVZVOrfkfKtycHdoE_s19qEoBt4hwAnfpFWtK2xfxGMHt2Tod6C14MlCZUo4GQlAolsUmQGeflxQZfcXq9-lItSi7OWsw4zbNZlQNh1gsnpbF/s72-w640-h360-c/Add%20a%20heading%20(1).png" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">0</thr:total></item><item><title>ماهو Table Layout  وكيفية استخدامه؟</title><link>http://muteealjabri.blogspot.com/2017/04/table-layout-1-table-layout-2-table.html</link><category>android-programming</category><author>noreply@blogger.com (muteealjabri.blogspot.com)</author><pubDate>Sun, 10 Jan 2021 01:59:00 +0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-5547022875870167028.post-7178033318590490045</guid><description>&lt;div dir="rtl" style="text-align: right;" trbidi="on"&gt;
&lt;div dir="rtl"&gt;
السلام عليكم متابعي مدونة مطيع الجابري سنقوم في هذا الدرس &amp;nbsp;بشرح Table Layout وكيفية استخدامه وفي تصميم واجهات تطبيقات الاندرويد وسنتعلم في هذا الدرس مايلي :-&lt;/div&gt;
&lt;div dir="rtl"&gt;
&lt;b&gt;&lt;span style="color: red;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div dir="rtl"&gt;
&lt;b&gt;&lt;span style="color: red;"&gt;1-ماهو table layout؟ &lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;span style="color: red;"&gt;
2-كيفية استخدام table layout؟ &lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div dir="rtl"&gt;
&lt;b&gt;&lt;span style="color: red;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;h4 style="text-align: center;"&gt;
&lt;span style="color: red; font-size: large;"&gt;&lt;u&gt;1- مــــاهو Table Layout؟ &lt;/u&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;div dir="rtl"&gt;
Table layout &amp;nbsp;هو عبارة عن view group يقوم بترتيب العناصر views التي بداخله على شكل صفوف وأعمدة. &lt;br /&gt;
يتم استخدام الوسم Table row لتعريف صف واحد بداخل الجدول ومن ثم يتم وضع العناصر بداخل كل صف بشكل افقي بحيث كل صف ممكن يحتوي واحد او اكثر من العناصر. &lt;/div&gt;
&lt;div dir="rtl"&gt;
2-كيفية استخدام table layout? &lt;/div&gt;
&lt;div dir="rtl"&gt;
سنشرح الان كيفية استخدام table layout وذلك باستخدامه في تصميم واجهة بسيطة لتطبيق أندرويد كما في الكود ادناه:-&lt;/div&gt;
&lt;div dir="rtl"&gt;
&lt;br /&gt;
&lt;!--HTML generated using hilite.me--&gt;&lt;br /&gt;
&lt;div dir="ltr" style="background: rgb(255, 255, 255); border-width: 0.1em 0.1em 0.1em 0.8em; border: solid gray; overflow: auto; padding: 0.2em 0.6em; text-align: left; width: auto;"&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;pre style="line-height: 125%; margin: 0px;"&gt; 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41&lt;/pre&gt;
&lt;/td&gt;&lt;td&gt;&lt;pre style="line-height: 125%; margin: 0px;"&gt;&lt;span style="color: #557799;"&gt;&amp;lt;?xml ​version="1.0"​encoding="utf-8"?&amp;gt;&lt;/span&gt;
&lt;span style="color: #007700;"&gt;&amp;lt;TableLayout&lt;/span&gt; &lt;span style="color: #0000cc;"&gt;xmlns:android=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"http://schemas.android.com/apk/res/android"&lt;/span&gt;
    &lt;span style="color: #0000cc;"&gt;android:layout_width=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"fill_parent"&lt;/span&gt;
    &lt;span style="color: #0000cc;"&gt;android:layout_height=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"fill_parent"&lt;/span&gt; &lt;span style="color: #007700;"&gt;&amp;gt;&lt;/span&gt;
​​​​
    &lt;span style="color: #007700;"&gt;&amp;lt;TableRow&amp;gt;&lt;/span&gt;
​​​​​​
        &lt;span style="color: #007700;"&gt;&amp;lt;TextView&lt;/span&gt;
            &lt;span style="color: #0000cc;"&gt;android:text=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"User​Name:"&lt;/span&gt;
            &lt;span style="color: #0000cc;"&gt;android:width=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"120px"&lt;/span&gt; &lt;span style="color: #007700;"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style="color: #007700;"&gt;&amp;lt;EditText&lt;/span&gt;
            &lt;span style="color: #0000cc;"&gt;android:id=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"@+id/txtUserName"&lt;/span&gt;
            &lt;span style="color: #0000cc;"&gt;android:width=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"200px"&lt;/span&gt;
    &lt;span style="background-color: #ffaaaa; color: red;"&gt;&amp;lt;/TableRow&lt;/span&gt;&lt;span style="color: #007700;"&gt;&amp;gt;&lt;/span&gt;
​​​​
    &lt;span style="color: #007700;"&gt;&amp;lt;TableRow&amp;gt;&lt;/span&gt;
​​​​​​​
        &lt;span style="color: #007700;"&gt;&amp;lt;TextView&lt;/span&gt; &lt;span style="color: #0000cc;"&gt;android:text=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"Password:"&lt;/span&gt; &lt;span style="color: #007700;"&gt;/&amp;gt;&lt;/span&gt;
        &lt;span style="color: #007700;"&gt;&amp;lt;EditText&lt;/span&gt;
            &lt;span style="color: #0000cc;"&gt;android:id=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"@+id/txtPassword"&lt;/span&gt;
            &lt;span style="color: #0000cc;"&gt;android:password=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"true"&lt;/span&gt; &lt;span style="color: #007700;"&gt;/&amp;gt;&lt;/span&gt;
​​​​
    &lt;span style="color: #007700;"&gt;&amp;lt;/TableRow&amp;gt;&lt;/span&gt;
    
​​​​&lt;span style="color: #007700;"&gt;&amp;lt;TableRow&amp;gt;&lt;/span&gt;
​​​​​​​
        &lt;span style="color: #007700;"&gt;&amp;lt;TextView&lt;/span&gt; &lt;span style="color: #007700;"&gt;/&amp;gt;&lt;/span&gt;
​​​​​​
        &lt;span style="color: #007700;"&gt;&amp;lt;CheckBox&lt;/span&gt;
            &lt;span style="color: #0000cc;"&gt;android:id=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"@+id/chkRememberPassword"&lt;/span&gt;
            &lt;span style="color: #0000cc;"&gt;android:layout_width=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"fill_parent"&lt;/span&gt;
            &lt;span style="color: #0000cc;"&gt;android:layout_height=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"wrap_content"&lt;/span&gt;
            &lt;span style="color: #0000cc;"&gt;android:text=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"Remember​Password"&lt;/span&gt; &lt;span style="color: #007700;"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span style="color: #007700;"&gt;&amp;lt;/TableRow&amp;gt;&lt;/span&gt;
​​​​    &lt;span style="color: #007700;"&gt;&amp;lt;TableRow&amp;gt;&lt;/span&gt;
​​​​​​​
        &lt;span style="color: #007700;"&gt;&amp;lt;Button&lt;/span&gt;
            &lt;span style="color: #0000cc;"&gt;android:id=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"@+id/buttonSignIn"&lt;/span&gt;
            &lt;span style="color: #0000cc;"&gt;android:text=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"Log​In"&lt;/span&gt; &lt;span style="color: #007700;"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span style="color: #007700;"&gt;&amp;lt;/TableRow&amp;gt;&lt;/span&gt;
&lt;span style="color: #007700;"&gt;&amp;lt;/TableLayout&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div dir="rtl"&gt;
نلاحظ من الكود اعلاه :-&lt;br /&gt;
تم تعريف table layout&amp;nbsp; ومن ثم تم تعريف 4 table row&amp;nbsp; اي بمعنى تم تعريف اربعة صفوف لوضع العناصر بداخلها كماياتي:-&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div dir="rtl"&gt;
1-في الصف الأول تم وضع textview و edittext لاسم المستخدم .&lt;/div&gt;
&lt;div dir="rtl"&gt;
2-في الصف الثاني تم وضع textview و edittext لكلمة المرور .&lt;/div&gt;
&lt;div dir="rtl"&gt;
3-في الصف الثالث. تم وضع check box.&lt;br /&gt;
4- في الصف&amp;nbsp;&lt;u&gt;الرابع&amp;nbsp;&lt;/u&gt;من ثم تم وضع button الخاص بتسجيل الدخول.&lt;br /&gt;
&lt;br /&gt;
ليكون تصميم الشاشة كمافي الشكل ادناه:-&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDAZeoJNBw15LuhEsoZnmzsmFfGy-OOh0SNtYI-nZXC6v2mMK7rhtNkZj54kV4tRD7YvOynnvuQGMz5zuf_QWV-_q0wfrq1hjxKidBk065YQh8tXcrxmg_aMbc2G23Kg8kX-Rcs436PJBe/s1600/table+layout.PNG" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDAZeoJNBw15LuhEsoZnmzsmFfGy-OOh0SNtYI-nZXC6v2mMK7rhtNkZj54kV4tRD7YvOynnvuQGMz5zuf_QWV-_q0wfrq1hjxKidBk065YQh8tXcrxmg_aMbc2G23Kg8kX-Rcs436PJBe/s1600/table+layout.PNG" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDAZeoJNBw15LuhEsoZnmzsmFfGy-OOh0SNtYI-nZXC6v2mMK7rhtNkZj54kV4tRD7YvOynnvuQGMz5zuf_QWV-_q0wfrq1hjxKidBk065YQh8tXcrxmg_aMbc2G23Kg8kX-Rcs436PJBe/s72-c/table+layout.PNG" width="72"/><thr:total xmlns:thr="http://purl.org/syndication/thread/1.0">1</thr:total></item><item><title>الدرس 22-تعلم كيفية محاذاة العناصر في Relative layout</title><link>http://muteealjabri.blogspot.com/2017/03/aligment-in-Realtive-Layout.html</link><category>android-programming</category><category>برمجة تطبيقات الاندرويد</category><author>noreply@blogger.com (muteealjabri.blogspot.com)</author><pubDate>Fri, 31 Mar 2017 01:52:00 +0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-5547022875870167028.post-5095704703995037925</guid><description>&lt;div dir="rtl" style="text-align: right;" trbidi="on"&gt;
&lt;div dir="rtl"&gt;
السلام عليكم &amp;nbsp;بعد أن درسنا في الدرسين الماضيين عن اساسيات Relative Layout وأهم الخصائص فيه &amp;nbsp;وسنشرح في هذا الدرس خصائص المحاذاة في Relative Layout وهي خصائص المحاذاة في Relative Layout.&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5zta54ciZJZ3op0vLustBcAzkwgjs841HNpSzD8b0wQOYEYgSGsVrlBbG9_QMddqxt6CjRv7Q_Sto_danJm5TKce7wTcjRMcBL2zHozP1WDhvPVczVBq16SIlPwBbQNvrwbpEsswoXnYs/s1600/%25D9%2583%25D9%2584%25D9%258A%25D8%25B4%25D8%25A9++%25D8%25B9%25D9%2586%25D8%25A7%25D9%2588%25D9%258A%25D9%2586+%25D8%25A7%25D9%2584%25D9%2585%25D8%25B4%25D8%25A7%25D8%25B1%25D9%2583%25D8%25A7%25D8%25AA+%25D8%25A7%25D9%2584%25D9%2581%25D9%258A%25D8%25AF%25D9%258A%25D9%2588+-+%25D9%2586%25D8%25B3%25D8%25AE%25D8%25A9.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5zta54ciZJZ3op0vLustBcAzkwgjs841HNpSzD8b0wQOYEYgSGsVrlBbG9_QMddqxt6CjRv7Q_Sto_danJm5TKce7wTcjRMcBL2zHozP1WDhvPVczVBq16SIlPwBbQNvrwbpEsswoXnYs/s400/%25D9%2583%25D9%2584%25D9%258A%25D8%25B4%25D8%25A9++%25D8%25B9%25D9%2586%25D8%25A7%25D9%2588%25D9%258A%25D9%2586+%25D8%25A7%25D9%2584%25D9%2585%25D8%25B4%25D8%25A7%25D8%25B1%25D9%2583%25D8%25A7%25D8%25AA+%25D8%25A7%25D9%2584%25D9%2581%25D9%258A%25D8%25AF%25D9%258A%25D9%2588+-+%25D9%2586%25D8%25B3%25D8%25AE%25D8%25A9.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
قد يهمك:-&lt;br /&gt;
&lt;a href="http://muteealjabri.blogspot.com/2017/03/what-is-relative-layout-part-one.html" target="_blank"&gt;الدرس 21-شرح ماهو Relative Layout في تصميم واجهات تطبيقات الاندرويد بالتفصيل - الجزء الأول.&lt;/a&gt;&lt;br /&gt;
&lt;a href="http://muteealjabri.blogspot.com/2017/03/relative-layout-pat-two.html" target="_blank"&gt;شرح ماهو Relative Layout في تصميم واجهات تطبيقات الاندرويد بالتفصيل - الجزء الثاني&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
يوفر لك relative Layout &amp;nbsp;بعض الخصائص لمحاذاة العناصر فيما بينها وهي كما يلي:-&lt;br /&gt;
&lt;!-- HTML generated using hilite.me --&gt;&lt;br /&gt;
&lt;div dir="ltr" style="background: #ffffff; border-width: 0.1em 0.1em 0.1em 0.8em; border: solid gray; overflow: auto; padding: 0.2em 0.6em; text-align: left; width: auto;"&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;pre style="line-height: 125%; margin: 0;"&gt;1
2
3&lt;/pre&gt;
&lt;/td&gt;&lt;td&gt;&lt;pre style="line-height: 125%; margin: 0;"&gt;android:layout_alignLeft="id of view"
android:layout_alignTop="id of view"
android:layout_alignBaseLine="id of view"
&lt;/pre&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div dir="ltr"&gt;
&lt;br /&gt;
&lt;div dir="rtl" style="text-align: right;"&gt;
. وسنشرح هذه الخصائص بالتفصيل وسنقوم بتطبيق هذه الخصائص على زر و عارض نص textview &amp;nbsp;كمافي الكود ادناه:-&lt;/div&gt;
&lt;div dir="rtl" style="text-align: right;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div dir="rtl" style="text-align: right;"&gt;
&lt;!-- HTML generated using hilite.me --&gt;&lt;br /&gt;
&lt;div dir="ltr" style="background: #ffffff; border-width: 0.1em 0.1em 0.1em 0.8em; border: solid gray; overflow: auto; padding: 0.2em 0.6em; text-align: left; width: auto;"&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;pre style="line-height: 125%; margin: 0;"&gt; 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33&lt;/pre&gt;
&lt;/td&gt;&lt;td&gt;&lt;pre style="line-height: 125%; margin: 0;"&gt;&lt;span style="color: #007700;"&gt;&amp;lt;RelativeLayout&lt;/span&gt; &lt;span style="color: #0000cc;"&gt;xmlns:android=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"http://schemas.android.com/apk/res/android"&lt;/span&gt;
    &lt;span style="color: #0000cc;"&gt;xmlns:tools=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"http://schemas.android.com/tools"&lt;/span&gt;
    &lt;span style="color: #0000cc;"&gt;android:layout_width=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"match_parent"&lt;/span&gt;
    &lt;span style="color: #0000cc;"&gt;android:layout_height=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"match_parent"&lt;/span&gt;
    &lt;span style="color: #0000cc;"&gt;android:background=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"#ffbb00"&lt;/span&gt;
    &lt;span style="color: #0000cc;"&gt;tools:context=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;".MainActivity"&lt;/span&gt; &lt;span style="color: #007700;"&gt;&amp;gt;&lt;/span&gt;

    &lt;span style="color: #007700;"&gt;&amp;lt;Button&lt;/span&gt;
        &lt;span style="color: #0000cc;"&gt;android:id=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"@+id/button1"&lt;/span&gt;
        &lt;span style="color: #0000cc;"&gt;android:layout_width=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"wrap_content"&lt;/span&gt;
        &lt;span style="color: #0000cc;"&gt;android:layout_height=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"wrap_content"&lt;/span&gt;
        &lt;span style="color: #0000cc;"&gt;android:background=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"#11aa33"&lt;/span&gt;
        &lt;span style="color: #0000cc;"&gt;android:text=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"Button"&lt;/span&gt;
        &lt;span style="color: #0000cc;"&gt;android:layout_centerVertical=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"true"&lt;/span&gt;
       &lt;span style="color: #0000cc;"&gt;android:layout_centerInParent=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"true"&lt;/span&gt;
       
        &lt;span style="color: #0000cc;"&gt;android:textSize=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"22sp"&lt;/span&gt; &lt;span style="color: #007700;"&gt;/&amp;gt;&lt;/span&gt;
    
    &lt;span style="color: #007700;"&gt;&amp;lt;TextView&lt;/span&gt;
       
        &lt;span style="color: #0000cc;"&gt;android:layout_width=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"wrap_content"&lt;/span&gt;
        &lt;span style="color: #0000cc;"&gt;android:layout_height=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"wrap_content"&lt;/span&gt;
        &lt;span style="color: #0000cc;"&gt;android:textSize=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"22sp"&lt;/span&gt;
        &lt;span style="color: #0000cc;"&gt;android:background=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"#ffccaa"&lt;/span&gt;
        &lt;span style="color: #0000cc;"&gt;android:layout_alignTop=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"@id/button1"&lt;/span&gt;
        &lt;span style="color: #0000cc;"&gt;android:layout_alignBaseline=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"@id/button1"&lt;/span&gt;
        &lt;span style="color: #0000cc;"&gt;android:id=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"@+id/txt"&lt;/span&gt;
        &lt;span style="color: #0000cc;"&gt;android:text=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"@string/hello_world"&lt;/span&gt; &lt;span style="color: #007700;"&gt;/&amp;gt;&lt;/span&gt;
    
  
    

&lt;span style="color: #007700;"&gt;&amp;lt;/RelativeLayout&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
وسنبدأ الان بشرح الخصائص:-&lt;br /&gt;
&lt;br /&gt;
&lt;pre style="background-color: white; line-height: 16.25px; text-align: center;"&gt;&lt;span style="color: red; font-size: large;"&gt;&lt;b&gt;1-android:layout_alignLeft="id of view"&lt;/b&gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div dir="rtl"&gt;
&lt;br /&gt;
ويتم في هذه الخاصية محاذاة الجانب الايسر&amp;nbsp; للزر مع الجانب الايسر لل textview حيث يتم تمرير الـ id &amp;nbsp;للعنصر الذي نريد محاذاته كما في الصورة ادناه:-&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxfYF5dh0ducJ6e8769u5x8AyTPV7BVEzQ12plqHLWtR2hsNqWhVEeUt5YZKakSHtJCEp7eoexpDM1Ok8OPpnuMg6Ydn8fbvcvRd54MQQp2DKLkjMI4C7iu2q-Zh5rL2v9dcvhLdC67oLU/s1600/align-left.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxfYF5dh0ducJ6e8769u5x8AyTPV7BVEzQ12plqHLWtR2hsNqWhVEeUt5YZKakSHtJCEp7eoexpDM1Ok8OPpnuMg6Ydn8fbvcvRd54MQQp2DKLkjMI4C7iu2q-Zh5rL2v9dcvhLdC67oLU/s400/align-left.PNG" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
ويتم ذلك عبر الكود ادناه:-&lt;/div&gt;
&lt;div dir="rtl"&gt;
&lt;!-- HTML generated using hilite.me --&gt;&lt;br /&gt;
&lt;div dir="ltr" style="background: #ffffff; border-width: 0.1em 0.1em 0.1em 0.8em; border: solid gray; overflow: auto; padding: 0.2em 0.6em; text-align: left; width: auto;"&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;pre style="line-height: 125%; margin: 0;"&gt; 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31&lt;/pre&gt;
&lt;/td&gt;&lt;td&gt;&lt;pre style="line-height: 125%; margin: 0;"&gt;&lt;span style="color: #007700;"&gt;&amp;lt;RelativeLayout&lt;/span&gt; &lt;span style="color: #0000cc;"&gt;xmlns:android=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"http://schemas.android.com/apk/res/android"&lt;/span&gt;
    &lt;span style="color: #0000cc;"&gt;xmlns:tools=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"http://schemas.android.com/tools"&lt;/span&gt;
    &lt;span style="color: #0000cc;"&gt;android:layout_width=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"match_parent"&lt;/span&gt;
    &lt;span style="color: #0000cc;"&gt;android:layout_height=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"match_parent"&lt;/span&gt;
    &lt;span style="color: #0000cc;"&gt;android:background=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"#ffbb00"&lt;/span&gt;
    &lt;span style="color: #0000cc;"&gt;tools:context=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;".MainActivity"&lt;/span&gt; &lt;span style="color: #007700;"&gt;&amp;gt;&lt;/span&gt;

    &lt;span style="color: #007700;"&gt;&amp;lt;Button&lt;/span&gt;
        &lt;span style="color: #0000cc;"&gt;android:id=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"@+id/button1"&lt;/span&gt;
        &lt;span style="color: #0000cc;"&gt;android:layout_width=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"wrap_content"&lt;/span&gt;
        &lt;span style="color: #0000cc;"&gt;android:layout_height=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"wrap_content"&lt;/span&gt;
        &lt;span style="color: #0000cc;"&gt;android:background=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"#11aa33"&lt;/span&gt;
        &lt;span style="color: #0000cc;"&gt;android:text=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"Button"&lt;/span&gt;
        &lt;span style="color: #0000cc;"&gt;android:layout_centerVertical=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"true"&lt;/span&gt;
       &lt;span style="color: #0000cc;"&gt;android:layout_centerInParent=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"true"&lt;/span&gt;
        &lt;span style="color: #0000cc;"&gt;android:textSize=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"22sp"&lt;/span&gt; &lt;span style="color: #007700;"&gt;/&amp;gt;&lt;/span&gt;
    
    &lt;span style="color: #007700;"&gt;&amp;lt;TextView&lt;/span&gt;
       
        &lt;span style="color: #0000cc;"&gt;android:layout_width=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"wrap_content"&lt;/span&gt;
        &lt;span style="color: #0000cc;"&gt;android:layout_height=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"wrap_content"&lt;/span&gt;
        &lt;span style="color: #0000cc;"&gt;android:textSize=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"22sp"&lt;/span&gt;
        &lt;span style="color: #0000cc;"&gt;android:background=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"#ffccaa"&lt;/span&gt;
        &lt;span style="color: #0000cc;"&gt;android:layout_alignLeft=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"@id/button1"&lt;/span&gt;
        &lt;span style="color: #0000cc;"&gt;android:id=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"@+id/txt"&lt;/span&gt;
        &lt;span style="color: #0000cc;"&gt;android:text=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"@string/hello_world"&lt;/span&gt; &lt;span style="color: #007700;"&gt;/&amp;gt;&lt;/span&gt;
    
  
    

&lt;span style="color: #007700;"&gt;&amp;lt;/RelativeLayout&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div dir="rtl"&gt;
&lt;br /&gt;
حيث نلاحظ انه تم وضع&amp;nbsp; الزر تحت textview وذلك باستخدام الخاصية below ومن ثم تمت محاذاة الجانب الايسر للزر مع الجانب الايسر لل textview.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: red; font-size: large;"&gt;*ملاحظة:- توجد ايضا خاصية &amp;nbsp;android:layout_alignLeft وهي عكس الخاصية السابقة وتعمل محاذاة من الجانب الايمن.&lt;/span&gt;&lt;/div&gt;
&lt;div dir="rtl"&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style="-webkit-text-stroke-width: 0px; color: black; font-family: &amp;quot;Times New Roman&amp;quot;; font-size: medium; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: right; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;pre style="-webkit-text-stroke-width: 0px; background-color: white; color: black; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: normal; letter-spacing: normal; line-height: 16.25px; margin: 0px; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px;"&gt;&lt;span style="color: red; font-size: large;"&gt;&lt;b&gt;"android:layout_alignTop="id of view&lt;/b&gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;pre style="-webkit-text-stroke-width: 0px; background-color: white; color: black; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: normal; letter-spacing: normal; line-height: 16.25px; margin: 0px; orphans: 2; text-align: center; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px;"&gt;&lt;span style="color: red; font-size: large;"&gt;&lt;b&gt;
&lt;/b&gt;&lt;/span&gt;&lt;/pre&gt;
ويتم في هذه الخاصية محاذاة الجانب الاعلى&amp;nbsp; للزر مع الجانب الاعلى لل textview حيث يتم تمرير الـ id &amp;nbsp;للعنصر الذي نريد محاذاته كما في الصورة ادناه:-&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtpK8MVv552d57ROX4G1a9hkq06HcSV_G9BxRPmMkyzrVEluCK00yVQqOBdxOkKf_OwZqt4nNUwuU9klZ3i63z6z_DlcYKq52c1rkGi-hEi7qw2muwuTBsKqJTbiHQM6Tgq7T5bacyaw_H/s1600/alig-top.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtpK8MVv552d57ROX4G1a9hkq06HcSV_G9BxRPmMkyzrVEluCK00yVQqOBdxOkKf_OwZqt4nNUwuU9klZ3i63z6z_DlcYKq52c1rkGi-hEi7qw2muwuTBsKqJTbiHQM6Tgq7T5bacyaw_H/s400/alig-top.PNG" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
ويتم ذلك عبر الكود ادناه&lt;/div&gt;
&lt;div dir="rtl"&gt;
&lt;!-- HTML generated using hilite.me --&gt;&lt;br /&gt;
&lt;div dir="ltr" style="background: #ffffff; border-width: 0.1em 0.1em 0.1em 0.8em; border: solid gray; overflow: auto; padding: 0.2em 0.6em; text-align: left; width: auto;"&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;pre style="line-height: 125%; margin: 0;"&gt; 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31&lt;/pre&gt;
&lt;/td&gt;&lt;td&gt;&lt;pre style="line-height: 125%; margin: 0;"&gt;&lt;span style="color: #007700;"&gt;&amp;lt;RelativeLayout&lt;/span&gt; &lt;span style="color: #0000cc;"&gt;xmlns:android=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"http://schemas.android.com/apk/res/android"&lt;/span&gt;
    &lt;span style="color: #0000cc;"&gt;xmlns:tools=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"http://schemas.android.com/tools"&lt;/span&gt;
    &lt;span style="color: #0000cc;"&gt;android:layout_width=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"match_parent"&lt;/span&gt;
    &lt;span style="color: #0000cc;"&gt;android:layout_height=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"match_parent"&lt;/span&gt;
    &lt;span style="color: #0000cc;"&gt;android:background=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"#ffbb00"&lt;/span&gt;
    &lt;span style="color: #0000cc;"&gt;tools:context=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;".MainActivity"&lt;/span&gt; &lt;span style="color: #007700;"&gt;&amp;gt;&lt;/span&gt;

    &lt;span style="color: #007700;"&gt;&amp;lt;Button&lt;/span&gt;
        &lt;span style="color: #0000cc;"&gt;android:id=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"@+id/button1"&lt;/span&gt;
        &lt;span style="color: #0000cc;"&gt;android:layout_width=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"wrap_content"&lt;/span&gt;
        &lt;span style="color: #0000cc;"&gt;android:layout_height=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"wrap_content"&lt;/span&gt;
        &lt;span style="color: #0000cc;"&gt;android:background=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"#11aa33"&lt;/span&gt;
        &lt;span style="color: #0000cc;"&gt;android:text=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"Button"&lt;/span&gt;
        &lt;span style="color: #0000cc;"&gt;android:layout_centerVertical=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"true"&lt;/span&gt;
       &lt;span style="color: #0000cc;"&gt;android:layout_centerInParent=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"true"&lt;/span&gt;
        &lt;span style="color: #0000cc;"&gt;android:textSize=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"22sp"&lt;/span&gt; &lt;span style="color: #007700;"&gt;/&amp;gt;&lt;/span&gt;
    
    &lt;span style="color: #007700;"&gt;&amp;lt;TextView&lt;/span&gt;
       
        &lt;span style="color: #0000cc;"&gt;android:layout_width=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"wrap_content"&lt;/span&gt;
        &lt;span style="color: #0000cc;"&gt;android:layout_height=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"wrap_content"&lt;/span&gt;
        &lt;span style="color: #0000cc;"&gt;android:textSize=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"22sp"&lt;/span&gt;
        &lt;span style="color: #0000cc;"&gt;android:background=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"#ffccaa"&lt;/span&gt;
        &lt;span style="color: #0000cc;"&gt;android:layout_alignTop=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"@id/button1"&lt;/span&gt;
        &lt;span style="color: #0000cc;"&gt;android:id=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"@+id/txt"&lt;/span&gt;
        &lt;span style="color: #0000cc;"&gt;android:text=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"@string/hello_world"&lt;/span&gt; &lt;span style="color: #007700;"&gt;/&amp;gt;&lt;/span&gt;
    
  
    

&lt;span style="color: #007700;"&gt;&amp;lt;/RelativeLayout&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div dir="rtl"&gt;
حيث نلاحظ من الكود انه تم وضع&amp;nbsp; الزر بجانب&amp;nbsp; textview&amp;nbsp; من جهة اليمين وذلك باستخدام الخاصية torightof ومن ثم تمت محاذاة الجانب الاعلى للزر مع الجانب&amp;nbsp; لل textview باستخدام الخاصية AlignTop.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div dir="rtl" style="-webkit-text-stroke-width: 0px; color: black; font-family: &amp;quot;Times New Roman&amp;quot;; font-size: medium; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: right; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div dir="rtl" style="-webkit-text-stroke-width: 0px; color: black; font-family: &amp;quot;Times New Roman&amp;quot;; font-size: medium; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: normal; letter-spacing: normal; orphans: 2; text-align: right; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px;"&gt;
&lt;div style="margin: 0px;"&gt;
&lt;span style="color: red; font-size: large;"&gt;*ملاحظة:- توجد ايضا خاصية &amp;nbsp;android:layout_alignBottom وهي عكس الخاصية السابقة وتعمل محاذاة من الجانب الاسفل.&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div dir="rtl"&gt;
لكن نلاحظ ان التصميم غير منسق نوعا ما وذلك بسبب ان النصوص غير متناسقة في الزر button و textview&amp;nbsp; ولجعلها منسقة اكثر نقوم باستخدام الخاصية align_base line&lt;/div&gt;
&lt;div dir="rtl"&gt;
كما في الكود ادناه:-&lt;br /&gt;
&lt;!-- HTML generated using hilite.me --&gt;&lt;br /&gt;
&lt;div dir="ltr" style="background: #ffffff; border-width: 0.1em 0.1em 0.1em 0.8em; border: solid gray; overflow: auto; padding: 0.2em 0.6em; text-align: left; width: auto;"&gt;
&lt;table&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;pre style="line-height: 125%; margin: 0;"&gt; 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32&lt;/pre&gt;
&lt;/td&gt;&lt;td&gt;&lt;pre style="line-height: 125%; margin: 0;"&gt;&lt;span style="color: #007700;"&gt;&amp;lt;RelativeLayout&lt;/span&gt; &lt;span style="color: #0000cc;"&gt;xmlns:android=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"http://schemas.android.com/apk/res/android"&lt;/span&gt;
    &lt;span style="color: #0000cc;"&gt;xmlns:tools=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"http://schemas.android.com/tools"&lt;/span&gt;
    &lt;span style="color: #0000cc;"&gt;android:layout_width=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"match_parent"&lt;/span&gt;
    &lt;span style="color: #0000cc;"&gt;android:layout_height=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"match_parent"&lt;/span&gt;
    &lt;span style="color: #0000cc;"&gt;android:background=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"#ffbb00"&lt;/span&gt;
    &lt;span style="color: #0000cc;"&gt;tools:context=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;".MainActivity"&lt;/span&gt; &lt;span style="color: #007700;"&gt;&amp;gt;&lt;/span&gt;

    &lt;span style="color: #007700;"&gt;&amp;lt;Button&lt;/span&gt;
        &lt;span style="color: #0000cc;"&gt;android:id=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"@+id/button1"&lt;/span&gt;
        &lt;span style="color: #0000cc;"&gt;android:layout_width=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"wrap_content"&lt;/span&gt;
        &lt;span style="color: #0000cc;"&gt;android:layout_height=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"wrap_content"&lt;/span&gt;
        &lt;span style="color: #0000cc;"&gt;android:background=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"#11aa33"&lt;/span&gt;
        &lt;span style="color: #0000cc;"&gt;android:text=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"Button"&lt;/span&gt;
        &lt;span style="color: #0000cc;"&gt;android:layout_centerVertical=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"true"&lt;/span&gt;
       &lt;span style="color: #0000cc;"&gt;android:layout_centerInParent=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"true"&lt;/span&gt;
        &lt;span style="color: #0000cc;"&gt;android:textSize=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"22sp"&lt;/span&gt; &lt;span style="color: #007700;"&gt;/&amp;gt;&lt;/span&gt;
    
    &lt;span style="color: #007700;"&gt;&amp;lt;TextView&lt;/span&gt;
       
        &lt;span style="color: #0000cc;"&gt;android:layout_width=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"wrap_content"&lt;/span&gt;
        &lt;span style="color: #0000cc;"&gt;android:layout_height=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"wrap_content"&lt;/span&gt;
        &lt;span style="color: #0000cc;"&gt;android:textSize=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"22sp"&lt;/span&gt;
        &lt;span style="color: #0000cc;"&gt;android:background=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"#ffccaa"&lt;/span&gt;
        &lt;span style="color: #0000cc;"&gt;android:layout_alignTop=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"@id/button1"&lt;/span&gt;
        &lt;span style="color: #0000cc;"&gt;android:layout_alignBaseline=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"@id/button1"&lt;/span&gt;
        &lt;span style="color: #0000cc;"&gt;android:id=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"@+id/txt"&lt;/span&gt;
        &lt;span style="color: #0000cc;"&gt;android:text=&lt;/span&gt;&lt;span style="background-color: #fff0f0;"&gt;"@string/hello_world"&lt;/span&gt; &lt;span style="color: #007700;"&gt;/&amp;gt;&lt;/span&gt;
    
  
    

&lt;span style="color: #007700;"&gt;&amp;lt;/RelativeLayout&amp;gt;&lt;/span&gt;
&lt;/pre&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div dir="rtl"&gt;
ليكون التصميم كما في الصورة ادناه:-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpo6CDxjwQuZCzUOfYdIubrj9Mk2tDZKWy8npdw3syIOfo7XNvoEvoVfvyINNDcu0DkSHmTW_V2R3YKUipAp-e1i3EEIn3MnzSdLhFv7VogPwqHdHrdFBh0d1V2Ju2548o_asd7LSbWsFn/s1600/base-aline.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpo6CDxjwQuZCzUOfYdIubrj9Mk2tDZKWy8npdw3syIOfo7XNvoEvoVfvyINNDcu0DkSHmTW_V2R3YKUipAp-e1i3EEIn3MnzSdLhFv7VogPwqHdHrdFBh0d1V2Ju2548o_asd7LSbWsFn/s400/base-aline.PNG" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
نلاحظ من الصورة &amp;nbsp;ان النص في كل من textView &amp;nbsp;والزر على خط واحد وهو مايعطي شكل اجمل لتصميم واجهة تطبيقك.&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;وهكذا نكون وصلنا إلى نهاية الدرس رأيكم يهمني بالتعليقات.&lt;/div&gt;
&lt;/div&gt;
</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5zta54ciZJZ3op0vLustBcAzkwgjs841HNpSzD8b0wQOYEYgSGsVrlBbG9_QMddqxt6CjRv7Q_Sto_danJm5TKce7wTcjRMcBL2zHozP1WDhvPVczVBq16SIlPwBbQNvrwbpEsswoXnYs/s72-c/%25D9%2583%25D9%2584%25D9%258A%25D8%25B4%25D8%25A9++%25D8%25B9%25D9%2586%25D8%25A7%25D9%2588%25D9%258A%25D9%2586+%25D8%25A7%25D9%2584%25D9%2585%25D8%25B4%25D8%25A7%25D8%25B1%25D9%2583%25D8%25A7%25D8%25AA+%25D8%25A7%25D9%2584%25D9%2581%25D9%258A%25D8%25AF%25D9%258A%25D9%2588+-+%25D9%2586%25D8%25B3%25D8%25AE%25D8%25A9.png" width="72"/></item></channel></rss>