27

كيف نبني #1: كيف نبني تويتر؟

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

اليوم فكرت بأن نبدأ بتويتر:

  • ماهي لغات البرمجة المناسبة؟

  • قواعد البيانات؟

  • هل سيكون هناك أكثر لغة برمجة مستخدمة؟

  • كيف سيتم خزن البيانات؟

بالطبع توجد بعض المحاضرات التي تتحدث عن تويتر وكيف تم بناؤه ولكن الفكرة ليس تقليدهم بل إقتراح حلول مناسبة شبيهة أو بديلة مع شرح الأسباب.


التعليق السابق

العمل على الـ Back-end كـ web API يلزم بشكل أو بآخر تطوير الـ Front-end كموديولز بشكل منفصل (تقريبا). بعبارة أخرى، استخدام فريموورك جافاسكريبت (MV*) أمر لا مفر منه. وعند التطوير، و بحكم أننا نتعامل مع وظائف الموقع كـ API، فالإستعانة بفريموورك للـ Front-end سيمكننا من التوسع لاحقا و بنية التطبيق ككل ستكون مستجيبة لهذا التوسع دون مشكلة (Scalable Architecture).

الإعتماد على jQuery فقط لا يجدي، فحتى عمليات بسيطة كـ Dom Manipulation سينتج عنها آلاف من الأسطر و الدوال المرتبطة بينها، أما عند القيام باتصالات غير متزامنة مع السيرفر أو مع أي واجهة تطبيق أخرى فبسرعة سيتحول الكود لما يسمى الـ Callback Hell.

مسألة أخرى لا تقل أهمية عن ما تم ذكره، هو بنية الـ API التي سيتم استخدامها للربط بين الـ Back-end و الـ Front-end و مع تطبيق الموبايل (الذي يجب أن تتم برمجته بطبيعة الحال)، يجب أن تكون مصممة بشكل يسهل التعامل معها و يسهل تطويرها دون مشاكل..

أنصح من يهتم بتصميم الـ Backend APIs ومطوري المواقع بصفة عامة أن يشاهد هذا الفيديو حول تصميم RESTful API سهلة و منظمة و قابلة للتوسع بشكل مميز:

ملاحظة: ما هو أفضل تعريب لـ Scalable Architecture؟ المرجو الإفادة :)