CodeBaz.dev
697 subscribers
673 photos
108 videos
155 files
495 links
من، محمدرضا کسائی، برنامه‌نویس فول‌استک در تپسی و مدرس پایتون و جنگو در مجتمع فنی تهران هستم. در اینجا قصد دارم تجربیات و دانش خود را در زمینه‌های مختلف برنامه‌نویسی با شما به اشتراک بگذارم.
https://CodeBaz.dev
https://x.com/CodebazDev
Download Telegram
لوتی جی‌پی‌تی 😂
@CodeBazDev
😁4
به نظر من یکی از سخت ترین کار های دنیا نوشتن کامنت مناسب برای یک کامیت هستش
نظر شما چیه؟
#git
@CodeBazDev
👌5💯2😭1
CodeBaz.dev
به نظر من یکی از سخت ترین کار های دنیا نوشتن کامنت مناسب برای یک کامیت هستش نظر شما چیه؟ #git @CodeBazDev
به نظر من سینیور بودن یه نفر رو میشه با نگاه کردن به کامنت های کامیت هاش فهمید.
نه اینکه اگه کسی کامنت خوب ننوشت سینیور نباشه، ولی اگه کامنت خوب نوشته بود میشه گفت یکی از مولفه های سینیور بودن رو داره
#git
@CodeBazDev
👍3👏1
میدونید چرا کامنت نویسی برای کامیت ها سخته؟
اگه توی اون کامیت بیش از یک کار انجام شده باشه نوشتن کامنتش سخت میشه
مثلا اگه دو تا باگ حل شده باشه و یه فیچر اضافه شده باشه نمیشه یه کامنت واضح نوشت
پس پیشنهادم اینه که تعداد کامیت ها رو زیاد کنید.
به محض اینکه کوچکترین باگی حل شد یا کوچکترین فیچری اضافه شد کامیت مربوطه اش رو بزنید.
#git
@CodeBazDev
👍4💯2
حواستون باشه یه موقع از اون طرف بوم هم نیوفتید. یعنی تعداد کامیت ها رو به صورت بی‌رویه زیاد نکنید.
منظورم اینه که اگه مثلا یه فایل اضافه کردید که به تنهایی یک فیچر حساب نمیشه کامیتش نکنید.
سعی کنید فیچری به موضوع نگاه کنید.
اضافه شدن هر فیچر = یک کامیت
حذف کردن هر فیچر = یک کامیت
حل هر باگ = یک کامیت

#git
@CodeBazDev
👌1
از وقتی اومدم تپسی اینقدر بیشتر کار میکنم که وقتی دارم کد میزنم حس اون نونوایی رو دارم که تو سنگکی با یه ریتم زیبایی خمیر پهن میکنه
🤣4👍1
من از فرمول زیر برای نام‌گذاری branch های گیت استفاده میکنم
TASK_TYPE/TASK_NAME

TASK_TYPE = fix (باگ فیکس)
TASK_TYPE = fe (فیچر جدید)
TASK_TYPE = hotfix (فیکس سرعتی)
TASK_NAME = نام تسکی شما

مثلا اگه دارم باگ لاگین رو حل میکنم یه برنچ به اسم fix/login درست میکنم.
مثلا اگه دارم صفحه اشتراک گذاری رو درست میکنم اسم برنچ رو میذارم fe/sharing
#git
@CodeBazDev
👍4
وقتی به عنوان سرپرست برنامه‌نویسان توی یه گروهی مشغول به کار بودم یه چالشی که داشتم این بود که نمیدونستم کدوم برنامه نویس الان داره روی کدوم برنچ کار میکنه. برای حل این مشکل با خودشون جلسه گذاشتم و تصمیم گرفتیم که اسم‌هامون رو هم توی نام برنچ بنویسیم. مثلا اگه من قرار بود تسک «اضافه کردن امکان آپلود تصویر» رو انجام بدم اسم برنچش رو میذاشتیم:
fe/mmreza/upload-image

البته الان که فکر میکنم میبینم نیازی نبود این کارو کنیم. روش های بهتری هم بود که بشه فهمید کی رو چه برنچی کار میکنه که تو پست بعدی میگم ولی قبلش دوست دارم اگه کسی ایده ای داره بگه
#git
@CodeBazDev
👍3
شما از چه افزونه هایی برای کار با گیت استفاده می‌کنید.
لطفا کامنت کنید تا بتونیم پیرامونش انتفال تجربه انجام بدیم 🙏🏻
#git
@CodeBazDev
یه بار تو یه مصاحبه ازم سوال sql پرسیده بودن. گفته بودن فلان امکان رو با استفاده از sql پیاده سازی کن. منم اینقدر با orm جنگو کار کرده بودم sql یادم رفته بود. همون دیتابیسی که میخواستن رو با جنگو طراحی کردم و بعد با استفاده از کد زیر به sql تبدیلش کردم.
این روش برای زمانی که chat gpt نبود روش خلاقانه ای بود به نظرم

