تطبيقكم بطيء عند زبائنكم في الجزائر؟ ما يُبنى سنة 2027 ليكون سريعاً على شبكة ضعيفة: وزن الشاشات، الذاكرة المخبأة، التصفيح، الفهارس، والقياس عند مستعمليكم الحقيقيين

«عندي يعمل، وعند الزبون يزحف.» هذه الجملة نسمعها في أول لقاء عن كل التطبيقات التي نستلمها تقريباً، وهي صحيحة من الجانبين: اختُبر التطبيق على هاتف المطوّر، على الواي فاي، في الجزائر العاصمة، ويُستعمل على Android من 2019، بـ 3G، في سطيف. يصف هذا الدليل ما يجعل التطبيق بطيئاً، وما يُبنى ليكون سريعاً عند من يستعملونه فعلاً، وكيف نثبت ذلك: ميزانية أداء تُكتب قبل الكود، شاشات خفيفة، صور بحجم الشاشة، استدعاء واجهة واحد مجمَّع ومُصفَّح، فهارس، ذاكرة مخبأة، وقياس عند المئين 75 عند مستعمليكم.

Symloop13 دقيقة قراءة
«عندي يعمل، وعند الزبون يزحف»لماذا يكون التطبيق بطيئاً على هواتف زبائنكم وشبكاتهم، وما يُبنى ليكون سريعاً: ميزانية أداء تُكتب قبل الكود، شاشات خفيفة، صور بحجم الشاشة، استدعاء واجهة واحد مجمَّع ومُصفَّح، فهارس، ذاكرة مخبأة، وقياس عند المئين 75 على مستعمليكم الحقيقيينالأداء · شبكة ضعيفة · تطبيق · 2027«عندي يعمل،وعند الزبونيزحف»لماذا يكون التطبيق بطيئاً على هواتف زبائنكم وشبكاتهم، ومايُبنى ليكون سريعاً: ميزانية أداء تُكتب قبل الكود، شاشات خفيفة،مختبَر على هاتف المطوّرعلى الواي فاي، في الجزائر العاصمةمقيس عند زبائنكمAndroid من 2019، 3G، المئين 75symloop.com

الجواب القصير. التطبيق بطيء لخمسة أسباب تُحل في الكود وسبب واحد يُحل في الاستضافة. الخمسة: شاشات تحمّل كل الكود وصوراً أصلية بـ 4 م.ب؛ قوائم بلا تصفيح؛ طلب لكل سطر بدل استدعاء مجمَّع؛ بحث بلا فهارس؛ وكل شيء يُعاد تحميله عند كل فتح لغياب ذاكرة مخبأة. وما يُبنى: ميزانية لكل شاشة تُكتب قبل الكود، خمسمئة كيلوبايت، ثلاثة طلبات، محتوى رئيسي يُعرض في 2,5 ثانية على Android من 2019 بـ 3G محاكاة؛ صور تُصغَّر وتُحوَّل عند الرفع؛ استدعاء واجهة واحد لكل شاشة، مُصفَّح، مضغوط، مخبأ؛ فهارس على ما يُبحث ويُرتَّب؛ وقياس عند المئين 75 عند المستعملين الحقيقيين، لكل شاشة وشبكة، تفحصه سلسلة التسليم. ستة أسابيع، الأول بلا سطر كود.

هذا الدليل موجّه إلى المسيّر الذي ينتظر بائعوه أمام الشاشة، وإلى المؤسس المقيم في فرنسا الذي لا يرى التطبيق إلا من الألياف، وإلى المسؤول الذي يجب أن يقارن عرض «تحسين» بآخر. لا يعيد أين توضع الخوادم، الموصوف في دليل الاستضافة، ولا كيف يعمل تطبيق دون شبكة، الموصوف في دليل المزامنة؛ بل يصف ما يُبنى ليكون سريعاً حين توجد شبكة ولو رديئة، ويمدّ صفحتنا عن هندسة البرمجيات.

ما تقوله الأرقام

