بلوغسي
منصة تدوين متعددة المستخدمين متكاملة
التحدي
بناء منصة تدوين متعددة المستخدمين يتطلب تحقيق التوازن بين الأمان وقابلية التوسع وثراء الميزات مع الحفاظ على هندسة نظيفة. كل تفاعل للمستخدم يحتاج مصادقة مناسبة، والمحتوى يجب أن يكون قابلاً للاكتشاف.
التقنيات المستخدمة
النهج الهندسي
بنية Flask المعيارية
هيكلت التطبيق بفصل واضح بين المسارات والنماذج ومنطق الأعمال باستخدام Flask blueprints للنمو القابل للصيانة.
التصميم الأمان أولاً
نفّذت مصادقة آمنة مع تشفير كلمة المرور وإدارة الجلسة وحماية CSRF قبل إضافة أي ميزات.
نمذجة البيانات العلائقية
صمّمت مخطط قاعدة بيانات معياري مع SQLAlchemy ORM للتعامل مع المستخدمين والمنشورات والتعليقات والإعجابات والوسوم مع العلاقات الصحيحة.
MVP متكامل الميزات
بنيت جميع ميزات التدوين الأساسية (الإعجابات والتعليقات والمنشورات المحفوظة واكتشاف الوسوم) لإنشاء منصة جاهزة للإنتاج من البداية.
القرارات التقنية الرئيسية
الخيارات التي شكّلت الهندسة وحددت قابلية الصيانة على المدى البعيد.
Flask بدلاً من Django
اختيار Flask لمرونته وطبيعته الصريحة
احتجت إلى سيطرة كاملة على قرارات الهندسة دون أن تعترض بنية Django الرأيية
SQLAlchemy ORM
استخدام SQLAlchemy للتفاعلات مع قاعدة البيانات بدلاً من SQL الخام
وفّر سلامة النوع وإدارة العلاقات ودعم الترحيل مع الحفاظ على الاستعلامات قابلة للصيانة
معالجة الصور من جانب الخادم
معالجة تحميلات الصور من جانب الخادم
ضمان جودة الصور المتسقة والتحقق من الملفات والأمان قبل التخزين في قاعدة البيانات
المصادقة القائمة على الجلسة
استخدام جلسات Flask للمصادقة بدلاً من JWT
أبسط للتنفيذ بأمان لتطبيق ويب تقليدي مع عرض من جانب الخادم
التحديات والحلول
إدارة علاقات many-to-many المعقدة بين المستخدمين والمنشورات والإعجابات والعناصر المحفوظة بكفاءة
صمّمت جداول تقاطع معيارية مع فهارس مناسبة واستخدمت استراتيجيات تحميل علاقات SQLAlchemy لتحسين الاستعلامات
منع الإعجابات المكررة وضمان تكامل البيانات عبر الطلبات المتزامنة
نفّذت قيود فريدة على مستوى قاعدة البيانات واستخدمت المعاملات للتعامل مع ظروف السباق بشكل صحيح
أحجام تحميل الصور كانت تؤثر على أداء تحميل الصفحة
أضفت ضغط الصور من جانب الخادم وتغيير الحجم مع Pillow لتوحيد الأبعاد وأحجام الملفات قبل التخزين
النتائج والأثر
أُطلق Blogsy كمنصة تدوين متكاملة الميزات مع دعم قوي متعدد المستخدمين ومصادقة آمنة وجميع الميزات الاجتماعية المتوقعة تعمل بموثوقية.
الدروس المستفادة
الفصل النظيف للمهام في تطبيقات Flask يؤتي ثماره فوراً. عندما تُعزل المسارات والنماذج ومنطق الأعمال بشكل صحيح، تصبح إضافة الميزات متوقعة.
