تحسين الكود في عالم لا يريد التحسين
نشرت: 2019-11-22التحسين المبكر هو أصل كل الشرور.
إنه قول شائع بين المطورين. يبدو الأمر معقولا. قد يعني التحسين قبل الأوان إعادة العمل باستمرار ، والوقت هو المورد الأكثر محدودية للمطور. يمكن أن يعني قضاء هذا الوقت الثمين في تحسين السيناريوهات التي لم توجد بعد لمستخدمي المنتج. قد يعني ذلك كتابة رمز يصعب فهمه مع مكاسب أداء غير واضحة.
أثناء مشاركتي مع فريق مراجعة موضوع WordPress منذ حوالي عام ، صادفت مجموعة النصائح مرة أخرى. التحسين المبكر هو أصل كل الشرور. كان الرد على مؤلف موضوع كان يتطلع إلى تقليل عدد ووزن البرامج النصية التي يحتاج موضوعها لتحميلها. من ناحية أخرى ، يمكن لمؤلف النسق تحميل برنامج نصي بحجم 1.29 كيلو بايت بدون تبعيات لإنجاز المهمة. كان الخيار الآخر هو استخدام البرنامج النصي المعتمد على jQuery والمضمن في WordPress الأساسي بإجمالي 105 كيلو بايت لأن معظم مواقع WordPress تقوم بتحميل jQuery على أي حال.
بالنسبة لي ، كانت الإجابة بسيطة. استخدم البرنامج النصي الأصغر ما لم يتم تحميل النص الأساسي بالفعل على الواجهة الأمامية. لم أفكر في الأمر من حيث التحسين المبكر . فكرت في الأمر على أنه عملية تحسين يومية بسيطة ، عادية.
يجب على المطورين عدم الخلط بين التحسين المبكر ومفهوم اتخاذ قرارات التصميم الذكية في وقت مبكر من العملية. ولا ينبغي عليهم الانتظار حتى المرحلة الأخيرة من التطوير لبدء التحسين ، وهو الوقت الذي يكون فيه التركيز على إخراج المنتج إلى المستخدمين النهائيين. هذه علامة على ضعف عملية تصميم المنتج.
خلال العام الماضي ، علقت تلك المحادثة معي. لقد ساعدني ذلك في أن أصبح أكثر إدراكًا لاتجاه مرعب ، ليس فقط في مجتمع مطوري WordPress ، ولكن في تطوير الويب بشكل عام. في كثير من الأحيان ، يتم استبعاد المطورين حتى الآن من المستخدمين العاديين والتقنية التي يعتمد عليها هؤلاء المستخدمون في هذا التحسين ليست أكثر من مجرد فكرة لاحقة. بدلاً من ذلك ، يجب أن يكون دائمًا في طليعة عقل أي مطور.
ساعد الاعتماد المفرط على هذا الاقتباس الخاطئ في دفع اتجاه قياس وزن الصفحة بالميغابايت بدلاً من كيلوبايت. غالبًا ما يتم استخدامه كمبرر شامل لعدم القيام بأي تحسين في مرحلة التطوير أثناء تعويضه بضغط الملفات والتخزين المؤقت في الإنتاج.
جزء من كتابة كود الجودة هو تحسين هذا الرمز خلال كل مرحلة من مراحل عملية التطوير. يتعلق الأمر باتخاذ قرارات صعبة لقطع الأشياء غير الضرورية حيث يأتي البرنامج معًا. يجب أن يكون التخزين المؤقت هو الملاذ الأخير بعد تنظيف كل شيء آخر.
يتعلق التحسين السابق لأوانه بمحاولة التحسين في حالة عدم وجود مكاسب واضحة أو العمل على تحسينات دقيقة تغير تصميم البرنامج لتحقيق فائدة قليلة أو معدومة. هذا لا يعني التغاضي عن تعزيزات الأداء الواضحة أثناء التطوير.
لا يوجد كل شخص على إنترنت جيجابت
معظم المطورين الذين أعرفهم يستخدمون اتصالات إنترنت فائقة السرعة ، غالبًا بسرعات تنزيل تبلغ 1 جيجابت في الثانية وبيانات غير محدودة. في هذه الحالة ، من السهل أن ننسى أن أجزاء كبيرة من العالم لا تزال على اتصال بطيء مع حدود البيانات.
قد يربط البعض اتصالات بطيئة بدول العالم الثالث حيث يستخدم ملايين الأشخاص تقنية الهاتف الخلوي 2G. ومع ذلك ، هناك مساحات شاسعة من الولايات المتحدة والدول المتقدمة الأخرى التي ليس لديها خطوط كابل أو خطوط DSL مباشرة ، والتي تتوفر بشكل شائع في المدن والضواحي.