لعتبات السرعة تعريف علني، وهو صارم. المؤشرات التي تستعملها Google للحكم على صفحة، Core Web Vitals، تضع ثلاث عتبات «جيدة»: المحتوى الرئيسي يُعرض «خلال 2,5 ثانية» من بداية التحميل، ورد على الحركات بـ «200 ميلي ثانية أو أقل»، وانزياح بصري «0,1 أو أقل»؛ وتطلب قياس «المئين 75 من تحميلات الصفحة، مفصولاً بين الهاتف والحاسوب». وما يفرضه ذلك: لا نقيس متوسطاً يخفي ربع المستعملين الأسوأ خدمة، بل النقطة التي يقع تحتها ثلاثة زبائن من أربعة؛ ونقيسها على الهاتف منفصلة.

الصور البند الأول، والمكسب موثَّق. تذكر Google أن صورة WebP بفقدان «أصغر بـ 25 إلى 34 % من صورة JPEG مماثلة» بجودة متساوية، وبلا فقدان «أصغر بـ 26 %» من PNG؛ لكن المكسب الذي يهم فعلاً يأتي قبل الصيغة: صورة ملتقطة بالهاتف تزن عدة ميغابايتات وتُعرض في مربع 300 بكسل، وتصغيرها إلى هذا الحجم يقسم وزنها على عشرة أو أكثر قبل أي تحويل. وما يفرضه ذلك: تُصغَّر الصور وتُحوَّل عند الرفع، في الخادم، بعدة أحجام، والشاشة تطلب الحجم الذي تعرضه.

شبكة زبائنكم ليست شبكة المطوّر، والأرقام العلنية لن تقول لكم أيها هي. الوسيطات المنشورة لسرعة الهاتف في الجزائر تتباين كثيراً حسب المصدر والفترة، نحو أربعين إلى سبعين ميغابت في الثانية في تقارير 2025 و2026 المستندة إلى قياسات Speedtest؛ ولا نعتمد أياً منها، لأن وسيطاً وطنياً لا يقول شيئاً عن البائع في المخزن الخلفي بـ 3G ولا عن الزبون في قبو. وما يفرضه ذلك: تُجمع الأزمنة الحقيقية عند مستعمليكم حسب نوع الشبكة والولاية، ونبني للمئين 75 مما قسناه لا للمتوسط الوطني. وما لم نجده: دراسة علنية للهواتف المستعملة فعلاً في الجزائر حسب سنة الصنع؛ وما نراه في سجلات مشاريعنا هو هواتف من 2019 ما زالت، ونقولها ملاحظةً.

01

الشاشة نفسها، على شبكة ضعيفة، قبل وبعد

السرعة لا تُفهم على مبدأ بل على شاشة حقيقية تُحمَّل مرتين على الشبكة نفسها.

الشكل 1 · الشاشة نفسها، الشبكة نفسها، بناءان. قبل، يُحمَّل كل شيء بالترتيب الذي يطلبه الكود: ثلاثة سكريبتات، اثنتا عشرة صورة أصلية، ستة استدعاءات واجهة متتالية؛ وبعد، كود هذه الشاشة فقط، أربع صور بحجم الشاشة، استدعاء مجمَّع واحد، والذاكرة المخبأة في الفتح الثاني. والأرقام مثال مبني من حالات حقيقية؛ أما الرتب فهي التي نقيسها.

قبل. صفحة HTML تزن 180 ك.ب وتستغرق أكثر من ثانية. ثلاثة سكريبتات بـ 1,4 م.ب، كل كود التطبيق بينما الشاشة لا تستعمل إلا جزءاً منه، تأخذ ثلاث ثوانٍ ونصف إضافية. اثنتا عشرة صورة تصل كما أرسلها الهاتف الذي التقطها، 3,2 م.ب، وتشغل الشبكة سبع ثوانٍ. ثم الواجهة: استدعاء أول يعيد كل طلبيات السنة، 640 ك.ب، وخمسة استدعاءات أخرى تتبعه واحداً بعد الآخر للزبائن والمنتجات والحالات، لأن الكود يجري واحداً لكل نوع معلومة. الشاشة قابلة للاستعمال عند 9,8 ثوانٍ، والبائع ضغط مرتين أخريين.

