DevGuide – Telegram
11.2K subscribers
2.92K photos
19 videos
133 files
3.61K links
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
Download Telegram
مفهوم الـ Infrastructure as Code (IaC) 💯
.
.
تعال ندردش شوية عن مفهوم مهم جدًا في عالم الـ DevOps، وهو Infrastructure as Code (IaC)، أو بمعنى آخر "البنية التحتية كـ كود".

الفكرة دي يمكن تكون غريبة شوية في البداية، لكن خليني أوضحلك إزاي الموضوع ده بيغير شكل إدارة البنية التحتية في المشاريع التقنية.

———

📌 إيه فكرة الـ IaC؟


زمان لما كنا بنشتغل على السيرفرات أو الكلاود، كان لازم نقعد نجهز كل حاجة يدوي: نثبت أنظمة التشغيل، نظبط الإعدادات، نحدد ال permissions، وده طبعًا بياخد وقت طويل جدًا.

لكن مع Infrastructure as Code الموضوع مختلف، لأننا بنكتب كل الإعدادات دي على شكل كود، زي ما بنكتب الكود بتاع التطبيق، يعني بتتحول عملية إعداد السيرفرات نفسها لكود نقدر نشغله في أي وقت ونطلع نفس النتيجة بدون تدخل يدوي.

———

📌 أهمية الـ IaC؟


⚡️ السرعة والدقة: بدل ما نجهز كل السيرفرات يدوي ونضيع وقت، بنكتب كود بيجهز لنا السيرفرات أو الموارد اللي عايزينها بالضبط وبالسرعة المطلوبة. وده بيخلي الشغل أسرع بكتير وبيقلل الأخطاء اللي ممكن تحصل.

⚡️ قابلية التكرار: لما نبني بيئة من الأول أو نعمل سيرفر جديد، بنقدر نستخدم نفس الكود عشان نضمن إن كله متظبط بالضبط زي السيرفرات التانية، وده مهم لو بنشتغل في شركة فيها أكتر من بيئة (زي بيئة للتطوير وبيئة للاختبار وبيئة للإنتاج).

⚡️ التحكم في النسخ والـ Versioning: بما إن الكود ده بنكتبه على شكل ملفات زي كود البرنامج، بنقدر نعمل عليه Version Control باستخدام أدوات زي Git. يعني لو حصلت مشكلة في أي وقت، بنقدر نرجع لنسخة أقدم من الكود بسهولة.

———

📌 فيه أدوات كتير بتساعدنا نكتب الـ IaC وننفذه، وأشهر الأدوات دي:


⚙️ الـ Terraform: الأداة دي بتساعدك تكتب كود يشتغل على أي منصة تقريبًا، سواء AWS أو Azure أو GCP أو غيرهم.

⚙️ الـ AWS CloudFormation: دي أداة مخصوصة لـ AWS، بتقدر تكتب بها الـ IaC بتاعك لو شغال على خدمات AWS.

⚙️ الـ Ansible و Chef و Puppet: دول أدوات بنسميها Configuration Management Tools، بتساعدنا نجهز السيرفرات ونحافظ على الإعدادات ثابتة.

———

📌 مثال بسيط على الـ Terraform


لو عندك مشروع شغال على AWS وعايز تبني فيه بيئة مكونة من EC2 Instance و S3 Bucket، ممكن تكتب كود بسيط باستخدام Terraform وتقول له يعمل Deploy، وفي ثواني هتلاقي البيئة كلها اتبنت بنفس المواصفات اللي كتبتها.

📍 إزاي بنكتب الكود؟

الكود بيتكتب غالبًا بلغة بسيطة بتعبر عن الموارد اللي عايز تبنيها والإعدادات بتاعتها. لو عايز سيرفر، هتكتب كود يقول يعمل سيرفر بالشكل ده، وبعدين هتشغل الكود بتاعك، وهو هيجهز لك كل حاجة، حتى لو هتشتغل على أكتر من سيرفر أو Cloud Provider.

———

📌 التحديات اللي ممكن تواجهك مع الـ IaC؟


- التعلم: الـ IaC بيحتاج شوية وقت عشان تتعلم الأدوات المختلفة وتفهم إزاي تكتب كود يناسب البنية التحتية اللي عايز تبنيها.

