DevGuide – Telegram
11.1K subscribers
2.94K photos
19 videos
135 files
3.62K 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
إيه الفرق بين الـ JWT والـ Sessions؟ 🤔
.
.
الاتنين بيستخدموا علشان نعرف المستخدمين اللي دخلوا على الموقع، بس كل واحد له طريقة مختلفة تمامًا في التعامل.

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

———

JWT vs Sessions: The Real Difference in Simple Words 💡


If you’ve ever built or used a web app, you’ve probably logged in at some point. Maybe you checked your email, browsed Twitter, or paid a bill online. But have you ever wondered how these websites remember who you are?

That’s where authentication comes in. In web development, there are two big players in handling user sessions: JWT (JSON Web Tokens) and Sessions.

This article breaks down the difference between JWT and Sessions in simple, no-fluff words.

———

📍 DEV Community
https://dev.to/alisamir/jwt-vs-sessions-the-real-difference-in-simple-words-51c0

📍 Medium
https://medium.com/@dev.alisamir/jwt-vs-sessions-the-real-difference-in-simple-words-184e1e0d9e8d
9👏1
PREACT RUNS FAST ⚡️


Why Preact is winning:

📦 Only 3kB vs React's 30+kB
🔥 Dramatically faster load times
♻️ Direct DOM connection
⚙️ Works with React libraries


Perfect for:

🚀 Fast PWAs
📱 Mobile-first experiences
🧩 Lightweight components
6👍1
SQL Zero To Hero Mindmap
5
الفرق بين الـ Primary Key والـ Foreign Key
.
.
خلينا نتخيل قواعد البيانات كأنها شيت إكسيل كبير فيه جداول (Tables)، وكل جدول فيه صفوف (Rows) وأعمدة (Columns)، إزاي نقدر نميّز كل صف لوحده؟ أو نربط بين جدول وجدول؟ هنا بقى بييجي دور الـ Primary Key والـ Foreign Key.

———

🔸 أولًا: الـ Primary Key – المفتاح الأساسي


ده زي رقم البطاقة أو رقم الجلوس كده، كل صف في الجدول لازم يكون عنده قيمة مميزة في العمود ده، علشان نعرف نوصله بسهولة من وسط 1000 صف تاني.

- لازم يكون Unique: يعني كل صف له رقم مختلف عن التاني.
- لا يسمح بـ null: يعني لازم تكون القيمة موجودة ومش فاضية.


🎯 مثال بسيط: لو عندك جدول اسمه Students، ممكن تضيف عمود اسمه student_id كـ Primary Key. يعني كل طالب له ID مختلف، ده بيساعدنا نميّزه ونتعامل مع بياناته بسهولة.

———

🔸 ثانيًا: الـ Foreign Key – المفتاح الأجنبي أو المفتاح الرابط


هنا بقى الموضوع له علاقة بالعلاقات (Relationships) بين الجداول.

الـ Foreign Key هو عمود موجود في جدول، بس بيرجع يشاور على الـ Primary Key بتاع جدول تاني.
يعني بيقولك: "القيمة اللي هنا، لازم تكون موجودة هناك"


استخدامه الأساسي:

- بيربط الجداول ببعض.
- بيساعدنا نحافظ على "سلامة البيانات" (Data Integrity)، يعني ميبقاش فيه بيانات ملهاش معنى أو ملهاش علاقة.


🎯 مثال: لو عندنا جدول اسمه Orders، وعايزين نعرف كل أوردر اتعمل من مين، هنضيف عمود اسمه user_id كـ Foreign Key، اللي بيربط الأوردر ده بالمستخدم اللي موجود في جدول Users.

———

🧠 الخلاصة في كلمتين:

- الـ Primary Key: بيميز كل صف في جدول لوحده.
- الـ Foreign Key: بيربط الصف ده بصف تاني في جدول تاني.

الاتنين مع بعض زي المفتاح والباب... واحد يفتحلك الصف، والتاني يخليك توصل لجدول تاني وتربط البيانات ببعضها 💡

———

#دقيقة_برمجة
7👍1
API Design 101: From Basics to Best Practices 💯


In this deep dive, we’ll go through the API design, starting from the basics and advancing towards the best practices that define exceptional APIs.

———

https://levelup.gitconnected.com/api-design-101-from-basics-to-best-practices-a0261cdf8886
6
مفهوم الـ Index في قواعد البيانات 🔍
.
.
تخيل معايا أنك دخلت مكتبة فيها مليون كتاب، والمطلوب تدور على كتاب اسمه "تعلم البرمجة بلغة الجافا"، ومفيش أي ترتيب أو فهرس للمكتبة.

هتحتاج تمسك كتاب كتاب وتشوف عنوانه لحد ما تلاقي اللي أنت عايزه. الموضوع هيبقى بطييييء جدًا، صح؟

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

———