بعد. القائمة نفسها، الشبكة نفسها. صفحة HTML تزن 40 ك.ب. سكريبت واحد، سكريبت هذه الشاشة، 220 ك.ب، وباقي التطبيق يُحمَّل لاحقاً عند الحاجة. أربع صور، المرئية، مصغَّرة إلى حجم العرض ومحوَّلة، 280 ك.ب؛ والتالية تأتي عند التمرير. استدعاء واجهة واحد، مجمَّع، مُصفَّح على خمسين سطراً، مضغوط، 38 ك.ب، يعيد الصفحة بزبائنها ومنتجاتها. الشاشة قابلة للاستعمال عند 1,9 ثانية، وفي الفتح الثاني تخدم الذاكرة المخبأة الصفحة بلا شبكة. والأرقام مثال مبني من حالات حقيقية؛ أما الرتبة، أسرع خمس مرات دون تغيير الخادم، فهي التي نقيسها.

«أسرع خمس مرات دون تغيير الخادم: هذه الرتبة التي نقيسها حين تنتقل الشاشة من عشرين استدعاءً إلى واحد.»
02

ستة أسباب بطء نجدها دائماً تقريباً

ستة أسباب بطء تتكرر في كل التطبيقات التي نستلمها تقريباً، ولكل منها بناء يحله.

الشكل 2 · خمسة من أسباب البطء الستة تُحل في الكود لا في الاستضافة؛ والسادس لا يأتي إلا بعدها. وترتيب العمود الأيسر هو ترتيب المكاسب أيضاً: الميزانية والصور أولاً، ثم التصفيح والتجميع، ثم الفهارس والذاكرة المخبأة.

شاشة 5 م.ب: كل الكود يُحمَّل دفعة واحدة وصور أصلية؛ ميزانية لكل شاشة، كود مقسَّم، صور تُصغَّر وتُحوَّل عند الرفع. قائمة 2 000 سطر: كل طلبيات السنة في استدعاء، ثم الشاشة تتجمد وهي ترسمها؛ تصفيح في الخادم على خمسين سطراً، ترتيب وتصفية في الاستعلام، تمرير يحمّل التالي. طلب لكل سطر: لكل طلبية استدعاء للزبون وآخر للمنتج، مئتا استدعاء لصفحة؛ استدعاء مجمَّع واحد، وفي القاعدة ربط لا حلقة؛ وهو البطء الأكثر تكراراً والأكثر خفاءً على واي فاي المطوّر.

بحث بلا فهرس: البحث عن زبون بالهاتف يمسح الجدول كله، أربع ثوانٍ عند مئة ألف سطر وأسوأ كل شهر؛ فهارس على الأعمدة المبحوثة والمرتَّبة، خطة تنفيذ تُقرأ قبل الإنتاج، عتبة 300 م.ث عند المئين 75؛ وللبحث في كتالوج قواعده الخاصة الموصوفة في دليل البحث. كل شيء يُعاد تحميله عند كل فتح: الكتالوج والصور والإعدادات تبدأ من الصفر؛ ذاكرة HTTP مخبأة بتحقق، ذاكرة محلية للبيانات المستقرة، شبكة فقط لما تغيّر. الخادم البعيد البطيء: هو البطء الوحيد الذي يُحل في الاستضافة، وبعد الخمسة الأخرى فقط، لأن شاشة تجري عشرين استدعاءً بطيئة حتى على أفضل خادم.

03

سرعة التطبيق، في خمس طبقات

خلف أسباب البطء الستة خمس طبقات، والطبقة التي نربح فيها أكثر ليست التي يُظن.

الشكل 3 · الطبقة المميزة هي التي نربح فيها أكثر: شاشة تجري استدعاءً واحداً بدل عشرين سريعة حتى على خادم متوسط، وشاشة تجري عشرين بطيئة حتى على الأفضل. والطبقة الخامسة هي التي تحوّل الشكوى إلى رقم.

الهاتف والشبكة: Android من 2019، 3G أو واي فاي مشترك، بطارية في وضع التوفير؛ لا تغيّرونها، تبنون لها وتختبرون عليها. الشاشة: كود هذه الشاشة فقط، صور بحجم العرض، رسم يُظهر شيئاً قبل استلام كل شيء؛ لكل شاشة ميزانيتها. الواجهة: استدعاء مجمَّع واحد لكل شاشة، تصفيح، ضغط، ترويسات ذاكرة مخبأة، زمن رد مقيس عند المئين 75؛ وهي الطبقة التي نربح فيها أكثر، بحذف الاستدعاءات لا بتسريعها.

