uk
Feedback
DevGuide

DevGuide

Відкрити в Telegram

Level up daily with insider dev hacks, smart career tips, and real talk! 🚀 ⚡️ Stay connected with me: linktr.ee/AliSamir 📍 To advertise on the channel: https://telega.io/c/the_developer_guide

Показати більше

📈 Аналітичний огляд Telegram-каналу DevGuide

Канал DevGuide (@the_developer_guide) є активним учасником. На даний момент спільнота об'єднує 11 079 підписників, посідаючи 11 251 місце в категорії Технології та додатки та 11 127 місце у регіоні Ірак.

📊 Показники аудиторії та динаміка

З моменту свого створення невідомо, проект продемонстрував стрімке зростання, зібравши аудиторію у 11 079 підписників.

За останніми даними від 12 червня, 2026, канал демонструє стабільну активність. Хоча за останні 30 днів спостерігається зміна кількості учасників на -23, а за останні 24 години на 3, загальне охоплення залишається високим.

  • Статус верифікації: Не верифікований
  • Рівень залученості (ER): Середній показник залученості аудиторії становить 6.99%. Протягом перших 24 годин після публікації контент зазвичай збирає 2.84% реакцій від загальної кількості підписників.
  • Охоплення публікацій: В середньому кожен допис отримує 774 переглядів. Протягом першої доби публікація в середньому набирає 315 переглядів.
  • Реакції та взаємодія: Аудиторія активно підтримує контент: середня кількість реакцій на один пост – 4.
  • Тематичні інтереси: Контент зосереджений навколо ключових тем, таких як مَشرُوع, حَاجَة, بَيَان, جِدّ, طَلَب.

📝 Опис та контентна політика

Автор описує ресурс як майданчик для висловлення суб'єктивної думки:
Level up daily with insider dev hacks, smart career tips, and real talk! 🚀 ⚡️ Stay connected with me: linktr.ee/AliSamir 📍 To advertise on the channel: https://telega.io/c/the_developer_guide

Завдяки високій частоті оновлень (останні дані отримано 13 червня, 2026), канал підтримує актуальність та високий рівень охоплення публікацій. Аналітика показує, що аудиторія активно взаємодіє з контентом, що робить його важливою точкою впливу в категорії Технології та додатки.

11 079
Підписники
+324 години
Немає даних7 днів
-2330 день
Архів дописів
DevGuide
11 079
العلاقات بين الجداول في الـ Database 💡 . . خليني أسألك سؤال بسيط: لو عندك تطبيق بيسجل بيانات المستخدمين وطلبات الشراء بتاعته
العلاقات بين الجداول في الـ Database 💡 . . خليني أسألك سؤال بسيط: لو عندك تطبيق بيسجل بيانات المستخدمين وطلبات الشراء بتاعتهم، هتخزن البيانات دي إزاي؟ هتحط كل حاجة في Table واحد؟ طب لما المستخدم يطلب 10 طلبات، هتكرر بياناته 10 مرات؟ ولا هتعمل إيه؟ 🤔 هنا بتيجي أهمية العلاقات بين الجداول (Database Relationships) في الـ Relational Databases زي MySQL وPostgreSQL. العلاقات دي هي اللي بتساعدك تخلّي الـ Database منظمة، مرنة، وكمان أسرع في الاستعلامات (Queries). ولو استخدمتها غلط، ممكن تلاقي نفسك غرقان في Data Duplication، Inconsistent Data، والأداء هيكون في الضياع. في البوست ده، هنتكلم عن أنواع العلاقات بين الجداول، امتى تستخدم كل نوع، وهنشوف أمثلة عملية عليها...🔥 ———
📍 LinkedIn
https://www.linkedin.com/posts/dev-alisamir_database-backenddeveloper-backend-activity-7309651943797198851-tXvC
📍 Qabilah
https://qabilah.com/posts/MMsQVPppIwA ——— متنساش تشارك البوست وتفيد غيرك 💡

DevGuide
11 079
Accent color in CSS 💯
Accent color in CSS 💯