نفس الفكرة بالضبط بتحصل داخل قواعد البيانات.

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

———

🤔 ليه بنستخدم الـ Index؟


لما بتعمل استعلام (Query) علشان تجيب بيانات معينة، خصوصًا من جداول فيها ملايين الصفوف، الـ Index بيقلل وقت البحث بشكل كبير جدًا. بدل ما يقلب الجدول كله، بيروح يدور داخل الـ Index ويوصلك بالبيانات أسرع.

———

🛠 أنواع الـ Index المشهورة:


- الـ Single Column Index: بيكون معمول على عمود واحد بس.
- الـ Composite Index: بيكون معمول على أكتر من عمود مع بعض.
- الـ Unique Index: بيضمن إن القيم اللي في العمود غير مكررة.
- الـ Full-text Index: بيستخدم للبحث داخل نصوص طويلة زي المقالات.

———

⚠️ ملاحظة مهمة:


استخدام Index بيساعد في تسريع الـ SELECT queries...

لكن خلي بالك، كل ما تعمل Insert أو Update أو Delete في الجدول، قاعدة البيانات لازم تحدث الـ Index كمان، وده معناه شوية تكلفة إضافية. يعني، مينفعش تحط Index على كل الأعمدة وخلاص، لازم تختار على حسب أكتر Queries بتستخدمها.

———

الـ Index = فهرس بيسرع البحث داخل قواعد البيانات.

#دقيقة_برمجة
8👍1
The 2025 Microservices Roadmap for Developers
7👍1
Writing Clean, Secure Node.js APIs – A Checklist You’ll Actually Use


If you’re building APIs with Node.js, you’re not just writing code — you’re shaping the backbone of apps that people trust with their data, their businesses, and sometimes their lives.

We’ve all been there — quick fixes, rushed deadlines, and messy endpoints that haunt us later.

Here’s your essential checklist for writing clean, secure Node.js APIs — the one you’ll want to print out, save, and stick on your second monitor.

———

https://dev.to/alisamir/writing-clean-secure-nodejs-apis-a-checklist-youll-actually-use-3loc
2
🎯 الفرق بين الـ Client-side Validation والـ Server-side Validation
.
.
أول حاجة تعال نتفق إن الـ "Validation" يعني التحقق من صحة البيانات اللي المستخدم بيدخلها، زي مثلًا لما تيجي تسجل في موقع وتدخل الإيميل والباسورد، لازم الموقع يتأكد إن البيانات دي صح ومظبوطة قبل ما يحفظها أو يتعامل معاها.

التحقق ده ممكن يحصل في مكانين:

———

🔹 الـ Client-side Validation (التحقق في المتصفح):


- يعني التحقق بيحصل قبل ما البيانات تروح للسيرفر.
- الكود اللي بيعمل التحقق ده بيكون شغال عند المستخدم نفسه، غالبًا باستخدام JavaScript أو HTML5 Validation.

مثلًا لو أنت بتدخل بياناتك في فورم تسجيل، والمتصفح طلع لك رسالة بتقولك "الإيميل مش مكتوب بطريقة صحيحة" أو "الباسورد قصير"، قبل حتى ما تضغط على Submit... ده كده Client-side Validation.

ولكن النوع ده مش آمن بنسبة ١٠٠٪، ومينفعش نعتمد عليه لوحده.

———

🔹 الـ Server-side Validation (التحقق عند السيرفر):


- هنا التحقق بيحصل بعد ما البيانات تتبعت للسيرفر.
- السيرفر هو اللي بيتأكد بنفسه من كل حاجة: الإيميل صح؟ الباسورد قوي؟ وهكذا.

بغض النظر المستخدم عمل إيه على جهازه، السيرفر بيستلم الداتا ويتأكد منها بنفسه.

النوع ده ممكن يحميك من هجمات زي SQL Injection وغيرها، ولكن ده بيزود الحمل على السيرفر.

———

إيه الصح؟


الصح والمُتبع في أي مشروع محترم إنك تستخدم النوعين مع بعض:

- تعمل Client-side Validation عشان تحسن تجربة المستخدم وتظهر له Feedback سريع.
- وتعمل كمان Server-side Validation عشان تأمن نفسك وتحافظ على السيرفر والداتا بتاعتك.

———

#دقيقة_برمجة
9
يعني إيه Agile؟ 📈
.
.
الـ Agile ببساطة هو طريقة تفكير وإدارة لمشاريع البرمجة (أو أي مشاريع تانية) هدفها الأساسي إنك تطور المنتج بشكل سريع ومرن، وتعدل عليه بسهولة حسب احتياجات العميل أو السوق.

زمان كان الشغل في البرمجة بيتم بطريقة اسمها Waterfall، يعني نمشي خطوة خطوة بالترتيب (نخطط، نصمم، نبرمج، نختبر، نسلم)، ولو حصلت مشكلة وإحنا في النص، بنضطر نرجع للخطوة دي ونخسر وقت ومجهود كتير.

