هناك جزء من الكود يزعجني:
لا أستطيع لأجل حياتي أن أفهم لماذا يتم ضرب عدد المنشورات المنشورة خلال الفترة الزمنية في نسبة المنشورات المطلوبة قراءتها، ثم أخذها كقيمة دنيا. إذا كان القصد هنا هو نسبة المنشورات المقروءة، ألا يجب أن يكون عدد المنشورات المقروءة مقسومًا على عدد المنشورات، ثم مضروبًا في 100؟
نفترض أن هناك 9 منشورات في آخر x أيام، والإعداد يتطلب فقط 2، أليس من المفترض أن ترجع الطريقة ببساطة 2 لأنها أقل من الحد الأقصى للمنشورات؟
للتوضيح، إليك جميع القيم:
[2] pry(main)> TrustLevel3Requirements.num_posts_in_time_period.to_i
=> 9
[3] pry(main)> SiteSetting.tl3_requires_posts_read.to_f
=> 2.0
[4] pry(main)> (
[4] pry(main)> TrustLevel3Requirements.num_posts_in_time_period.to_i *
[4] pry(main)> (SiteSetting.tl3_requires_posts_read.to_f / 100.0)
[4] pry(main)> ).round
=> 0
[5] pry(main)> 9*0.02
=> 0.18
[6] pry(main)> SiteSetting.tl3_requires_posts_read_cap
=> 2000
هل أفهم القصد من الطريقة بشكل خاطئ؟ شكرًا.
mcwumbly
(Dave McClure)
2 أغسطس 2026، 1:58ص
2
إعداد الموقع tl3_requires_posts_read هو نسبة مئوية. لنفترض أنها 10. بينما يحافظ الحد الأقصى على أن تكون المتطلبات معقولة. لنفترض أنه 100.
“يجب على المستخدم قراءة 10% من جميع المنشورات في الفترة، ولكن ليس أكثر من 100 ”
لنفترض أن هناك 500 منشور تم إنشاؤها في تلك الفترة.
في هذه الحالة، سيستغرق الأمر قراءة 50 منشورًا لتلبية المتطلبات (10% من هذه المنشورات)
يتم إجراء الحسابات كـ 500 * (10.0/100.0) للحصول على النتيجة 50
الحد الأقصى يحدد حدًا علويًا.
إذا كان الحد الأقصى الخاص بك أكبر من 50 (قيل 100)، فلن يكون له أي تأثير.
[50, 100].min يعود 50
ولكن ماذا لو كان هناك 100,000 منشور في شهر واحد؟ في هذه الحالة، بدون الحد الأقصى، سيحتاج شخص ما إلى قراءة 10,000 منشور لتلبية المتطلبات.
الحد الأقصى 100 يحافظ على ذلك تحت السيطرة
[100000 * (10.0/100.0), 100].min يعود 100
هل هذا واضح؟
حسنًا، أعتقد أنني بحاجة إلى قراءة أوصاف الإعدادات بعناية أكبر في المرة القادمة. منطقي تمامًا، شكرًا لك!
mcwumbly
(Dave McClure)
2 أغسطس 2026، 2:16ص
4
نعم، يمكن القول إن tl3_requires_posts_read كان من الأفضل تسميته باسمًا مثل tl3_requires_percent_posts_read.