جنگولرن
4.11K subscribers
306 photos
85 videos
33 files
597 links
آموزش Django و بستگان
-مفاهیم پر کاربرد پایتون
-مفاهیم مهندسی نرم افزار
-آشنایی با تجربه حرفه ای ها
-آشنایی با راهکارهای حرفه ای ها برای افزایش پرفورمنس
و...
اگه سوال داری به @miladhzz پیام بده.
Download Telegram
Forwarded from Python Hints
#Quick

این یکی از Django هست نسخه 3.2 به بعد (من فقط 3.2 و 4.2 رو تست کردم)

یکی از سرویس‌های شرکت رو چون جلوتر از
Sprint

بودم و بسیار بسیار شبیه یکی دیگه از سرویس‌هایی هست که خودم کد زده بودم بجای اینکه طبق معمول پیاده سازی کنم
Async
پیاده‌سازی کردم با اینکه فکر میکردم چون ORM هنوز async نشده و نباید خیلی کمک بزرگی بهم بکنه اما طبق خروجی profiler تقریباً ۲.۲ برابر request بیشتری رو دارم هندل می‌کنم با سخت‌افزار و کانفیگ یکسان.

دوستان یوتیوبر بنظرم، ازین دوره‌ها بسازید.

برای توسعه دهنده‌ها شاید الان خیلی چیز پر دردسری باشه نسبت به موارد دیگه که وجود داره و نیاز به
sync_to_async , ...

ولی قطعاً آینده Django به این سمت هست و برای درآمد بهتر در اون زمان، الان وقت شروع تمرین هست بنظرم
👍141👏1
Forwarded from Python Hints
#Quick

یک سری وقت‌ها هست که توی پروژه بنا به هر دلیلی نیاز هست که یک پوشه خالی داشته باشید و اون رو روی git هم بذارید.
اکثرا برای permission درست و ... دیدم این کار انجام میشه.

حالا مساله چیه ؟ هرکی برای خودش از یک استاندارد استفاده می‌کنه (همه موارد جواب میده)
۱- اونایی که توی Mac کد میزنند:
اضافه کردن فایل .DSStore (با همچین اسمی به پوشه خالی)
۲- بچه‌های Linux :
اضافه کردن یکم فایل با نام دلخواه و شروع با . بیشترین مورد : .ignore
۳- ویندوزی‌ها :
اضافه کردن یک فایل با پسوند txt

اما برای این کار یک قرارداد نانوشته مشترک بین همه برنامه‌نویس‌ها هست اونم؛ توی اون پوشه خالی یک فایل به اسم
.gitignore
بسازید (جدای از gitignore کل پروژه هست) و محتوای داخلش این خواهد بود:

*
!.gitignore


یعنی همه چیز داخل این پوشه رو برای git نادیده بگیر به غیر از .gitignore

ربطی به موارد advance نداشت ولی چون دیدم خیلی کم رعایت میشه گفتم پست بذارم.
👍7
Forwarded from Python Hints
#Quick

داشتم پروژه django شرکت رو می‌خوندم یک مشکل داریم سر بعضی endpointها و برخی تسک‌ها.
اولین کاری کردم این بوده که یک سری دیتا تست با faker بهش دادم مثه loadtest ولی بدون ابزار و بعد هم profiling گرفتم و ذخیره کردم.
چیز جالبی که دیدم؛ پروژه موقع کار کردن با redis به مشکل میخورد.
ولی redis منابعش بیشتر از حد مورد نیازش بود.

حجم دیتاهای تست رو کم کردم و مشکل حل شد؛ توی چندتا تست مختلف که زدم دیدم مسئله و مشگل از سمت پیکج redis هست توی پایتون و راهکار ساده رو هم خود redis داده (هرچند من برعکس بهش رسیدم)

$ pip install "redis[hiredis]"


بجای اینکه برای parse کردن دیتا از python استفاده کنه وقتی hiredis رو نصب کنید از C استفاده می‌کنه (بنچمارکاش هم توی گیت‌هاب hiredis هست ببینید)

مشکل خیلی ساده حل شد؛ ولی برای این حل ساده خیلی زمان و درک profiling لازم بود.

اهمیت profiling
👍23