لكن الـ Agile قالك: بدل ما نعمل كل ده مرة واحدة ونخاطر، نشتغل بطريقة تانية:

- نقسم المشروع لأجزاء صغيرة اسمها Sprints (مدة الـ Sprint بتكون غالبًا من أسبوعين لشهر).
- في كل Sprint، نخلص جزء صغير شغال فعليًا من المشروع (ممكن صفحة، ميزة، أو وظيفة معينة).
- كل Sprint بيخلص، بنعرض اللي عملناه على العميل أو التيم، ونشوف رأيهم.
- بناءً على الفيدباك ده، نعدّل ونكمل Sprint جديد.

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

———

📌 طيب ليه الـ Agile مهم؟


- بيخليك تتعامل مع التغييرات اللي بتحصل في المشروع بسهولة وبشكل مرن.
- بيقلل احتمالية إن المشروع كله يفشل.
- بيخلي العميل شايف كل حاجة شغالة خطوة بخطوة.

———

💯 أشهر الطرق اللي بتطبق الـ Agile:


- الـ Scrum: ودي عبارة عن طريقة منظمة أكتر فيها أدوار زي Scrum Master و Product Owner.
- الـ Kanban: ودي نظام بيعتمد على بورد فيه مهام تتحرك ما بين To do → Doing → Done.

———

#دقيقة_برمجة
7👏4👍1
This media is not supported in your browser
VIEW IN TELEGRAM
مسار تعلم Spring Boot لعام 2025 🔥

Spring Boot Roadmap 2025: The Complete Guide for Backend Developers 🚀


Learn how to master Spring Boot in 2025 with this complete roadmap covering Java fundamentals, REST APIs, Spring Security, Data Access, and more.

https://www.amigoscode.com/blogs/spring-boot-roadmap-2025
4👍2
الـ HTTPS Certificate 💯
.
.
قبل ما ندخل في التفاصيل، تعال نعرف يعني إيه HTTPS؟

الـ HTTPS دي اختصار لـ HyperText Transfer Protocol Secure، وده البروتوكول اللي بيخلي التصفح بينك وبين الموقع "مُشَفَّر" وآمن 🔐.

———

في الطبيعي، لما بتدخل على موقع، بتبعت وتستقبل بيانات بين جهازك وبين السيرفر بتاع الموقع ده. لو الموقع شغّال بـ HTTP العادي، أي حد قاعد في النص – زي Wi-Fi غير آمن أو هاكر – ممكن يتجسس على البيانات اللي رايحة جاية، زي كلمات المرور، الإيميلات، أو حتى رقم الكريدت كارد بتاعك.

لكن لما الموقع يبقى شغّال بـ HTTPS، البيانات اللي رايحة جاية بتكون مشفرة، ومفيش حد يقدر يفهمها حتى لو قدر يشوفها.

———

📌 إزاي ده بيحصل؟


هنا بقى بييجي دور HTTPS Certificate، أو زي ما بنسميه SSL Certificate (مع إن الاسم الأدق دلوقتي TLS Certificate بس مش مشكلة).

الـ Certificate ده عبارة عن ملف إلكتروني بيكون متسجل فيه شوية معلومات عن الموقع:

- اسم الموقع (الدومين)
- الشركة أو الجهة اللي عندها الموقع
- توقيع من جهة اسمها Certificate Authority (CA)، ودي جهة موثوقة بتقولك "إن الموقع ده حقيقي وموثوق".

يعني تقدر تعتبر الـ HTTPS Certificate هي بطاقة التعريف والضمان للموقع.

———

لما تدخل على موقع بيستخدم HTTPS، المتصفح بيروح يسأل:

"هل أنت معاك شهادة موثوقة تثبت إنك الموقع الصح؟"

لو الإجابة نعم، المتصفح بيكمّل الاتصال ويبدأ التشفير.

ولو الموقع مفيهوش شهادة أو الشهادة منتهية؟

المتصفح هيطلع لك رسالة تحذير تقولك:

"الموقع ده مش آمن، أنت متأكد إنك عاوز تكمل؟"

———

الـ HTTPS Certificate هي اللي بتأمن الاتصال بينك وبين أي موقع، بتحمي بياناتك من السرقة، وبتطمن المتصفح إن الموقع موثوق.

#دقيقة_برمجة
8
Understanding Observer Pattern in React: A Complete Guide 💯


If you've been building React applications for a while, you've likely encountered moments where components need to stay in sync — like when a sidebar needs to update when a user changes a setting in the main content area.

This is where the Observer Pattern can shine. In this guide, we'll break down what the Observer Pattern is, how it works, and how to implement it in React with TypeScript.

———

https://dev.to/alisamir/understanding-observer-pattern-in-react-a-complete-guide-omf
4
🔰 HTML File Paths Explanation
4