en
Feedback
TorhamDev | تورهام 😳

TorhamDev | تورهام 😳

Open in Telegram

زه گهواره تا گور، زور است زور

Show more
2 869
Subscribers
No data24 hours
+107 days
+6330 days
Posts Archive
کار ویدیو شانسی افتاد همونج که Gemini گفت شرمنده ایرانی هستید 🥰

قسمت دوم درک بهتر ORM جنگو https://youtu.be/zspbmH1Jf5I #درک_orm_جنگو @TorhamDevCH

زدم آپلود شه تا دقایقی دیگر

قسمت دوم دوره رو پختم. خیلی خوب هم پختم :)

فیچر جدید Vscode ✅ @TorhamDevCH
فیچر جدید Vscode ✅ @TorhamDevCH

واقعا باید wotlk حذف کنم از همچی عقب افتادم... #موقت الان یکسری ها لفت میدن 🥰

دوستان یک ساعتی ادیت زدم صدا رو تقویت کردم ولی نسخه اشتباهی اپلود کردم صداش کمه. زیاد کنید 🥰❤️

قسمت اول دوره درک بهتر orm جنگو https://youtu.be/LJkM7VG3foU #درک_orm_جنگو @TorhamDevCH

کار جادی طوری میزنم؛ پایان فعالیت

Repost from Sadra Codes
شهریار زحمت کشیده یه کتابخونه طراحی کرده واسه بنچمارک کردن مدل‌های LLM زبان فارسی! - دیتاست‌های فارسی - ارزیابی مدل‌ها در تسک‌های متنوع - مقایسه همزمان چند مدل - ایجاد ارزیابی‌های سفارشی اگه مثل من علاقه دارید یا این مورد مربوطه به حوزه کاریتون، حتما بررسیش کنید. جالبه. 🔗 https://github.com/shahriarshm/parsbench خود شهریار: https://x.com/shahriarshm

دوستان کسی نیست کاور بزنه؟ قسمت دوم(اول) هم رکورد کردم. خیلی وقته نزدم چیزی به مغزم نرسید

اینترو هم در این فاصله ظبط کردم مونده یک کاور بسیارخفن و مستربیست‌ای و اپلودش...

دارم یکدوره جدید میزنم به عنوان: شیرجه عمیق در ORM جنگو اسمش رو تصمیم نگرفتم ولی گرفتید ماجرا رو دیگه. دوره کوتاهی احتمالا ۴ قسمتی که CRUD توضیح بدم و اینکه چطور بهتر از orm استفاده کنیم.

Repost from ‌BenDev
آنچه خواهید دید @BenDevelop

ای بابا باز دوباره ۴ شد که

یک چیزی که خیلی داخل بچه‌هایی که جنگو یاد میگیرن میبینم اینه که خیلی تایم‌شون رو داخل یادگرفتن سیستم تمپلیت جنگو هدر میدن. اقا اگه قرار بک‌اند کار باشید و کارهای فول استکی انجام نمیدید(حتی اونجا هم بیشتر موارد لازم نیست) اصلا از این بخش بگذرید به کار شما نمیاد اصلا، بیشتر عمر بک‌اند تون قراره API توسعه بدید نه تمپلیت، به جاش روی ORM و DRF تمرکز کنید. @TorhamDevCH

آپدیت کردن چند آبجکت به صورت همزمان در #جنگو فریم‌ورک #django قابلیت آپدیت کردن دیتاها رو به روش ها مختلف داره که خیلی ها یا ازش بی خبر ان یا استفاده نمیکنن. بیایید ببینیم هر کدوم رو کجا استفاده کنی بهتره :) مدل فرضی:
class Records(models.Model):
    name = models.Charfield()
    balance = models.InetegerField()
    country =models.CharField()
خب فرض کنید ما یک هدیه به مناسب عید نو روز میخواییم به کاربرا بدیم، مثلا میخاییم نفری ۲ هزار تومن هدیه بدیم D: حالا چند روش وجود داره. روش اول ( نوب):
users = Records.objects.all()

for user in users:
    user.balanc = user.balance + 1
    user.save()