قاعدة البيانات: فهارس على ما يُبحث ويُرتَّب، روابط بدل الحلقات، خطة تنفيذ مقروءة، استعلامات بطيئة مسجَّلة؛ وجدول يكبر كل شهر يُظهر ما لم يكن مرئياً عند الإطلاق، ولهذا يستمر القياس بعد الإنتاج. القياس: أزمنة حقيقية تُجمع من المستعملين، لكل شاشة ونوع شبكة وولاية، عند المئين 75، وميزانية تُفحص عند كل تسليم، على شاشة تُبنى مثل لوحة قيادة المسيّر؛ وبدونه «يزحف» و«يعمل» رأيان، والنقاش مع مقدّم الخدمة لا ينتهي أبداً.

04

ميزانية الأداء، تُكتب قبل الكود

الميزانية هي القطعة التي تغيّر كل شيء: ستة أرقام لكل شاشة، تُكتب قبل أول سطر وتُفحص عند كل تسليم.

الشكل 4 · الميزانية هي القطعة التي تغيّر كل شيء: ستة أرقام تُكتب قبل الكود، تُقاس على هاتف قديم وشبكة محاكاة، وتفحصها سلسلة التسليم. هنا يتجاوز شريط، فيُرفض التسليم حتى تُصغَّر الصور. والقيم مثال؛ أما عتبتا المحتوى الرئيسي 2,5 ث والواجهة 300 م.ث عند المئين 75 فهما ما نكتبه افتراضياً.

ستة قياسات لشاشة «قائمة الطلبيات»، على Android من 2019 بـ 3G محاكاة: وزن الشاشة الأولى، HTML وسكريبتات وصور مرئية مضغوطة، 500 ك.ب؛ الصور المرئية، 200 ك.ب؛ السكريبتات قبل العرض، 250 ك.ب؛ الطلبات قبل العرض، ثلاثة؛ زمن رد الواجهة عند المئين 75، 300 م.ث؛ وعرض المحتوى الرئيسي، 2,5 ثانية، العتبة العلنية. وفي الرسم يتجاوز شريط: الصور تزن 280 ك.ب لأن صورة منتج ما زالت تصل بحجمها الأصلي؛ يُرفض التسليم، ويُظهر العرض التالي التصحيح.

ثلاث قواعد تحمل الميزانية. تُكتب لكل شاشة لا للتطبيق، لأن الصندوق مسألة مئات الميلي ثانية لكل حركة والخريطة مسألة ثوانٍ. وتُقاس على هاتف زبائنكم وشبكتهم لا على هاتف المطوّر. وتعيش في مستودع الكود، تفحصها سلسلة التسليم عند كل نسخة، لا في وثيقة تُقرأ مرة: وهذا ما يمنع السرعة من الذهاب مع النسخة التالية، كما يصف دليل التسليم للاختبارات. وقيم الرسم مثال؛ أما عتبتا 2,5 ثانية و300 م.ث فهما ما نكتبه افتراضياً.

«بلا قياس عند المستعملين الحقيقيين، «يزحف» و«يعمل» رأيان، والنقاش لا ينتهي أبداً.»
05

ست شاشات، والميزانية التي نكتبها لكل منها

ميزانية لكل شاشة، لأن ست شاشات لا تحمل السرعة نفسها.

الشكل 5 · ميزانية لكل شاشة لا للتطبيق: الصندوق مسألة مئات الميلي ثانية لكل حركة، والخريطة مسألة ثوانٍ، والقائمة مسألة كيلوبايتات. وكل سطر يُكتب في دفتر الشروط ويُقاس عند كل عرض.

قائمة الطلبيات: خمسون سطراً بالزبون والمبلغ والحالة؛ 500 ك.ب، ثلاثة طلبات، 2,5 ثانية، واجهة عند 300 م.ث. بطاقة المنتج بصور: 600 ك.ب منها 300 ك.ب صور مرئية، والتالية عند التمرير؛ وهي شاشة بوابة B2B التي يفتحها تجار التجزئة أكثر. البحث في الكتالوج: نتائج أثناء الكتابة على عشرة آلاف مرجع، 200 م.ث لكل ضغطة عند المئين 75، فهرس بحث ولا مسح جدول أبداً. لوحة قيادة المسيّر: ستة أرقام لكل وكالة في طلب واحد على مجاميع محسوبة سلفاً، 1,5 ثانية، تُحدَّث كل ستين ثانية لا عند كل حركة.

