القاعدة البرمجية 'ادفع if للأعلى و for للأسفل' تقترح أن المنطق الشرطي (عبارات if) يجب أن يُنقل للأعلى نحو المتصل، بينما يجب دفع الحلقات التكرارية (for) للأسفل نحو المعالجة بالدفعات. هذا يحسن الوضوح والأداء من خلال تركيز التفرع والاستفادة من العمليات الجماعية.
ناقش Matklad هذا المبدأ، موضحًا أن دفع الشروط للأعلى يعني أن المتصل يتعامل مع حالات مثل None، بينما تأخذ الدالة Walrus عاديًا. دفع الحلقات للأسفل يتضمن تأجيل الحلقات حتى بعد التصفية، بحيث تعمل الحلقة الساخنة بدون فرع وتكون مرشحة للتوجيه المتجهي. الحركتان تتحدان: بالنظر إلى مجموعة من قيم Option<Walrus>، يتجاهل المتصل قيم None ويسلم Vec<Walrus> إلى frobnicate_batch، التي لا ترى None أبدًا.
لهذا المبدأ تطبيقات أوسع في تحسين استعلامات قواعد البيانات العلائقية والبرمجة الوظيفية. في تحسين استعلامات قواعد البيانات، يظهر نفس المبدأ كـ 'الإسقاطات مبكرًا، والانضمامات متأخرًا'. الإسقاطات والاختيارات المبكرة تقلل عرض مجموعة البيانات وتصفية مبكرًا، بينما يتم تأجيل الانضمامات للعمل على مدخلات أصغر. المفردات مقلوبة: خطة الاستعلام هي شجرة حيث تتدفق البيانات من الأوراق، لذا 'أسفل الشجرة' يعني 'في وقت سابق من التنفيذ'.
المصدر: Hacker News · لخّصه HeadlinesBriefing