DevGuide
11 079
سمعت قبل كده عن الـ Microservices بس مش فاهمها كويس؟ أو حاسس إنها موضوع معقد ومحتاج خبرة كبيرة؟ 🤯 الموضوع ببساطة إن بدل ما يكون عندك تطبيق ضخم (Monolith) كله متشابك مع بعضه، تقدر تقسّمه لعدة خدمات صغيرة (Microservices)، وكل خدمة بتشتغل لوحدها وتقدر تتحدث مع باقي الخدمات بطريقة منظمة. الفكرة دي بتساعد الشركات الكبيرة زي Netflix و Amazon إنها تقدر تطوّر وتحدّث الأنظمة بتاعتها بسهولة وسرعة. ——— 🎯 تخيل إن عندك تطبيق لمطعم أونلاين: - خدمة مسؤولة عن الطلبات 🛒 - خدمة مسؤولة عن الدفع 💳 - خدمة مسؤولة عن إدارة العملاء 👥 كل خدمة تشتغل لوحدها، ولو حصل مشكلة في الدفع، الطلبات تفضل شغالة عادي بدون ما تتأثر. ——— في المقال ده، هتفهم الفكرة بأسلوب بسيط، مع مثال عملي يوضح لك كل حاجة خطوة بخطوة ✅👇
Microservices Made Simple: A Beginner’s Guide with a Real Example 💯
Imagine you’re building a house. You could construct it as one giant, unchangeable block with everything fused or use a modular approach, with separate rooms you can tweak, replace, or upgrade without tearing the whole thing down. https://differ.blog/p/microservices-made-simple-a-beginner-s-guide-with-a-real-example-47c171

DevGuide
11 079
دردشة سريعة عن الـ Accessibility Tree ⚡️ . . الأشخاض أصحاب القدرات الخاصة بتتعامل مع الويب بطريقة مختلفة تمامًا عن اللي احنا متعودين عليها. وده اللي بيخلينا نسأل السؤال المهم: إزاي المتصفحات بتفهم صفحات الويب وتخليها قابلة للوصول؟ 🤔 . . هنا بييجي دور الـ The Accessibility Tree 🌳 ———
📌 يعني إيه Accessibility Tree؟
ببساطة، هو تمثيل هيكلي (Tree Structure) موازي للـ DOM Tree، لكنه بيحتوي بس على العناصر اللي ممكن تكون مفهومة وقابلة للوصول بواسطة تقنيات المساعدة زي الـ Screen Readers. يعني لو فيه عنصر على الصفحة مش مهم أو ملوش دور واضح للمستخدم من ناحية الوصول (زي <div> عادي بدون معنى)، مش هيكون موجود داخل الـ Accessibility Tree. ———
📌 إزاي الـ Accessibility Tree بتتكون؟
الموضوع بيمر بأكثر من خطوة: 1️⃣ المتصفح بيبني الـ DOM Tree أي موقع أو صفحة بتبدأ كـ HTML، والمتصفح بيحول الـ HTML ده لـ DOM Tree، اللي بيكون عبارة عن كل عناصر الصفحة، حتى الفاضية منها. 2️⃣ المتصفح بيبني الـ Render Tree هنا بيبدأ المتصفح يفلتر العناصر اللي بتأثر على المظهر النهائي للصفحة. يعني أي حاجة مش بيتعملها Render (زي العناصر المخفية بـ display: none) مش بتكون موجودة في الـ Render Tree. 3️⃣ المتصفح بيبني الـ Accessibility Tree في المرحلة دي، المتصفح بياخد الـ DOM Tree ويبدأ يشوف إيه العناصر اللي محتاجة تكون موجودة عشان تقنيات المساعدة تقدر تفهم الصفحة. أي عنصر ملوش دور واضح أو مش مؤثر في التفاعل بيتم تجاهله. ملحوظة: الـ Accessibility Tree بتعتمد على الـ DOM Tree أكتر من الـ Render Tree، يعني ممكن عنصر يكون موجود فيها حتى لو مش مرئي في الصفحة. ———
طب ليه الموضوع ده مهم؟ 🤔
لأن لو عنصر معين مش موجود في الـ Accessibility Tree، فهو ببساطة مش موجود بالنسبة للي بيعتمد على الـ Screen Reader! يعني لو عندك زرار (button) شكله حلو في الـ UI بس مفيهوش role="button" أو aria-label واضح، المستخدم مش هيعرف إنه زرار أصلًا. ———
📌 إيه اللي بيأثر على الـ Accessibility Tree؟
✅ 1. نوع العنصر نفسه العناصر الـ HTML Semantics زي <button>، <input>، <h1>، <p> بتكون جزء من الـ Accessibility Tree بشكل تلقائي، لكن العناصر زي <div> و <span> مش بتكون موجودة إلا لو لها دور محدد. ✅ 2. الـ ARIA Attributes لو عاوز عنصر يكون متاح في الـ Accessibility Tree بس مش جزء من الـ HTML Semantics، تقدر تستخدم ARIA attributes زي: - الـ role="button": لو عندك <div> مستخدمه كأنه زرار، لازم تضيف ليه الدور المناسب. - الـ aria-hidden="true": لو عاوز تخفي عنصر من الـ Accessibility Tree بدون ما تخفيه من الـ UI. ✅ 3. الـ CSS Properties بعض الـ CSS Properties ممكن تأثر على وجود عنصر جوه الـ Accessibility Tree: - الـ display: none أو visibility: hidden: بتشيل العنصر من الـ Tree بالكامل. - الـ opacity: 0: بيخلي العنصر مش مرئي، بس يفضل موجود جوه الـ Accessibility Tree. - الـ position: absolute مع left: -9999: العنصر بيفضل موجود لو كان له دور واضح (زي زرار)، لكن لو بدون معنى ممكن يتم تجاهله. ✅ 4. إدارة الـ Focus موضوع الـ Focus (زي استخدام tabindex) بيأثر على إزاي المستخدم بيتفاعل مع العناصر في الـ Accessibility Tree.