الصندوق في المحل: 100 م.ث لكل حركة، كتالوج في ذاكرة محلية، ويعمل دون شبكة كما يشترط دليل الصندوق. خريطة التوصيل: مئتا نقطة مجمَّعة، بلاطات خريطة مخبأة، ثانيتان، تحديث بالأحداث لا بإعادة التحميل وفق دليل منصة التوصيل. وكل سطر يُكتب في دفتر الشروط ويُقاس عند كل عرض؛ وشاشة بلا ميزانية شاشة لن يستطيع أحد القول إنها بطيئة.

06

رأيناه في مكان آخر: العتبات العلنية، وما ينتقل

مصدران يقولان الجوهر. تقول Core Web Vitals إن الصفحة جيدة حين يُعرض المحتوى الرئيسي في 2,5 ثانية وترد في 200 م.ث ولا تتحرك، مقيسة عند المئين 75 على الهاتف؛ وما ينتقل هو المئين وفصل الهاتف، لا العتبات وحدها، لأن المتوسط يخفي ربع زبائنكم. وتقول وثائق Google عن WebP مكسباً من 25 إلى 34 % على JPEG؛ وما ينتقل هو أن الصيغة تأتي بعد الحجم، وأن الاثنين يتمان عند الرفع في الخادم مرة واحدة.

وما لا تقوله هذه المصادر: أي الهواتف والشبكات يملك زبائنكم، وأي شاشة بطيئة فعلاً؛ والأسبوع الأول من المشروع يجيب، بلا سطر كود، بجمع الأزمنة الحقيقية عند مستعمليكم.

07

قواعد تطبيق سريع عند زبائنكم

ست قواعد تُكتب في الأسبوع الأول. ميزانية لكل شاشة تُكتب قبل الكود. مقيسة على هاتف زبائنكم وشبكتهم لا المطوّر، عند المئين 75. الصور تُصغَّر وتُحوَّل عند الرفع، والشاشة تطلب الحجم الذي تعرضه. استدعاء واجهة واحد لكل شاشة، مجمَّع، مُصفَّح، مضغوط، مخبأ. فهارس على ما يُبحث ويُرتَّب، والاستعلامات البطيئة مسجَّلة. الميزانية تعيش في سلسلة التسليم، والنسخة التي تتجاوزها لا تخرج.

قاعدة سابعة تخص عرض السعر: «تحسين الأداء» ليس متطلباً بل جملة؛ المتطلب يُكتب «ميزانية لكل شاشة بالوزن والطلبات والمحتوى الرئيسي في 2,5 ث والواجهة في 300 م.ث عند المئين 75؛ قياس عند المستعملين الحقيقيين لكل شاشة وشبكة وولاية؛ صور تُصغَّر وتُحوَّل عند الرفع بعدة أحجام؛ كود مقسَّم لكل شاشة؛ تصفيح في الخادم؛ استدعاء مجمَّع واحد لكل شاشة، لا طلب لكل سطر؛ فهارس وخطة تنفيذ؛ ذاكرة HTTP ومحلية؛ اختبارات على Android من 2019 بـ 3G محاكاة؛ ميزانية تفحصها سلسلة التسليم»، ويُتحقَّق منه كما يوصي دليل دفتر الشروط. وعرض السعر الذي يقترح «خادماً أقوى» في سطره الأول اقترح البطء السادس قبل الخمسة الأخرى.

08

ستة تطبيقات، والشاشة التي كانت تبطئها