- الاختبار والتحديث: أي تغيير في الكود ممكن يأثر على البنية كلها، علشان كده هتحتاج تختبر الكود كويس وتتأكد إنه شغال تمام قبل ما تطبقه.

- الأمان: كتابة إعدادات الأمان والـ permissions بطريقة صح في الكود بتاعك مهمة جدًا، خصوصًا لو بتشتغل على بيئة Production.

———

الـ Infrastructure as Code (IaC) بيوفر وقت ومجهود كبير وبيخلي إدارة البنية التحتية أبسط وأدق بكتير.

ممكن تتخيلها كأنك بتبني البنية التحتية بنفس الطريقة اللي بتبني بيها التطبيق بتاعك، كله بالكود، كله قابل للتكرار والتحديث بسهولة.

———

وفقكم الله لكل خير 🌿
12
الـ DNS Prefetching 🔻
.
.
الموضوع ده مهم جدًا لأنه بيحسن سرعة تحميل الصفحات في المواقع وبيخلّي تجربة المستخدم أحسن بكتير...

———

📍 يعني إيه DNS Prefetching؟

ببساطة، الـ DNS Prefetching هو أسلوب بيخلي المتصفح يعمل استباق لتحويل الدومينات اللي محتمل تزورها قريب، قبل ما المستخدم يضغط على اللينك أو قبل ما اللينك يشتغل.

يعني إيه الكلام ده؟

يعني المتصفح بيحاول يعرف عنوان الـ IP الخاص بالدومين أو الموقع اللي اللينك بتاعه موجود في الصفحة عشان يكون جاهز بسرعة لو المستخدم ضغط عليه.

———

📍 ليه بنحتاج الـ DNS Prefetching؟

خليني أقولك إن كل ما يكون فيه روابط كتير في الصفحة، والمتصفح يحتاج يعرف العناوين الخاصة بها قبل ما يقدر يجيب البيانات، الموضوع بياخد وقت.

كل رابط محتاج تحويل أو DNS Lookup عشان يوصل للمكان اللي بيخزن عليه المحتوى.

التحويل ده ممكن ياخد وقت خاصة لو كان فيه أكتر من دومين مختلف. الـ DNS Prefetching بيخلي المتصفح يخلص الحكاية دي بسرعة من غير ما يستنى المستخدم، وبكده بيكون جاهز لما ييجي دور الرابط.

———

📍 إزاي الـ DNS Prefetching بيشتغل؟

⚙️ المتصفح بيعمل استباق للدومين: يعني المتصفح بيقول لنفسه "اللينك ده هيستخدم دومين مختلف؟ طيب خليني أجيب عنوان IP بتاعه من دلوقتي".

⚙️ التقليل من وقت الـ DNS Lookup: لما المستخدم يضغط على الرابط، المتصفح بالفعل عنده عنوان الـ IP الخاص بالموقع الجاي، وبالتالي مفيش وقت هيضيع في محاولة الوصول للمكان.

———

📍 إمتى نستخدم الـ DNS Prefetching؟

الـ DNS Prefetching يعتبر فكرة كويسة لو عندك موقع فيه لينكات كتير لمصادر خارجية زي مكتبات الـ JavaScript، الصور، الخطوط، أو إعلانات.

يعني لو الموقع بتاعك فيه مكتبات JavaScript مستوردة من دومينات خارجية، زي مكتبة الخطوط من جوجل أو أي حاجة من دومينات تانية، يبقى الـ DNS Prefetching فكرة ممتازة عشان السرعة تكون أعلى والمستخدم ما يلاحظ أي تأخير.

———

📍 إيه فائدة الـ DNS Prefetching للمستخدم؟

أكبر فائدة للمستخدم هي تسريع تحميل الصفحة. ده بيخلي الموقع يشتغل بشكل أسرع ومريح أكتر، خاصة لو الصفحة فيها لينكات لمحتوى خارجي أو مصادر مختلفة، وبالتالي بيقلل الانتظار اللي ممكن يواجهه المستخدم لما يضغط على رابط معين.

———

📍 إزاي نستخدمه في الكود؟