DevGuide
11 079
Join the 5-Day Gen AI Intensive Course with Google
https://rsvp.withgoogle.com/events/google-generative-ai-intensive_2025q1

DevGuide
11 079
تم نشر المقال في مدونة Level Up Coding على منصة Medium ⚡️ https://levelup.gitconnected.com/the-10-front-end-mistakes-i-wish-i
تم نشر المقال في مدونة Level Up Coding على منصة Medium ⚡️ https://levelup.gitconnected.com/the-10-front-end-mistakes-i-wish-i-knew-as-a-beginner-with-fixes-cec0f6430455

DevGuide
11 079
تعال نعرف الفرق بين الـ Horizontal Scaling والـ Vertical Scaling 💡 . . تخيل إنك عندك مطعم، والمكان بقى زحمة جدًا والطلبات مش
تعال نعرف الفرق بين الـ Horizontal Scaling والـ Vertical Scaling 💡 . . تخيل إنك عندك مطعم، والمكان بقى زحمة جدًا والطلبات مش ملاحق عليها، أكيد هتفكر توسّع علشان تقدر تخدم عدد أكبر من الناس. ولكن عندك حلّين: 1- إنك توسّع المطعم نفسه وتزوّد عدد الترابيزات والكراسي. 2- إنك تفتح فروع جديدة في أماكن مختلفة علشان تستوعب عدد الزباين المتزايد. الحل الأول هو Vertical Scaling، والتاني هو Horizontal Scaling، وده بالضبط اللي بيحصل في عالم البرمجة لما السيرفرات بتبدأ تتعامل مع ضغط عالي من ال requests. ———
📍 LinkedIn
https://www.linkedin.com/posts/dev-alisamir_softwaredevelopment-backenddevelopment-devabrguide-activity-7308475605694537728-WTWQ
📍 Qabilah
https://qabilah.com/posts/6TpiPuWH6nc ——— متنساش تشارك البوست وتفيد غيرك. وفقكم الله لكل خير 🌿