queryset = MyModel.objects.all()
print(queryset.query)

#django
@CodeBazDev
5👍2
بهترین دوره چیه؟
تو این ویس اینو توضیح دادم که چرا بهترین دوره وجود نداره
@CodeBazDev
👍2🙏1
🚀 بهینه‌ترین روش برای ساخت تعداد زیادی آبجکت در جنگو

اگه می‌خواید تعداد زیادی آبجکت توی جنگو بسازید، اصلاً خوب نیست که داخل یه حلقه، متد create رو بارها صدا بزنید.

چرا؟ 🤔
چون هر بار که create اجرا بشه، یه کوئری جداگانه به دیتابیس ارسال میشه و این باعث افزایش بار روی دیتابیس و کاهش سرعت میشه. 🐌⚠️

روش درست چیه؟
به جای این کار، از `bulk_create` استفاده کنید! این متد همه آبجکت‌ها رو با یه کوئری ایجاد می‌کنه، بار روی دیتابیس رو کم‌تر می‌کنه و خیلی سریع‌تر اجرا میشه. 🚀🔥

⚠️ اما یه نکته خیلی مهم!
وقتی از bulk_create استفاده می‌کنید، سیگنال `post_save` اجرا نمیشه! پس اگه روی post_save حساب باز کردید، باید راه دیگه‌ای برای اجرای عملیات مورد نظرتون پیدا کنید.

🔹 خلاصه:
استفاده از bulk_create سریع‌تره و بهینه‌تره
⚠️ ولی سیگنال post_save رو اجرا نمی‌کنه!

📌 اگه سوالی داشتی، بپرس! 😉
#django
@CodeBazDev
1
دیروز تو لینکدین دیدم یکی از مدرسین مطرح پایتون و جنگو یه پست گذاشته و توش داره پروژه‌ای که یه برنامه‌نویس دیگه انجام داده رو نقد و بررسی میکنه.

حالا بماند که من از لحن تمسخر‌آمیزش که یه نگاه بالا به پایینی رو من توش حس کردم داشت خوشم نیومد 😑...

همه نکاتی که میگفت درست بود ولی جالبیش میدونید کجاست؟ 😁 الان براتون میگم!
ادامه این متن رو در لینکدین من بخونید
@CodeBazDev
👍2
سلام
اخیرا چند پیام از دانشجویان قدیمی دریافت کرده ام و متوجه شدم که هنوز نیاز به کمک دارند.
این موضوع منو به این فکر وا داشت که یک کلاس رفع اشکال غیر حضوری هفتگی برگزار کنم تا هر کس هر سوال و مشکلی داشت مطرح کنه
ولی یه چالش هایی احتمالا داشته باشیم مثلا:
- از چه نرم افزاری استفاده کنیم؟
- اگه تعداد افراد زیاد شد چه کنیم؟
- اگر کسی خواست مزاحمت ایجاد کنه چه کنیم؟
- و چالش های دیگه ...
ممنون میشم هر نظر یا پیشنهادی دارید کامنت کنید.

🔥 راستی اگه مشتاق شرکت در این کلاس هستید هم لطفا اعلام کنید تا من ببینم اصلا کیا دوست دارند شرکت کنند
@CodeBazDev
👍7
هر برنامه‌نویس بکندی باید یه کمی امنیت هم بلد باشه که بتونه جلوی یه سری آسیب پذیری‌ها رو بگیره تا هکر ها یه خرده سخت تر بشه کارشون
اگه دنبال این هستید که بدونید چطوری میتونید امن تر کد بزنید لینک زیر برای شماست
https://rules.sonarsource.com/python/

به نظرم شاید بشه بعد از خوندن و تسلط نسبی روی این آموزش بشه «آشنایی با کدنویسی امن» یا چنین تایتلی رو به رزومه تون اضافه کنید
@CodeBazDev
👌2🙏1
This media is not supported in your browser
VIEW IN TELEGRAM
⚠️ به صورت آزمایشی
پنجشنبه ۸ صبح یک لینک گوگل میت توی کانال قرار میدم.
برای شرکت در کلاس کافیه یک اکانت گوگل داشته باشید.
@CodeBazDev
🙏3
وقتی زمان تحویل پروژه نزدیک میشه
🆔 @CodeBazDev
🤣3
This media is not supported in your browser
VIEW IN TELEGRAM
فردا یادتون نره ساعت ۸ تا ۹
👍2