هنضيف الوسم الخاص بالـ DNS Prefetching في الـ <head> وهيكون بالشكل ده:
<link rel="dns-prefetch" href="https://example.com">

السطر ده بيخلي المتصفح يجهز عنوان الـ IP الخاص بالدومين المحدد في الوسم.

———

وفقكم الله لكل خير 🌿
7
Top 20 System Design Concepts You Should Know 💯
💯91
مفهوم الـ JSON Web Tokens (JWT) 💡
.
.
يعني إيه JWT؟ وليه هو مهم في عالم السوفتوير؟

لو اشتغلت قبل كده على أي تطبيق ويب أو موبايل بيتطلب منك تسجيل دخول (login)، غالبًا سمعت عن حاجة اسمها JWT أو JSON Web Tokens.

ببساطة، الـ JWT دي زي تذكرة أمان بيديهالك السيرفر لما بتعمل تسجيل دخول. كل ما تيجي تدخل التطبيق بعد كده، بتروح تقول للسيرفر "أنا معايا التذكرة بتاعتي!" والسيرفر يسيبك تعدي من غير ما تعيد تسجيل الدخول تاني.

———

التذكرة دي (أو الـ JWT) مش مجرد كود عشوائي كده، لكنه عبارة عن 3 أجزاء:

📍 الـ Header: وده بيكون فيه معلومات بسيطة زي نوع الـ Token وطريقة التشفير المستخدمة.
📍 الـ Payload: وده الجزء اللي فيه المعلومات المهمة زي الـ user ID بتاعك أو الأذونات اللي معاك في التطبيق.
📍 الـ Signature: وده الجزء اللي بيتعمله توقيع عشان نتأكد إن الـ Token ده مش معمول فيه أي لعب أو تعديل من طرفك أو طرف أي حد تاني.

———

📌 إزاي الـ JWT بيشتغل؟


⚡️ لما بتسجل دخول، السيرفر بيديك Token مشفر، بيكون فيه الـ user ID بتاعك أو أي معلومات تانية بتحدد هويتك.
⚡️ أنت بقى كل مرة تفتح التطبيق، الـ JWT ده بيروح مع كل طلب بتعمله للسيرفر (زي لما تفتح بروفايلك أو تغير إعدادات حسابك).
⚡️ السيرفر بياخد الـ JWT ويتأكد إنه سليم ومفيش حد لعب فيه، ولو كل حاجة تمام، بيسمحلك تكمل طلبك.

———

🔐 ليه التشفير في الـ JWT مهم؟


التشفير ده اللي بيمنع أي حد من إنه يعدل في البيانات الموجودة في الـ Token. يعني مثلًا لو حد حاول يغير الـ user ID عشان يتظاهر إنه مستخدم تاني، التوقيع الرقمي اللي في الـ JWT هيبقى مش مظبوط، والسيرفر هيعرف إن فيه حاجة غلط وهيمنع الطلب ده.

———

💯 إمتى تستخدم الـ JWT؟


الـ JWT مفيد لما يكون عندك تطبيق بيعتمد على API وبتحتاج تدي صلاحيات للمستخدمين بدون ما تخليهم يسجلوا الدخول كل شوية. وكمان حلو في التطبيقات اللي بتشتغل على أكتر من منصة، زي إنك تعمل تسجيل دخول من الموبايل أو الكمبيوتر بنفس الطريقة.

———

💡 مزايا وعيوب الـ JWT


- المزايا: سهل الاستخدام، سريع، مش محتاج تخزين معلومات الجلسات على السيرفر (Stateless).
- العيوب: لو الـ Token باظ أو اتسرق، المستخدم ممكن يكون معرض لخطر، ومدة صلاحية الـ Token لازم تكون مظبوطة عشان تقلل من المشاكل دي.

———

وفقكم الله لكل خير 🌿
8👏2
مفهوم الـ Vector Database 💡
.
.
لو ركزت شوية في معظم التطبيقات الذكية اللي موجودة في الوقت الحالي – من Google Search لحد ChatGPT و Netflix – هتلاقي إن فيه حاجة مشتركة بينهم: القدرة إنهم "يفهموا" اللي أنت بتدور عليه مش بس يطابقوا الكلمات.