يتضح هذا الانفصال بشكل مباشر عندما بدأ مطورو آخرون محادثات معي. في العامين الماضيين ، كان من الشائع بشكل متزايد أن يطلبوا محادثة فيديو. لم يتم التساؤل حتى عما إذا كان مثل هذا الشيء ممكنًا (محادثات الفيديو لا يمكن الاعتماد عليها في أحسن الأحوال بالنسبة لي). تعتبر القدرة على الدردشة المرئية في أي وقت أمرا مفروغا منه.
هناك خياران لخدمة الإنترنت في المنطقة التي أعيش فيها: القمر الصناعي أو الاتصال الهاتفي. حتى شركة الهاتف المحلية ترفض تقديم DSL في هذا المجال بسبب تكاليف البنية التحتية مع خطوط الهاتف القديمة. نظرًا للتكاليف الباهظة للوصول إلى الإنترنت عبر الأقمار الصناعية ، والتي تأتي عادةً مع حدود للبيانات ، فإن العديد منهم عالقون في الاتصال الهاتفي. تقوم شركات الهواتف المحمولة بتغيير اللعبة إلى حد ما ، بافتراض أن الخدمة موثوقة ، ولكن هناك عيوب في السير في هذا الطريق ، والتي يمكن أن تشمل قيود البيانات أو النقاط الساخنة.
بالنسبة لمثل هذا البلد المتقدم من الناحية التكنولوجية ، فإن العديد من سكانها بالكاد يلحقون بما كان عليه الآخرون قبل عقد من الزمن.
بينما أنا محظوظ بما يكفي لاختيار المكان الذي أعيش فيه وليس لدي ما يمنعني من الحركة ، إلا أن معظمهم لا يملكون هذا الخيار. إنهم عالقون مع أفضل ما يمكنهم تحمله. حتى في المناطق الريفية ، يعد الإنترنت جزءًا لا مفر منه من الحياة اليومية ، ولا يقوم المطورون بتسهيل الأمر على هؤلاء الأشخاص.
في حين أن هذا مجرد قصص ، إلا أنه يمثل الواقع الصارخ للحياة الريفية في جيوب الولايات المتحدة.
إن الجانب الإيجابي للعيش في الغابات الخلفية في ألاباما هو أنه غير وجهة نظري كمطور. هذا يعني أنني بحاجة إلى التشكيك في كل قرار رمز لكل مكون إضافي وموضوع قمت بإنشائه. مع الحدود القصوى للبيانات ، كنت بحاجة للتأكد من أنني لا أستخدم الكثير من الموارد.
أكثر من أي شيء آخر ، أدى وجود حد أقصى إلى تغيير طريقة استخدامي للإنترنت. أنا الآن أدير مانع الإعلانات. لدي امتداد لقتل مقاطع الفيديو من التحميل التلقائي. أقوم بتعطيل JavaScript في المواقع الثقيلة التي أحتاج إلى استخدامها. تبدو بعض المواقع مثيرة للاهتمام ، لكنني لا أعود إليها أبدًا لأنها تستهلك الموارد.
عندما تعيش في مكان يكون فيه كل بايت مهمًا ، فإنك تميل إلى تجنب إهدارها.
على الرغم من عدم نجاحي دائمًا ، منذ انتقالي إلى حياة المدينة الصغيرة ، فقد حاولت إنشاء تطبيقات بطريقة تخدم الأشخاص الذين لا يتمتعون بالامتيازات الكافية للوصول إلى الإنترنت بسرعة فائقة.
تتعلق الإشارة إلى ذلك بالتأكد من إدراك المطورين لأهمية التحسين. إنه مهم في كل مرحلة من مراحل عملية التطوير. إنه أمر مهم لأن هؤلاء الأشخاص الذين لديهم اتصالات بطيئة وحدود بيانات محدودة يحتاجون أيضًا إلى شراء المنتجات واستخدام الخدمات وقراءة المحتوى والقيام بكل الأشياء الأخرى التي يقوم بها الأشخاص على الويب.
إذا كنت مطورًا يفكر في إضافة شريط التمرير أو آلية التمرير للجوال أو بعض الأدوات الذكية الأخرى ، ففكر في أولئك الذين يجب عليهم انتظار تحميل هذه الميزة. تحقق من أن تبعياتها لا يتم تحميل الكثير من الموارد الإضافية. قم ببعض الأبحاث لمعرفة ما إذا كان يمكنك تحديد موقع تطبيق أخف وزنًا. لكن ، أولاً ، اسأل نفسك إذا كان ذلك ضروريًا.
يجب ألا تكون السمات والإضافات التي ينشئها مطورو WordPress أبدًا عنق الزجاجة لموقع الويب. يمكننا أن نفعل ما هو أفضل.
