Muhammad Alush
описание
في عالم مليء بالثغرات…مهمتي أكون خط الدفاع الأول 🔐 مهندس برمجيات & أمن سيبراني، مؤسس موقع نسور التقنية حسابي على منصة إكس: https://x.com/MhamadAlush0997
24 930
подписчиков
Охват к подписчикам
3,4%
ERR
Реакции к просмотрам
0,12%
61 на 50 постов
Пересылки к просмотрам
0,30%
153
Постов в день
0,4
всего 87
Где отзываются чаще
доля реакций к просмотрам- 4 авг.تطبيق نتائج البكالوريا… أم دورة مكثفة في اكتشاف أخطاء البرمجة؟ 😅 من المفترض أن يكون إطلاق تطبيق رسمي لنتائج آلاف الطلاب حدثاً تقنياً مدروساً، لكن الصور الظاهرة قدّمت لنا بدلاً من النتائج معرضاً متنوعاً من أخطاء الـBackend والـAPI والـFlutter وCloudflare، وكل خطأ معروض للمستخدم بكامل أناقته التقنية… من دون ترجمة أو معالجة! خلونا نفهم علمياً ماذا حدث: 🔴 type 'Null' is not a subtype of type 'String' هذا خطأ شائع في تطبيقات Flutter/Dart، ويعني أن التطبيق كان ينتظر قيمة نصية String، لكن الخادم أعاد له قيمة فارغة null، فتمريرها جرى مباشرة من دون التحقق منها. كان يجب التعامل معها مثلاً بقيمة افتراضية أو التحقق قبل الاستخدام، لا أن يظهر الخطأ البرمجي للطالب وكأنه جزء من علاماته: final title = data['title']?.toString() ?? 'لا توجد بيانات'; 🔴 Route POST:/loginFreeStudent not found التطبيق أرسل طلب تسجيل دخول إلى مسار غير موجود على الخادم. الاحتمالات التقنية تشمل: اسم المسار مكتوب بطريقة خاطئة. نسخة التطبيق تستخدم API قديمة. الـBackend المنشور لا يحتوي هذا المسار. عنوان الخادم أو Base URL غير صحيح. المسار موجود، لكن بطريقة GET بدلاً من POST أو العكس. بمعنى آخر: واجهة التطبيق والخادم لا يعرفان بعضهما جيداً، لكنهما قررا اللقاء مباشرة أمام الطلاب. 🔴 Route GET:/getNotificationCertificateAndroid not found المشكلة نفسها، ولكن هذه المرة في مسار الإشعارات أو الشهادة على أندرويد. التطبيق يستدعي Endpoint غير موجود، بدلاً من تعطيل الميزة مؤقتاً أو إرجاع رسالة مفهومة. 🔴 ظهور صفحة Cloudflare كاملة بصيغة HTML هذه ربما الأجمل تقنياً! بدلاً من إظهار رسالة مثل: > يوجد ضغط على الخادم، يرجى المحاولة لاحقاً. قام التطبيق بعرض كود صفحة Cloudflare للمستخدم، بدءاً من: <!DOCTYPE html> ووصولاً إلى ملفات CSS وتفاصيل الصفحة. هذا يدل غالباً على أن التطبيق كان يتوقع استجابة JSON، لكنه تلقى صفحة HTML من Cloudflare بسبب حظر أو خطأ أو تحدٍ أمني، ثم عرض محتواها كما هو من دون التحقق من: رمز الاستجابة HTTP Status Code نوع المحتوى Content-Type بنية البيانات قبل تحليلها كون الاستجابة صادرة فعلاً عن الـAPI أي أن التطبيق قال للخادم: «أعطني النتيجة»، فرد Cloudflare بصفحة خطأ، فقال التطبيق للمستخدم: «تفضل… اقرأها كلها». المشكلة ليست بوجود الخطأ فقط لا يوجد نظام برمجي في العالم مضمون بنسبة 100% من الأخطاء، لكن المشكلة الحقيقية هنا هي أن التطبيق نُشر في بيئة إنتاجية من دون معالجة أخطاء محترمة، ومن دون رسائل مفهومة للمستخدم. المستخدم لا يجب أن يرى: أسماء مسارات الـAPI الداخلية. رسائل Framework البرمجية. محتوى HTML خام. تفاصيل قد تكشف بنية النظام. كلمة Null وكأنها نتيجة امتحانية جديدة. كان يجب تحويل جميع هذه الحالات إلى رسائل بسيطة، مثل: > تعذر الاتصال بالخدمة حالياً بسبب الضغط الكبير. يرجى المحاولة بعد قليل. مع تسجيل التفاصيل التقنية سراً في أنظمة مراقبة الأخطاء، ليستفيد منها الفريق البرمجي، لا طلاب البكالوريا. ما الذي كان يجب فعله قبل الإطلاق؟ كان من الضروري إجراء اختبارات ضغط تحاكي دخول أعداد كبيرة من الطلاب في اللحظة نفسها، واختبار جميع مسارات الـAPI على نسخة الإنتاج، وتوحيد إصدارات التطبيق والخادم، وإضافة Timeout وإعادة محاولة مدروسة، والتحقق من نوع الاستجابة قبل عرضها. كذلك يجب استخدام نظام مركزي لتسجيل الأخطاء، مع صفحة حالة للخدمة، ورسائل عربية واضحة، ونسخة تجريبية مغلقة قبل الإطلاق العام. والأهم: يجب ألا يُنشر التطبيق قبل اختبار السيناريو الأكثر وضوحاً: ماذا يحدث عندما تكون النتيجة غير موجودة، أو يكون الخادم متوقفاً، أو تعيد الـAPI قيمة null؟ لأن المفاجأة أن كلمة «إعادة المحاولة» وحدها ليست نظاماً متكاملاً لمعالجة الاستثناءات! ختاماً، التطبيق الحكومي لا يُشترط أن يكون بلا أي خطأ، فهذا غير واقعي تقنياً، لكنه يجب أن يكون مستقراً، آمناً، مختبَراً، وقادراً على إخفاء أخطائه الداخلية والتعامل معها باحترافية. أما أن يتحول الطالب من انتظار نتيجة الامتحان إلى تشخيص مشاكل الـBackend والـRoutes وCloudflare، فهذه مادة إضافية لم تكن موجودة في المنهاج! 🙂0,70%
- 16 июн.без подписи0,51%
- 11 авг.كيف تستعيد صور WhatsApp المحذوفة؟ في بعض الحالات يمكن العثور عليها في معرض الهاتف، أو سلة المحذوفات، أو Google Photos، أو مجلد WhatsApp، أو استعادتها من نسخة احتياطية سابقة. 🔴 رابط المقال كاملاً : 🔴🔴 https://www.nusurtech.ca/2026/08/how-do-you-recover-deleted-whatsapp-photos.html0,37%
- 19 июл.без подписи0,34%
- 28 июн.без подписи0,31%
- 13 авг.8 خطوات مهمة لحماية بياناتك الشخصية قبل بيع هاتفك قبل بيع هاتفك، لا تكتفِ بحذف الصور والملفات! تعرّف على 8 خطوات مهمة لحماية بياناتك الشخصية، بدءًا من النسخ الاحتياطي وتسجيل الخروج من الحسابات، وصولًا إلى إزالة الشرائح وإجراء إعادة ضبط المصنع، لضمان عدم وصول المشتري إلى معلوماتك الخاصة بعد بيع الهاتف. 🔴 رابط المقال كاملاً : 🔴🔴 https://www.nusurtech.ca/2026/08/eight-important-steps-to-protect-your-personal-data.html0,29%
- 12 июл.без подписи0,26%
- 5 авг.أخطاء يجب تجنبها عند #تطوير #مواقع_الويب يقع الكثير من #المطورين ، خاصة في بداية مسيرتهم، في #أخطاء تؤثر سلبًا على جودة #الموقع وتجربة المستخدم، مما يؤدي إلى انخفاض عدد الزوار أو زيادة معدل مغادرة الموقع. 🔴 رابط المقال كاملاً : 🔴🔴 https://www.nusurtech.ca/2026/08/mistakes-to-avoid-when-developing-websites.html0,25%
- 12 авг.5 إعدادات تساعد على إطالة عمر بطارية هاتفك تُعد بطارية الهاتف من أكثر المكونات التي تتأثر بالاستخدام اليومي، ومع مرور الوقت قد تلاحظ انخفاضًا تدريجيًا في قدرتها على الاحتفاظ بالشحن. 🔴 رابط المقال كاملاً : 🔴🔴 https://www.nusurtech.ca/2026/08/settings-that-help-extend-your-phone-battery-life.html0,25%
- 8 июл.без подписи0,22%
- 6 июл.без подписи0,20%
- 19 июл.без подписи0,20%