الموضوع ده عمره ما كان هيبقى سهل بالـ Databases التقليدية اللي تعودنا عليها زي SQL أو NoSQL. وعلشان كده ظهر نوع جديد من قواعد البيانات اسمه: Vector Database.

الـ Vector Database اتعملت مخصوص عشان تحل مشكلة البحث بالـ "معنى" مش بالـ "كلمة"، ودي النقلة اللي خلت أي نظام ذكي يقدر يتعامل مع الـ Data بطريقة شبه تفكيرنا كبشر.

———

📌 يعني إيه Vector Database؟

الـ AI Models (زي NLP أو Computer Vision) لما تيجي تمثل أي معلومة – سواء نص، صورة، أو صوت – مش بتخزنها بشكلها الخام. هي بتحولها لحاجة اسمها Embedding Vector.

الـ Vector ببساطة عبارة عن Array أرقام (زي [0.23, -0.44, 0.91, …]) والأرقام دي بتعبر عن المعنى.

مثال:

- كلمة "cat" و "dog" هتلاقي الـ Vectors بتوعهم قريبين جدًا في الـ Space.
- لكن كلمة "car" هتكون بعيدة عنهم.

بالتالي البحث هنا بيبقى مش بالكلمة نفسها، بالـ Similarity في المعنى.

———

⚡️ إيه المشكلة مع الـ Databases العادية؟

- الـ MySQL أو MongoDB مصممين للـ Keyword Search. يعني تدور على كلمة "cat" يجيبلك Data فيها الكلمة دي بالحرف.
- لكن لو عايز تبحث عن حاجة شبه "cat" بالمعنى (زي "kitten" أو "cute animal")… هنا الـ Databases التقليدية مش هتساعدك.

———

💡 إيه وظيفة الـ Vector Database؟

1- تخزن الـ Vectors بشكل efficient.
2- تتيحلك تعمل Similarity Search أو Nearest Neighbor Search بسرعة كبيرة جدًا.
3- تخليك تقدر تسأل بالـ natural language وتاخد نتيجة دقيقة بالمعنى.

———

🛠 أمثلة عملية:

- الـ Recommendation Systems: زي Netflix أو Spotify لما يقترحوا حاجة شبه اللي بتحبها.
- الـ Semantic Search: تدور في Documents أو Emails عن "meeting" فيجيبلك حاجات ليها علاقة حتى لو الكلمة مش مكتوبة بالحرف.
- الـ Chatbots: زي ChatGPT لما يرد عليك من Knowledge Base باستخدام أقرب إجابة بالمعنى مش بالكلمة.

———

📂 أمثلة على Vector Databases:

- Pinecone
- Weaviate
- Milvus
- Qdrant

كمان فيه Extensions للـ Databases التقليدية زي PostgreSQL (pgvector).


———

وفقكم الله لكل خير 🌿
14
Top 100 Frontend Interview Questions.pdf
316.4 KB
أهم 100 سؤال لازم تذاكرهم قبل أي إنترفيو Frontend 💯
4
Custom Scrollbar in CSS 💫
7
إصدار PHP 8.5 هينزل يوم 20 نوفمبر 2025 وجايب معاه شوية تحديثات رايقة 💯

———

📌 LinkedIn:
https://www.linkedin.com/posts/mentoor-io_php-backend-backenddevelopment-activity-7396215941098962944-xUd8

📌 Facebook:
https://www.facebook.com/share/p/1AsjVju9F1
2
JavaScript Shorthands 💯
3
Microservices Best Practices 💯
4
10_Programming_Principles_Every_Software_Developer_Should_Know.pdf
222.9 KB
مهم جدًا تركز على المبادئ دي وأنت بتكتب كود 💯

10 Programming Principles Every Software Developer Should Know!

- DRY (Don’t Repeat Yourself)
- KISS (Keep it Simple, Stupid)
- YAGNI (You Aren’t Gonna Need It
- Separation of Concerns (SoC)
- SOLID Principles
- Do The Simplest Thing That Could Possibly Work
- Code For The Maintainer
- Avoid Premature Optimization
- Boy Scout Rule
- Law of Demeter
4👏2