DevGuide
11 079
دردشة سريعة عن الـ Accessibility Tree ⚡️ . . الأشخاض أصحاب القدرات الخاصة بتتعامل مع الويب بطريقة مختلفة تمامًا عن اللي احنا
دردشة سريعة عن الـ Accessibility Tree ⚡️ . . الأشخاض أصحاب القدرات الخاصة بتتعامل مع الويب بطريقة مختلفة تمامًا عن اللي احنا متعودين عليها. وده اللي بيخلينا نسأل السؤال المهم: إزاي المتصفحات بتفهم صفحات الويب وتخليها قابلة للوصول؟ 🤔 . . هنا بييجي دور الـ The Accessibility Tree 🌳 ———
📍 LinkedIn
https://www.linkedin.com/posts/dev-alisamir_webdeveloper-webdevelopment-devabrguide-activity-7308206875286634497-QNrT
📍 Qabilah
https://qabilah.com/posts/OY81xjgk-jQ ——— متنساش تشارك البوست وتفيد غيرك. 💡 وفقكم الله لكل خير 🌿

DevGuide
11 079
أهم 25 دالة للتعامل مع الـ Strings في JavaScript - الجزء الثاني 💯 . .
25 JavaScript String Methods Cheat Sheet - Part 2 💡
13. includes() 14. indexOf() 15. lastIndexOf() 16. split() 17. replace() 18. replaceAll() 19. startWith() 20. padStart() 21. padEnd() 22. repeat() 23. search() 24. substr() 25. toString() ——— وفقكم الله لكل خير 🌿

DevGuide
11 079
دردشة سريعة عن الـ Accessibility Tree ⚡️ . . الأشخاض أصحاب القدرات الخاصة بتتعامل مع الويب بطريقة مختلفة تمامًا عن اللي احنا
دردشة سريعة عن الـ Accessibility Tree ⚡️ . . الأشخاض أصحاب القدرات الخاصة بتتعامل مع الويب بطريقة مختلفة تمامًا عن اللي احنا متعودين عليها. وده اللي بيخلينا نسأل السؤال المهم: إزاي المتصفحات بتفهم صفحات الويب وتخليها قابلة للوصول؟ 🤔 . . هنا بييجي دور الـ The Accessibility Tree 🌳 ———
📍 LinkedIn
https://www.linkedin.com/posts/dev-alisamir_webdeveloper-webdevelopment-accessibility-activity-7308080824476667906-nt3L
📍 Qabilah
https://qabilah.com/posts/OY81xjgk-jQ

DevGuide
11 079
photo content