ستة تطبيقات استلمناها أو بنيناها، ولكل منها الشاشة التي كانت بطيئة وما حلها.

  • تطبيق المندوبين الميدانيين، الموصوف في الدليل المخصص. بطاقة الزبون كانت تحمّل تاريخ الطلبيات كاملاً؛ تصفيح ومجاميع، ولم تعد جولة الصباح تبدأ بانتظار.
  • بوابة الطلب B2B، الموصوفة في الدليل المخصص. الكتالوج كان يرسل صور الموردين الأصلية؛ مصغَّرة عند الرفع، ينتقل الكتالوج من 11 م.ب إلى 600 ك.ب.
  • الصندوق، الموصوف في الدليل المخصص. كل سلعة مضافة كانت تجري استدعاءً للخادم؛ كتالوج في ذاكرة محلية، 100 م.ث لكل حركة، واختفى الطابور عند الكاونتر.
  • لوحة القيادة، الموصوفة في الدليل المخصص. ستة أرقام تُعاد حسابها على الجدول كله عند كل فتح؛ مجاميع محسوبة سلفاً، طلب واحد، 1,5 ثانية.
  • التطبيق المستلَم من مقدّم خدمة اختفى، الموصوف في الدليل المخصص. مئتا طلب لكل صفحة دون أن يعرف أحد؛ أسبوع القياس الأول أظهره، والثالث حله.
  • المتجر المُدار من فرنسا، الموصوف في الدليل المخصص. كان المؤسس يرى تطبيقاً سريعاً من الألياف؛ ولوحة المئين 75 لكل ولاية أرته ما يراه بائعوه.
09

تقويم 2027

التقويم تقويم تطبيق يُجعل سريعاً في ستة أسابيع، الأول بلا سطر كود.

الشكل 6 · ستة أسابيع، الأول بلا سطر كود: نقيس أولاً، لأن الشاشة البطيئة لا تكاد تكون التي نظنها. وتأتي الشاشات قبل الواجهة والقاعدة لأن المكاسب هناك أكبر؛ وتدخل الميزانية سلسلة التسليم كي لا تذهب السرعة مع النسخة المقبلة.

الأسبوع 0 إلى 1 يقيس عند المستعملين الحقيقيين: أزمنة حقيقية لكل شاشة وشبكة وولاية، هواتف موجودة فعلاً في السجلات، وميزانية تُكتب لكل شاشة؛ والشاشة البطيئة لا تكاد تكون التي ظُنت. الأسبوع 1 إلى 2 يعالج الشاشات: كود مقسَّم، صور تُصغَّر وتُحوَّل عند الرفع، المرئي يُحمَّل أولاً؛ وهناك المكاسب الأكبر. الأسبوع 2 إلى 3 يعالج الواجهة: استدعاء مجمَّع واحد لكل شاشة، تصفيح، ضغط، ترويسات ذاكرة مخبأة، الاستدعاءات الزائدة تُحذف. الأسبوع 3 إلى 4 يعالج القاعدة: فهارس، روابط، استعلامات بطيئة تُسجَّل وتُصحَّح.

الأسبوع 4 إلى 5 يقيس كل شاشة على Android من 2019 بـ 3G محاكاة ويحمّل الواجهة كيوم ذروة. الأسبوع 5 إلى 6 يُدخل الميزانية في سلسلة التسليم ويثبّت لوحة المئين 75 المقروءة كل أسبوع. وكل دفعة تُعرض كما يصف دليل التسليم؛ وحين يكون التطبيق محمولاً يُطبَّق الانضباط نفسه على كل نسخة وفق دليل التحديثات. وإن بقي الخادم بعد كل ذلك هو عنق الزجاجة، يقول دليل الاستضافة أين يوضع؛ وهي الخطوة السادسة لا الأولى.

10

ما يُفشل تطبيقاً سريعاً

التطبيقات البطيئة التي نستلمها بطيئة دائماً تقريباً لأحد هذه الأسباب.

  • مختبَر على هاتف المطوّر. حديث، على الواي فاي، في الجزائر العاصمة؛ والزبائن على Android من 2019، بـ 3G، في سطيف.
  • لا ميزانية. لا أحد يستطيع القول إن الشاشة بطيئة، فلا أحد يصلحها.
  • الصور الأصلية. أربعة ميغابايتات لمربع 300 بكسل، مضروبة في اثني عشر.
  • طلب لكل سطر. خفيّ على الواي فاي، مدمّر على 3G.
  • القائمة بلا تصفيح. سريعة عند الإطلاق، بطيئة في الشهر السادس، متجمدة في الثاني عشر.
  • خادم أكبر بدل الكود. الفاتورة ترتفع، والشاشة ما زالت تجري عشرين استدعاءً.
  • قياس مرة واحدة. النسخة التالية تخسر كل شيء، ولا أحد يراه قبل الزبائن.