خیلی ساده و البته درب و داغون در خیلی جهات. مشکل اول اینه با رو همه کاربرا حلقه میزنیم و هر بار آپدیت رو کاربرا صدا میزنیم نه یعنی برای هر یوزر یک درخواست اپدیت به دیتابیس میره که اگه ۱ میلیون یوزر داشته باشیم ۱ میلیون درخواست میره :). ( تو اینه پست به اینکه باید از F استفاده کنید یا کانکارنسی و اینا هندل کنید اشاره نمیکنم، پست‌ها قبلی بخونید) حالا روش بهتر چیه؟ روش بهتر:
user = Records.objects.update(balance=F("balance") + 2 )
همینقدر ساده :) سناریو دوم: با بک‌اند یک بازی خفن رو داریم توسعه میدیم، داخل این بازی هر هفته یک ایونت اتفاق میوفته که افرادی که اون رو تموم کنن در آخر هفته یک تایتل به کنار اسمشون اضافه میشه و همچنین اگه امتیاز بالاتر از ۱۰ کسب کرده باشن به بالانس پول داخل گیم‌شون هم ۱۰۰ تا گلد اضافه میشه. حالا بیایید فقط کوئری آپدیت این بهش ببینیم، فرض کنید این کوئری آخر هفته اجرا میشه. ( این فیلدا تو مدل فرض نداریم دیگه خودتون فرض کنید هست 😂❤️)
users = Records objects.fileter(done_weekly=True)

for user in users:
    user.name = "Grunt " + user.name
    if user.weekly_score >= 10:
         user.balance = user.balance + 100

    user.save()
خب همینطور که خیلی معلومه مشکلات فراوان داخلش هست. بزرگ‌ترین مشکلش اینه که هر بار برای هر کاربر یک درخواست آپدیت میدیم که میشهه همون مشکل بالا، آما آیا این بار میشه از روش بالا استفاده کرد و اینو فیکسش کرد؟ نه روش بالا زمانی کاربرد داره که فیلدها قراره یک مقداری ثابتی به همشون داده بشه، اینجا بعضی ها ۱۰۰ تا گلد میگیرن بعضی ها نه پس کار نمیکنه، اینجا ما میتونیم از فانکشن bulk_update جنگو استفاده کنیم. همون حلقه بالا رو میزنید با این تفاوت که داخلش .save رو صدا نمیزنید و تمام آبجکت‌ها رو داخل مموری آپدیت میکنید و بعد همچین حرکتی میزنید:
Records.objects.bulk_update(updated_users_list)
و تموم همرو با هم آپدیت میکنید با یک درخواست اینجا حتی میتونید یک قدم جلوتر برید و با اضافه کردن updated_fields به ورودی فانشکن و مشخص کردن اینکه دقیقا دوتا فیلد بالانس و نام فقط قرار آپدیت بشه بهترش کنید! از این به بعد بهتر آپدیت کنید :) @TorhamDevCH

چطور کوئری آپدیت بهتری داخل #جنگو بزنیم؟ روش‌های زیادی برای آپدیت کردن یک آجکت یا چندتا آبجکت داخل جنگو وجود داره، ساده ترین حالتی که افراد استفاده میکنن همچین چیزی. مدل فرضی:
class Records(models.Model):
    name = models.Charfield()
    balance = models.InetegerField()
    country =models.CharField()
برای مثال اگه کسی بخواد یک آبجکت از این مدل رو آپدیت کنه همچین کار میکنه:
r = Records.objects.get(pk=1)
r.name = "new name"
r.save()
که این اوکیه، بد نیست و آپدیت براتون انجام میده اما یک نکته رو بهش توجه نمیکنید! زمانی که شما یک آبجکت این شکلی آپدیت میکنید در اصل دارید تمام فیلد‌ها رو آپدیت میکنید :) ولی خب مقدار فیلدهای قبلی همون قبلی ها آپدیت میشه، برای اینکه از این کار جلو گیری کنید باید explicit ( نمیدونم، فکر کنم دقیق تر معنی بده) باشید یعنی، دقیقا بگید کدوم فیلد/فیلدها میخوایید آپدیت کنید. این کار میکنید با استفاده از پارامتر update_fields انجام بدید.
r = Records.objects.get(pk=1)
r.name = "new name"
r.save(update_fields=["name"])
البته باید مراقب باشید که حتما فیلدهایی که میخوایید آپدیت کنید رو داخلش بزارید مگرنه آپدیت نمیشن. پست بعدی آپدیت کردن چند آبجکت... @TorhamDevCH

تولدم مبارک 🎉 هدیه نمیگیرم ولی اگه کسی خواست بده میتونه تتر بزنه 😂❤️ My Public Address to Receive TRX TDzW3Q8DkenuYdoQFqsRE7mZZYuFhzZRAH Pay me via Trust Wallet: https://link.trustwallet.com/send?coin=195&address=TDzW3Q8DkenuYdoQFqsRE7mZZYuFhzZRAH

بچه‌ها میتونید تسک‌هایی که شرکت‌ها بهتون دادن برای مصاحبه رو برام بفرستید لطفا؟ 👈👉🥹