DevGuide
11 079
تعال نفهم يعني إيه Cross-Site Scripting (XSS) الـ XSS هو نوع من أنواع الثغرات الأمنية اللي ممكن تكون موجودة في المواقع، وبيستغلها الهاكرز علشان ينفذوا أكواد ضارة داخل صفحة الويب اللي بيستخدمها الضحية، وكده الهاكر يقدر يتحكم في الموقع أو حسابات المستخدمين، أو حتى يسحب بياناتهم الخاصة. ———
🔍 الثغرة دي بتشتغل إزاي؟
خليني أشرحلك السيناريو البسيط اللي ممكن يحصل: 1- الهاكر بيكون عنده كود JavaScript ضار وعايز يزرعه في الموقع. 2- بيستغل ثغرة في المدخلات (Inputs) الموجودة في الموقع زي الـ Forms أو الـ Comments، أو حتى في URL لو الموقع مش مؤمّن كويس. 3- المستخدم العادي، اللي هو الضحية، بيفتح الصفحة من غير ما يعرف، والكود الضار اللي كتبه الهاكر بيبدأ يشتغل تلقائي، وده بيدّي الهاكر صلاحيات كبيرة داخل حسابات الضحية أو حتى بيتمكن من سرقة البيانات اللي موجودة على الموقع. ——— 💥 يعني الكود الضار اللي كتبه الهاكر ممكن يتحكم في أي حاجة بتظهر للمستخدم على الموقع، وده ممكن يكون من خلال: - سرقة الكوكيز: اللي هي زي ملفات صغيرة بتحتفظ بمعلومات تسجيل الدخول والتفضيلات. الكود الضار ممكن ياخدها ويبعتهاله، والهاكر يستخدمها علشان يدخل بحساب الضحية. - تغيير محتوى الصفحة: ممكن الهاكر يحط حاجات أو رسائل وهمية في الصفحة تخلّي المستخدمين يدخلوا بياناتهم الشخصية، زي رسائل "تسجيل الدخول" أو "تحديث الحساب". - إعادة توجيه المستخدم: لو الهاكر عايز ينقلك لموقع ضار تاني فيه فيروسات أو برامج خبيثة، ممكن يخليك تروحله وأنت مش واخد بالك. ———
🔐 أنواع الـ XSS
فيه أكتر من نوع يخص الـ XSS، وكل نوع له طريقة مختلفة في التنفيذ وأثر مختلف، خليني أقولك الأنواع الرئيسية: 📍 الـ Stored XSS: النوع ده بيحصل لما الكود الضار بيتخزن في الموقع نفسه، يعني بيكون ثابت وكل مرة حد يفتح الصفحة يتنّفذ على طول. 📍 الـ Reflected XSS: النوع ده بيشتغل لما الكود بيتنّفذ فورًا في الصفحة اللي اتضاف فيها، زي لما حد يبعته في رابط URL، والمستخدم يفتحه فيلاقي الكود شغال. 📍 الـ DOM-based XSS: ده نوع أذكى شويه لأنه بيشتغل على مستوى الـ DOM بتاع الصفحة، يعني بيتعامل مباشرة مع العناصر اللي بتتغير في واجهة المستخدم، وده بيخلي الثغرة أصعب شوية في الاكتشاف. ———
💡 إزاي نمنع الـ XSS؟
عشان تحمي موقعك أو تطمّن إنك متأمن ضد الثغرة دي، لازم تركز على كام حاجة: 📌 أي حاجة بيضيفها المستخدم في الموقع (زي النصوص أو التعليقات) لازم يتعمل عليها فلتر و Validation وتتأكد إن مفيهاش أكواد ضارة. 📌 استخدام Content Security Policy (CSP): ده زي طبقة حماية إضافية بتمنع تنفيذ الأكواد اللي جاية من مصادر غير موثوقة. 📌 تشفير المدخلات والمخرجات: عن طريق استخدام HTML encoding عشان تحول الرموز اللي ممكن تسبب مشاكل (زي < و >) لرموز آمنة. 📌 منع الكوكيز من السرقة: باستخدام خواص زي HttpOnly اللي بتحمي الكوكيز من الوصول المباشر عبر JavaScript. ——— ✋ الـ XSS ثغرة خطيرة جدًا ممكن تهدد خصوصية المستخدمين وتضر بسمعة الموقع كمان. عشان كده لازم تكون فاهم تفاصيلها كويس وتقدر تأمن موقعك منها.... بالتوفيق يا بطل ⚡️

DevGuide
11 079
بفضل الله، تم نشر أول مقال في In Plain English 🔥 المقال بيتكلم عن أهم 10 أخطاء في الفرونت إند ممكن تقع فيها لو لسه مبتدئ، وك
بفضل الله، تم نشر أول مقال في In Plain English 🔥 المقال بيتكلم عن أهم 10 أخطاء في الفرونت إند ممكن تقع فيها لو لسه مبتدئ، وكمان فيه حلول عملية لكل خطأ علشان تتجنبه. 💡 ———
The 10 Front-End Mistakes I Wish I Knew as a Beginner With Fixes 💡
Front-end development is an exciting yet challenging field. When I started, I stumbled through countless pitfalls that slowed my progress and left me frustrated. https://differ.blog/p/the-10-front-end-mistakes-i-wish-i-knew-as-a-beginner-with-fixes-dc17e6 ——— متنساش تشاركه مع صاحبك الفرونت إند 🚀

DevGuide
11 079
Software Engineer Roadmap 2025: The Complete Guide 🚀 https://miro.com/app/board/uXjVLk4BHas=
Software Engineer Roadmap 2025: The Complete Guide 🚀
https://miro.com/app/board/uXjVLk4BHas=

