Code Verse
159 subscribers
84 photos
29 files
4 links
Download Telegram
می‌دونی توی Django تراکنش‌ها چطور مدیریت می‌شن و چه وقت باید سراغ atomic رفت؟ ⚡️💾

جنگو برای حفظ یکپارچگی داده‌ها از سیستم transaction پایگاه‌داده استفاده می‌کنه. این مکانیزم باعث می‌شه مجموعه‌ای از عملیات یا همه با هم انجام بشن یا هیچ‌کدوم. وقتی می‌خوای چند query رو تضمین کنی که یا کامل موفق بشن یا در صورت خطا همه برگردن، باید از atomic() استفاده کنی.

🌌 @the_code_Verse 🪐
4
‏8. چگونه Method Resolution Order (MRO) در چند ارث‌بری پیچیده محاسبه می‌شود؟ یک مثال با ۳ کلاس بده که super() غیرمنتظره عمل کند.

#question #python

🌌 @the_code_Verse 🪐
2👎1
تا حالا برات پیش اومده که توی چندارث‌بری پایتون، super() رفتارش عجیب بشه؟ 🌀🐍

در پایتون وقتی از چند ارث‌بری استفاده می‌کنیم، ترتیب جستجوی متدها با الگوریتمی به اسم MRO (Method Resolution Order) مشخص می‌شه. این ترتیب همیشه خطی و مشخصه، ولی توی ساختارهای پیچیده ممکنه super() رفتاری غیرمنتظره نشون بده؛ مثلاً وقتی سه کلاس درگیر زنجیره ارث‌بری هستن و متدی از یکی از اون‌ها به شکل غیرمستقیم صدا زده می‌شه.


🌌 @the_code_Verse 🪐
1
8. چگونه می‌توان از query annotation برای افزودن فیلدهای محاسباتی در QuerySet استفاده کرد؟

#question #django

🌌 @the_code_Verse 🪐
👎1
تا حالا خواستی توی Django یه فیلد محاسباتی به QuerySet اضافه کنی بدون اینکه توی دیتابیس ذخیره بشه؟ ⚡️

جنگو قابلیتی داره به اسم query annotation که به ما اجازه می‌ده موقع ساخت QuerySet، ستون‌های محاسباتی مثل جمع، میانگین یا شرط‌های خاص رو به نتایج اضافه کنیم؛ بدون اینکه این فیلدها واقعاً در جدول پایگاه‌داده وجود داشته باشن. این کار ابزار قدرتمندی برای گزارش‌گیری و پردازش داده‌هاست.

🌌 @the_code_Verse 🪐
👎21
‏9. یک generator بساز که مقدار بگیرد (send) و وقتی عدد منفی فرستاده شد، exception پرتاب کند و ادامه دهد.

#question #python

🌌 @the_code_Verse 🪐
4👎1
چطور میشه یک generator ساخت که هم مقدار بگیره هم خطا مدیریت کنه؟ 😎

میخوایم یک generator بنویسیم که با send() مقدار دریافت کنه، و وقتی عدد منفی فرستاده شد، یک Exception پرتاب کنه ولی جریان ادامه پیدا کنه. این یعنی generator میتونه همزمان ورودی بگیره و خطاها رو کنترل کنه بدون اینکه متوقف بشه.

🌌 @the_code_Verse 🪐
2👍1👎1
9. فرق بین lazy evaluation و eager evaluation در Django QuerySets چیست و چه زمانی مشکل ایجاد می‌کند؟

#question #django

🌌 @the_code_Verse 🪐
👎1🔥1
همیشه همه‌چیز همون لحظه اجرا نمی‌شه… گاهی «تنبل بودن» بیشتر به کار میاد تا «عجله داشتن»

تفاوت اصلی بین lazy evaluation و eager evaluation توی QuerySetهای جنگو اینه که QuerySet تا وقتی واقعا نیاز نباشه، اجرا نمی‌شه (lazy). ولی بعضی متدها باعث می‌شن همون لحظه کوئری به دیتابیس زده بشه (eager). این تفاوت اگه درست مدیریت نشه، می‌تونه باعث کوئری‌های اضافی یا عملکرد غیرمنتظره بشه.

🌌 @the_code_Verse 🪐
1👎1👏1