group-telegram.com/programmerskhan/154
Last Update:
من أهم الأشياء عند إنشاء أي مكتبة أو Script لمعالجة مجموعات ضخمة من البيانات هو الاحتفاظ بتقدّم المُعالجة وعدم تنفيذ نفس العملية أكثر من مرة على نفس المدخلات.
سابقا، كنت أكتب بعض الـ Scripts -إما لمعالجة البيانات أو جمعها من بعض المواقع وغيرها من الأمور- دون التدقيق على هذا الأمر، فعند حدوث أي خطأ أثناء التنفيذ، أجد أنني خسرت كل التقدّم الذي أحرزته، وقد يكون هذا التقدم أياما أو حتى أسابيع.
يمكن الاحتفاظ بالتقدّم في المعالجة بطريقتين:
- حفظ التقدّم صراحةً على ملف خارجي أو في قاعدة بيانات مستقلّة
- حفظ التقدّم ضمنيًّا من خلال التأكد من وجود المخرجات المُتوقّعة
من أمثلة النوع الأول مكتبة yt-dlp
، فهي تحتفظ بتقدّم تنزيل المقاطع من YouTube (أو غيره) في ملف TXT من خلال تمرير الاختيار download-archive--
للمكتبة عند تشغيلها.
ومن أمثلة النوع الثاني مكتبتَيْ تفريغ وتحويل، فهُما يتجاوزان أي ملف من ملفات المدخلات في حال وجود المخرجات المُتوقّعة منه.
من محاسن النوع الأول أنه لا يفترض أي افتراضات ويمكنك تعديل حالة التقدّم من خلال التعديل في مكان واحد، الملف أو قاعدة البيانات، ومن مساوئه أنك تحتاج للاحتفاظ بالمخرجات الحقيقية بجانب ملفات حالة التقدّم.
أما النوع الثاني فهو عكس الأول، فمن محاسنه أنك لا تحتاج للاحتفاظ بملفات حالة التقدّم، ولكنك تحتاج لحذف أجزاء من المخرجات الحقيقية في حال أردت معالجة جزء من البيانات مرة أخرى.
ختامًا، سواءً استخدمت الطريقة الأولى أو الثانية، فيجب عليك الاحتفاظ بحالة تقدّم معالجة البيانات التي تعمل عليها، لا تنسى هذا الأمر أبدا 😁
والسلام عليكم 👋🏻
BY خان المُبرمجين (علي فاضل)
Warning: Undefined variable $i in /var/www/group-telegram/post.php on line 260
Share with your friend now:
group-telegram.com/programmerskhan/154