DevGuide
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
إظهار المزيد📈 نظرة تحليلية على قناة تيليجرام DevGuide
تُعد قناة DevGuide (@the_developer_guide) لاعباً نشطاً. يضم المجتمع حالياً 11 079 مشتركاً، محتلاً المرتبة 11 258 في فئة التكنولوجيات والتطبيقات والمرتبة 11 144 في منطقة العراق.
📊 مؤشرات الجمهور والحراك
منذ تأسيسه في невідомо، حقق المشروع نمواً سريعاً وجمع 11 079 مشتركاً.
بحسب آخر البيانات بتاريخ 11 يونيو, 2026، تحافظ القناة على نشاط مستقر. خلال آخر 30 يوماً تغيّر عدد الأعضاء بمقدار -26، وفي آخر 24 ساعة بمقدار -3، مع بقاء الوصول العام مرتفعاً.
- حالة التحقق: غير موثّقة
- معدل التفاعل (ER): يبلغ متوسط تفاعل الجمهور 6.95%. وخلال أول 24 ساعة من النشر يحصد المحتوى عادةً 3.00% من ردود الفعل نسبةً إلى إجمالي المشتركين.
- وصول المنشورات: يحصل كل منشور على متوسط 770 مشاهدة. وخلال اليوم الأول يجمع عادةً 332 مشاهدة.
- التفاعلات والاستجابة: يتفاعل الجمهور بانتظام؛ متوسط التفاعلات لكل منشور يبلغ 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”
بفضل وتيرة التحديث المرتفعة (أحدث البيانات بتاريخ 12 يونيو, 2026) تحافظ القناة على حداثتها ومستوى وصول مرتفع. وتُظهر التحليلات تفاعلاً نشطاً من الجمهور، ما يجعلها نقطة تأثير مهمة ضمن فئة التكنولوجيات والتطبيقات.
Let’s break it down, what they do, when to use them, and how to choose the right one for your app.
✅ أولًا: الـ Hashing:تخيل إنك بتعمل بصمة لأي معلومة… مش علشان ترجع لها بعدين، لكن علشان تتأكد إنها متغيرتش. الـ Hashing بياخد قيمة (زي password مثلًا)، ويطلع منها سلسلة ثابتة الطول شكلها عشوائي – اسمها Hash – واللي بتستخدمها عشان تطابق أو تتحقق من البيانات من غير ما تحتاج تخزن الأصل. 🎯 المهم هنا: - العملية دي One Way (مفيش رجوع). - لو غيرت حرف واحد، الـ Hash كله بيتغير. - وده اللي بنستخدمه مثلًا لما نخزن الـ Passwords في قواعد البيانات. ⚠️ لو حد عرف الـ Hash، مش هيعرف يطلع منه الباسورد الأصلي (بس ممكن يعمل Brute Force ويحاول يخمنه). ———
✅ ثانيًا: الـ Encoding:ده ملوش أي علاقة بالسرية... الـ Encoding هو طريقة بنحول بها البيانات لشكل تاني علشان يسهل تخزينها أو نقلها. زي Base64، اللي بتحول مثلًا صورة أو نص يحتوي رموز غريبة لشكل مفهوم لأي نظام. 🎯 المهم هنا: - العملية دي Two Way (تقدر ترجّع البيانات الأصلية). - مفيش أي حماية أو تشفير، أي حد يعرف نوع الـ encoding يقدر يفكه بسهولة. - الهدف منه بس إنك تنقل الداتا بدون ما تضيع أو تبوظ. مثال بسيط: لو عندك some text ممكن يتحول بـ Base64 إلى: c29tZSB0ZXh0 ———
✅ ثالثًا: الـ Encryption:أنت عايز تبعت داتا سرية لحد، ومش عايز أي حد في النص يفهمها. فبتعمل لها تشفير باستخدام مفتاح (Key)، والمستلم اللي معاه المفتاح يقدر يفكها. 🎯 المهم هنا: - العملية دي Two Way، بس لازم المفتاح. - لو المفتاح اتسرّب أو ضاع، أي حد يقدر يفك البيانات. - بتستخدمها في إرسال معلومات حساسة زي بطاقات الدفع أو بيانات المستخدمين. فيه نوعين من الـ Encryption: - الـ Symmetric: نفس المفتاح بيشفّر ويفك (زي AES). - الـ Asymmetric: مفتاحين، واحد بيشفّر (public) والتاني بيفك (private) – زي اللي بيستخدم في HTTPS. ——— 💡 إمتى تستخدم مين؟ - بتخزن passwords؟ يبقى Hashing - بتبعت صورة أو داتا عبر API؟ يبقى Encoding - بتبعت معلومات حساسة زي tokens أو بيانات مستخدم؟ يبقى Encryption ——— وفقكم الله لكل خير 🌿
BEGIN TRANSACTION;
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
UPDATE accounts SET balance = balance + 100 WHERE id = 2;
COMMIT;
لو أي واحدة من الـ 2 updates فشلت، الـ transaction كلها هتتفك، والداتا ترجع زي ما كانت كأن مفيش حاجة حصلت.
———
⚠️ إيه اللي ممكن يبوّظ الـ Atomicity؟
- قطع الكهرباء أو أي Crash في النص.
- الـ Exceptions أو الـ Errors في جزء من الـ transaction.
- إنك تنفذ queries من غير transaction أصلًا
ولو السيستم مش بيطبق الـ Atomicity صح، الداتا ممكن تبقى corrupted، وساعتها ربنا يستر.
———
📌 إيه الفرق بين الـ Atomicity وبين الـ Consistency؟
الـ Atomicity بتتكلم عن هل العملية كلها تمت أو لا؟
الـ Consistency بتسأل هل الداتا بعد العملية في حالة صحيحة؟
يعني:
- الـ Atomicity = حصل commit كامل ولا لا؟
- الـ Consistency = لو حصل، الداتا بقت consistent ولا لا؟
الاتنين مكملين بعض، بس مش نفس الحاجة.
———
وفقكم الله لكل خير 🌿BEGIN TRANSACTION;
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
UPDATE accounts SET balance = balance + 100 WHERE id = 2;
COMMIT;
لو أي واحدة من الـ 2 updates فشلت، الـ transaction كلها هتتفك، والداتا ترجع زي ما كانت كأن مفيش حاجة حصلت.
———
⚠️ إيه اللي ممكن يبوّظ الـ Atomicity؟
- قطع الكهرباء أو أي Crash في النص.
- الـ Exceptions أو الـ Errors في جزء من الـ transaction.
- إنك تنفذ queries من غير transaction أصلًا
ولو السيستم مش بيطبق الـ Atomicity صح، الداتا ممكن تبقى corrupted، وساعتها ربنا يستر.
———
📌 إيه الفرق بين الـ Atomicity وبين الـ Consistency؟
الـ Atomicity بتتكلم عن هل العملية كلها تمت أو لا؟
الـ Consistency بتسأل هل الداتا بعد العملية في حالة صحيحة؟
يعني:
- الـ Atomicity = حصل commit كامل ولا لا؟
- الـ Consistency = لو حصل، الداتا بقت consistent ولا لا؟
الاتنين مكملين بعض، بس مش نفس الحاجة.
———
وفقكم الله لكل خير 🌿📦 مثال بسيط:[ كل الأكواد في التعليقات 👇 ]
class EmailService {
sendEmail(to: string, body: string) {
// logic to send email
}
}
class OrderService {
private emailService = new EmailService();
placeOrder(orderData: any) {
// logic to place order
this.emailService.sendEmail(orderData.customerEmail, "Order placed!");
}
}
كده الـ OrderService معتمد بشكل مباشر على الـ EmailService.
لو حبيت تغير وسيلة إرسال الإيميل أو تبعتها عبر SMS أو push notification، هتضطر تغيّر في الكود بتاع OrderService نفسه… وده ضد مبدأ open/closed principle كمان.
———
✅ الحل؟
interface Notifier {
notify(to: string, message: string): void;
}
class EmailService implements Notifier {
notify(to: string, message: string) {
// send email
}
}
class SMSService implements Notifier {
notify(to: string, message: string) {
// send sms
}
}
class OrderService {
constructor(private notifier: Notifier) {}
placeOrder(orderData: any) {
// logic to place order
this.notifier.notify(orderData.customerContact, "Order placed!");
}
}
كده الـ OrderService ميعرفش أي حاجة عن الـ implementation بتاع الـ notifier، سواء كان email أو sms.
هو بس بيتعامل مع abstraction (interface اسمها Notifier).
وبالتالي تقدر تغير الـ implementation في أي وقت من غير ما تلمس الـ OrderService.
———
💡 إزاي ده هيفرق معاك؟- الكود بتاعك بقى loosely coupled. - بقى modular وأسهل في التعديل والصيانة. - الـ testing بقى أبسط لأنك تقدر تعمل mock لـ Notifier بسهولة. - بقيت تقدر تبدّل الـ implementation من غير ما تعمل refactor تقيل. ——— الـ Dependency Inversion بيخليك دايمًا تفكر في dependencies على إنها شيء ممكن يتغير… فبدل ما تبني عليها بشكل مباشر، استخدم abstraction تفصل به بين high-level logic و low-level details. ——— وفقكم الله لكل خير 🌿
متاح الآن! بحث تيليغرام 2025 — أهم رؤى العام 