DevGuide
11 079
لو لسه بادئ في البرمجة، أكيد سمعت عن Git، وأكيد كمان حسيت إنه معقد ومليان أوامر! 🤯 لكن الحقيقة إنه من أقوى الأدوات اللي هتسا
لو لسه بادئ في البرمجة، أكيد سمعت عن Git، وأكيد كمان حسيت إنه معقد ومليان أوامر! 🤯 لكن الحقيقة إنه من أقوى الأدوات اللي هتساعدك تحفظ الكود بتاعك، تشتغل مع فريقك بسهولة، وترجع لأي نسخة من مشروعك في أي وقت! 💡 في المقال ده، هنتكلم عن أهم مفاهيم Git اللي لازم أي مبرمج جديد يفهمها، وهتلاقيها قدامك في كل مشروع تشتغل عليه. هتعرف يعني إيه commit، branch، merge، rebase، وغيرهم، وإزاي تستخدمهم بطريقة احترافية! 🚀 ———
Git Concepts Every New Developer Must Know: Your Roadmap to Version Control Mastery 💯
This article simplifies essential Git concepts for new developers. Whether you're working on your first project or contributing to a team, mastering these fundamentals will boost your confidence and make you a Git pro quickly. https://medium.com/@dev.alisamir/git-concepts-every-new-developer-must-know-your-roadmap-to-version-control-mastery-6740ac0f763a

DevGuide
11 079
الـ Feature Toggles (Feature Flags) 💡 تخيل أنك شغال على مشروع ضخم، وعايز تضيف خاصية جديدة أو تجرب فكرة معينة، بس من غير ما تخاطر إن حاجة تبوظ في الكود أو بدون ما تأثر على المستخدمين... أفضل حل هنا إنك تستخدم الـ Feature Toggles أو زي ما بنسميها أحيانًا الـ Feature Flags... ———
📌 إيه هي الـ Feature Toggles؟
ببساطة عبارة عن (أداة أو تقنية) بتخليك تتحكم في تفعيل أو تعطيل أجزاء معينة من الكود بتاعك من غير ما تضطر تعيد نشر (Deploy) التطبيق بالكامل. بمعنى تاني، بتقدر تخلّي خاصية معينة "On" أو "Off" بناءً على شروط معينة أو حتى بشكل ديناميكي. ———
📌 أنواع الـ Feature Toggles:
📍 الـ Release Toggles دي بنستخدمها لما نكون عايزين نطلع ميزة لجزء معين من المستخدمين ونسيب الباقي زي ما هو. مثال: تجربة خاصية جديدة على مستخدمين معينين بس. 📍 الـ Experiment Toggles النوع ده بيُستخدم في الـ A/B Testing، وده لما تحب تقارن بين نسختين من نفس الميزة وتشوف أي نسخة بتأدي أداء أفضل. 📍 الـ Ops Toggles دي لها علاقة بالـ DevOps. مثلا لو عندك خاصية بتستهلك موارد كتير من السيرفر، تقدر توقفها مؤقتًا من غير ما تدخل على الكود. 📍 الـ Permission Toggles النوع ده بيتحكم في إتاحة ميزات معينة بناءً على المستخدم نفسه، زي لما تطبق خاصية Premium متاحة بس للمستخدمين اللي دفعوا. ———
📌 ليه نستخدم الـ Feature Toggles؟
✅ تسريع الشغل بدل ما تأجل نشر التطبيق بالكامل لغاية ما كل الميزات تجهز، ممكن تضيف الـ Feature Toggles عندك وتفعّل الميزات تدريجيًا. ✅ تقليل المخاطر لو حصلت مشكلة في الميزة الجديدة، تقدر تقفلها فورًا من غير ما ترجع تعمل Rollback للـ Deploy ✅ تسهيل التعاون بين الفرق الفرق المختلفة في المشروع (Frontend, Backend, DevOps) يقدروا يشتغلوا مع بعض على نفس الكود بسهولة. ✅ تجربة المستخدم (User Testing) بسهولة تقدر تجرب ميزات جديدة مع مجموعة صغيرة من المستخدمين وتشوف رأيهم قبل ما تنشرها بشكل عام. ———
📌 إزاي نطبق الـ Feature Toggles؟
حدد إيه الميزة اللي محتاجة Toggle وهدفك من وراها. فيه مكتبات كتير بتساعدك زي: - LaunchDarkly - Unleash - Optimizely ولو بتشتغل بـ React أو Node.js، ممكن تلاقي مكتبات خفيفة وسهلة زي Feature Toggle أو تعمل Toggle بسيط بنفسك. دائمًا خلي الـ Toggles مربوطة بـ Configuration File أو API تقدر تعدلها بسهولة. تأكد من اختبار الميزة بشكل كويس في مرحلة الـ Dev أو الـ Staging ——— وفقكم الله لكل خير 🌿