11

أسئلة شائعة

الأسئلة التي نتلقاها من مسيّرين ومؤسسين ومسؤولي إعلام آلي.

لماذا التطبيق سريع عندنا وبطيء عند الزبائن؟
لأنه اختُبر على هاتف حديث بالواي فاي ويُستعمل على هواتف أقدم بـ 3G أو واي فاي مشترك. شاشة تجري عشرين استدعاءً وتحمّل خمسة ميغابايتات تمر دون أن تُلاحظ على الألياف وتأخذ عشر ثوانٍ على 3G. نبني ونقيس لهاتف زبائنكم وشبكتهم عند المئين 75، لا لهاتف المطوّر.
هل نحتاج خادماً أقوى؟
لا يكاد يكون أولاً أبداً. خمسة من أسباب البطء الستة تُحل في الكود: وزن الشاشات، الصور، التصفيح، الطلب لكل سطر، الفهارس، الذاكرة المخبأة. شاشة تجري استدعاءً واحداً بدل عشرين سريعة حتى على خادم متوسط. ويأتي الخادم سادساً بعد القياس، ويقول دليل الاستضافة حينها أين يوضع.
ما ميزانية الأداء؟
ستة أرقام لكل شاشة تُكتب قبل الكود وتُفحص عند كل تسليم: وزن الشاشة الأولى، الصور المرئية، السكريبتات قبل العرض، عدد الطلبات، زمن رد الواجهة عند المئين 75، وعرض المحتوى الرئيسي في 2,5 ثانية على Android من 2019 بـ 3G محاكاة. والنسخة التي تتجاوز إحدى هذه القيم لا تُسلَّم حتى تُصحَّح.
لماذا المئين 75 لا المتوسط؟
لأن المتوسط يخفي ربع المستعملين الأسوأ خدمة. المئين 75 هو الزمن الذي يقع تحته ثلاثة زبائن من أربعة؛ وهو النقطة التي تطلب عتبات Google العلنية قياسها منفصلة على الهاتف، وهو ما نكتبه في العقد.
كم نربح في الصور؟
المكسب الذي توثّقه Google لصيغة WebP من 25 إلى 34 % مقارنة بـ JPEG بجودة متساوية؛ لكن المكسب الذي يهم يأتي قبله: صورة الهاتف تزن عدة ميغابايتات وتُعرض في مربع 300 بكسل، وتصغيرها إلى هذا الحجم يقسم وزنها على عشرة أو أكثر. والاثنان يتمان عند الرفع في الخادم بعدة أحجام مرة واحدة.
كم من الوقت لجعل تطبيق سريعاً؟
ستة أسابيع: واحد للقياس عند المستعملين الحقيقيين وكتابة الميزانيات، واحد للشاشات، واحد للواجهة، واحد للقاعدة، واحد للقياس على هاتف قديم بـ 3G محاكاة وتحميل الواجهة، واحد لإدخال الميزانية في سلسلة التسليم. والأسبوع الأول بلا كود، وهو الذي يقرر ترتيب الخمسة الأخرى.
أرسلوا لنا الشاشة التي يشكو منها بائعوكم

مسيّر في الجزائر أو مؤسس في فرنسا: نجعل تطبيقكم سريعاً عند زبائنكم، على هواتفهم وشبكاتهم، ونثبت ذلك بالقياس

تبني Symloop وتستلم تطبيقات في الإنتاج للشركات في الجزائر والمؤسسين المقيمين في فرنسا: قياس عند المئين 75 عند المستعملين الحقيقيين، ميزانية لكل شاشة، صور تُصغَّر وتُحوَّل عند الرفع، كود مقسَّم، تصفيح، استدعاء مجمَّع لكل شاشة، فهارس وخطة تنفيذ، ذاكرة HTTP ومحلية، اختبارات على Android من 2019 بـ 3G محاكاة، ميزانية تفحصها سلسلة التسليم. الكود والقياسات في مستودعكم؛ وعرض كل أسبوعين.