DevGuide
11 079
Looking For a Job in Tech? Start With These Job Boards 🚀 📍 Indeed https://www.indeed.com 📍 LinkedIn https://www.linkedin.c
Looking For a Job in Tech? Start With These Job Boards 🚀
📍 Indeed
https://www.indeed.com
📍 LinkedIn
https://www.linkedin.com/jobs
📍 Built In
https://builtin.com
📍 Dice
https://www.dice.com
📍 Wellfound
https://wellfound.com
📍 CrunchBoard
https://www.crunchboard.com
📍 Remote co
https://remote.co

DevGuide
11 079
الـ CORS - من المصطلحات المهمة في مجال الويب 💯 خلال رحلتك في مجال الويب أكيد مر عليك مصطلح الـ CORS، أو واجهتك مشكلة بسبب موضوع الـ CORS. خلينا ندردش شوية... ببساطة الـ CORS اختصار لـ Cross-Origin Resource Sharing ———
📌 في الأول كده خلينا نعرف يعني إيه Origin؟
الـ "Origin" هو الدومين (domain) أو النطاق اللي الموقع أو السيرفر بتاعك شغال عليه. بيبقى عبارة عن الـ "Protocol" (زي HTTP أو HTTPS) + اسم الدومين (زي example.com) + البورت (لو مختلف عن الـ 80 لـ HTTP أو 443 لـ HTTPS).
⚡️ طيب المشكلة فين؟
لو أنت شغال على موقع معين وعاوز الموقع بتاعك يطلب بيانات أو resources (زي JSON أو ملفات) من سيرفر تاني، السيرفر التاني ده لازم يبقى من نفس الـ origin بتاعك، يعني نفس الدومين، نفس البروتوكول، ونفس البورت. ودي حاجة اسمها Same-Origin Policy، السياسة دي معمولة أساسًا علشان تحمي المستخدمين من أي طلبات ضارة ممكن تجي من مواقع تانية مش موثوقة. بس في بعض الحالات، أنت كـ Developer بتبقى محتاج تعمل طلبات للسيرفرات اللي مش من نفس الـ origin بتاعك، زي لما يكون عندك Frontend شغال على دومين معين و API أو Backend شغالين على دومين أو بورت مختلف. ———
هنا بقى ييجي دور الـ CORS 👇
الـ Cross-Origin Resource Sharing (CORS) هو الحل اللي بيسمح للمواقع إنهم يطلبوا بيانات أو ملفات من سيرفرات تانية بمختلف الـ origins بشكل آمن ومأمن، بمعنى إنك تقدر تتخطى الـ Same-Origin Policy وتعمل طلبات لسيرفرات تانية طالما السيرفر ده بيقبل إنه يتعامل مع الموقع بتاعك. ———
📌 طيب إزاي الـ CORS بيشتغل؟
لما موقعك بيطلب بيانات من سيرفر تاني مختلف عن الـ origin بتاعه، السيرفر اللي عليه الـ resource اللي أنت بتطلبها هو اللي بيقرر إذا كان الطلب ده مسموح أو لا. السيرفر بيرد على الطلب من خلال الـ (headers) اللي بيرجعها مع الـ response. واحد من أهم الـ headers دي هو:
Access-Control-Allow-Origin
اللي بيحدد الـ origins اللي مسموح ليها تطلب بيانات من السيرفر ده. لو الـ origin بتاع موقعك موجود في القيمة بتاعت الـ header ده، السيرفر هيسمح بتنفيذ الطلب وهيرجعلك الـ response. ولو لل، الطلب هيتمنع وهيجيلك error من نوع CORS في المتصفح. ———
📍 كمان فيه Headers تانية زي:
- الـ Access-Control-Allow-Methods: اللي بتحدد أنواع الطلبات اللي مسموح ليك تعملها (GET, POST, PUT, DELETE...). - الـ Access-Control-Allow-Headers: اللي بتحدد الـ headers اللي مسموح ليك تبعتها في الطلبات. - الـ Access-Control-Allow-Credentials: لو الطلب محتاج يبعت Cookies أو بيانات معينة، لازم الـ header ده يبقى موجود ومظبوط على true. ———
طب إيه هي المشاكل اللي ممكن تواجهنا مع CORS؟ 🤔
أحيانًا الـ CORS بيبقى مزعج، وبتظهر لك أخطاء في المتصفح من نوع "CORS error" لما السيرفر مش بيدعم الطلبات من الـ origin بتاعك. الحل هنا بيبقى إنك تتأكد إن السيرفر اللي أنت بتطلب منه مظبط إعدادات الـ CORS صح. بالتوفيق يا بطل ⚡️

DevGuide
11 079
خصم 100% لمدة 3 أيام على كل الكتب الالكترونية المنشورة من خلال To Data & Beyond: ➡ Efficient Python for Data Scientists youss
خصم 100% لمدة 3 أيام على كل الكتب الالكترونية المنشورة من خلال To Data & Beyond: ➡ Efficient Python for Data Scientists youssefhosni.gumroad.com/l/cbousj ➡ Hands-On Prompt Engineering: Building LLM Applications with Prompt Engineering youssefhosni.gumroad.com/l/xsmguv ➡ LLM Roadmap from Beginner to Advanced Level youssefhosni.gumroad.com/l/qigmtg ➡ Top Large Language Models Interview Questions and Answers youssefhosni.gumroad.com/l/rrzgu ➡ Data Science Portfolio for Success E-Book youssefhosni.gumroad.com/l/ltjno تقدر تستخدم الكوبون عشان تاخد الخصم: 5AOPHJC

DevGuide
11 079
How to start learning JAVA IN 2025
1. Core Java Basics
- Learn about basic syntax, variables, data types, and operators. - Control flow: if-else, loops (for, while, do-while). - Arrays and Strings. - Methods and Functions.
2. Object-Oriented Programming (OOP)
- Classes and Objects. - Encapsulation, Inheritance, Polymorphism, and Abstraction. - Interfaces and Abstract Classes.
3. Core Java Utilities
- Collections Framework (Lists, Sets, Maps, Queues).- - Generics. - Exception Handling. - Input/Output Streams (I/O).
4. Advanced Java Concepts
- Multithreading and Concurrency. - Java 8+ Features: Streams, Lambdas, Optional, Date and Time API. - Functional Programming.
5. Database Connectivity
- JDBC (Java Database Connectivity). - Connect Java applications with relational databases like MySQL or PostgreSQL.
6. Build Tools and Version Control
- Maven or Gradle for dependency management and building projects. - Git for version control.
7. Frameworks and Tools
- Spring Framework: Learn Spring Boot for building enterprise applications. - Hibernate: For ORM (Object-Relational Mapping). - REST APIs: Learn how to create and consume RESTful web services.
8. Front-end Integration (Optional)
- Integrate Java with front-end technologies like HTML, CSS, JavaScript. - Learn about JSP/Servlets or modern frameworks like Thymeleaf.
9. Testing
- Unit Testing with JUnit. - Integration Testing.
10. Build Projects
- Create simple projects like a library management system, e-commerce website, or chat application. - Gradually move to more complex projects using frameworks like Spring Boot.
11. Deployment
- Learn how to deploy Java applications on servers like Apache Tomcat. - Explore cloud platforms like AWS or Azure for deployment.