ru
Feedback
Python Hints

Python Hints

Открыть в Telegram

Python tips and tricks The Good, Bad and the Ugly توی این کانال فقط قرار هست در مورد core python صحبت کنیم. این کانال یک بلاگ شخصی هست و پیرامون نظرات و چیزهایی که توی بیش از ۱۰ سال کد زدن یاد گرفتم (فقط برای کمک به دوستان تازه‌کار) Admin: @Abbasi_ai

Больше
9 607
Подписчики
-524 часа
+587 дней
+21130 день
Архив постов
به مناسبت 2k شدن ممبرهای کانال و پیام‌های گرم که این مدت از شما عزیزان دریافت کردم. مرسی از همگی امیدوارم این آهنگ رو دوست داشته باشید (هرچند می‌دونم سلیقه موسیقی‌‌ام با نسل امروز هماهنگ نیست خیلی) اما برای تشکر از همه‌ی لطفی که دوستان توی این مدت داشتید چیز بهتری برای ارائه نداشتم. ترجمه رو هم گذاشتم، شاید بیشتر کمک کنه.

این ترجمه هم خواهد ماند
این ترجمه هم خواهد ماند

je n'ai pas changé Artist: Julio Iglesias Album : Sono Un Pirata, Sono Un Signore Released: 1978 Produce: 1978 Genres: Pop @PytensMusic

یادم باشه موزیک 2k شدن رو بفرستم 🤔

پستی که روش ریپلای زدم رو اگر نخوندید شاید بد نباشه بخونید : توی شرکت چندتا نیروی بخش Backend - software engineering بهم سپرد
پستی که روش ریپلای زدم رو اگر نخوندید شاید بد نباشه بخونید : توی شرکت چندتا نیروی بخش Backend - software engineering بهم سپرده شده (سنیور توشون نیست) که توی همین چند مدتی که گذشته به conflict های بسیاری خوردیم (روی پروژه‌های قبلی) حالا قرار هست با این دوستان پروژه جدیدی رو شروع کنیم و برای همین دارم استاندارد سازی می‌کنم. تو زمینه هوش مصنوعی هیچوقت این موارد نیاز نیست (مگر به زمان پروداکشن که من اصلا ندیدم توی ایران کسی اینکار رو بکنه؛ تجربه‌ام با شرکت‌های خارجی هم همین رو نشون داده که اونطرف هم اوضاع همین هست) اما وقتی صحبت از
Backend development, software engineering
می‌شه بنظرم باید این موارد رعایت بشه. حالا : ازونجا که واقعا نمی‌دونستم اوضاع جامعه پایتون کانال روی این موضوع چطور هست (سنیور - جونیور) گفتم قبل از اینکه متن و آموزشی درمورد این موارد بذارم؛ نظرخواهی کنم که آیا نیاز به آموزش راجب فایل‌های داخل عکس و استاندارد سازی ساختار کدهای پایتون دارید یا خیر ؟ لایک : آموزش بذارم دیسلایک : آموزش لازم نیست. باقی اموجی‌ها : بذاری بهتر نذاشتی هم خودمون میخونیم.

این رو همین الان توی مصاحبه ازم پرسیدند : البته باید بگم که توی مصاحبه یک حجم بالایی از دیتا بهم داده شد و یک کد با بیش از ۱۰
این رو همین الان توی مصاحبه ازم پرسیدند : البته باید بگم که توی مصاحبه یک حجم بالایی از دیتا بهم داده شد و یک کد با بیش از ۱۰۰ خط توی این شرکت قرار هست senior python developer باشم و حالا میخوان کدهاشون رو optimize و review کنند تا اول خط ۱۴ من داشتم مثالی مشابه برای شما آماده میکردم؛ و توی ۸ خط من ۶۰٪ کدهای نفر قبلی رو انجام دادم. استفاده از match-case / Destructuring / Runtime type checking ۳ تا مفهوم اصلی بود که با این کد نشون دادم بهش مسلط هستم. پ.ن : isbn رو نباید int در نظر بگیرید (سربار و …) ولی من برای مثال چیز دیگری به ذهنم نرسید برای همین اینطوری در نظر گرفتمش

اینم ارزش نگاه انداختن داره : توجه کنید حالت Local Mode داره که وقتی فعال کنید لاگ روی سرورهای خودشون نگه نمی‌دارند و از دیتا برای training استفاده نمی‌شه (مشکل جدی شرکت‌های بزرگ با chatGpt) Cursor

☝️☝️☝️☝️☝️☝️ قبلاً هم گفتم حتی استفاده از مطالب بدون رفرنس دادن به کانال هم مجاز هست. البته بسیاری از دوستان رفرنس می‌زنند (قدردان هستم) و این مطلب رو مجدد گذاشتم چون بعضی از دوستان پرسیدند توی آموزش می‌تونند استفاده کنند یا خیر .

#Quick برای بالا بردن سرعت کدها اولین کاری که می‌کنید اینه که میرید C یاد میگیرید ؟ اشتباه نکنید، چیزی که قبل از اون نیاز دارید و ۹۹.۹٪ مشکلاتتون رو حل می‌کنه Cython (شاید یک آموزشی هم براش گذاشتم) برای مثال توی پروژه اخیر، بجای یک سری از پردازش‌های مهم تصویر رو که با numpy پیاده سازی شده بود آوردیم روی Cython (numpy) زمان اجرا تمام پردازش‌ها قبل از این برای ۱ عکس توی بنچمارک ۵۳ ثانیه بود و بعد از تبدیل به Cython به حدوداً ۱ ثانیه رسید. خیلی مهمه با همین ابزارهایی که در اختیارتون هست آشنا باشید و بتونید کار کنید.

ی پروژه و پکیج جالب برای ساده‌ کردن Multiprocessing در پایتون (شخصاً استفاده نکردم ولی جالب هست بسیار) Github Link

چندساعت قبل یک ملاقات داشتم؛ که توش بحث راجب PEP703 پیش اومد (همین ۹ روز قبل آپدیت شده) و پروپوزال حذف GIL از پایتون هست (در دست بررسی هم هست) شروع کردم راجبش صحبت کردن؛ ی مقدار که فردی که بحث رو وسط انداخت تعجب کرد بعد یکی از بچه‌ها گفت تعجب نکن محمد همیشه آپدیت هست خواستم بگم همیشه آپدیت بودن این نیست که برید کل PEP703 رو بخونید (این اشتباهی هست که خیلی از بچه‌های تازه‌کار می‌کنند و فکر می‌کنند اینطوری سطحشون بالا میره) فقط باید از ابزار های مناسب استفاده کنید. من فقط این ۳ تا سوال رو از chatGPT پرسیده بودم قبلش (وقتی دیدم صحبت‌ها در موردش داره شروع میشه)
What is PEP703, what are the main problems in the way of PEP703 ?

What are the proposed ways for removing GIL from CPython in PEP703 if any provided ?

Give me a sumary of PEP703 for a 5 minute talk about it. حتی می‌تونستم راجبش تا ۱۵-۲۰ دقیقه بعد لکچر هم بدم : اول این سوال و بعد هم خوندن بخش‌های مهم پروپوزال PEP703 که هایلایت شده Give me a sumary of PEP703 for a 20 minute talk about it in 4000 words خلاصه که استفاده درست از ابزارهای موجود بسیار بسیار مهم هست؛ و شما باید این رو هم یاد بگیرید که کجا و چطور از چه ابزاری استفاده کنید.

#Quick این یکی از Django هست نسخه 3.2 به بعد (من فقط 3.2 و 4.2 رو تست کردم) یکی از سرویس‌های شرکت رو چون جلوتر از Sprint بودم و بسیار بسیار شبیه یکی دیگه از سرویس‌هایی هست که خودم کد زده بودم بجای اینکه طبق معمول پیاده سازی کنم Async پیاده‌سازی کردم با اینکه فکر میکردم چون ORM هنوز async نشده و نباید خیلی کمک بزرگی بهم بکنه اما طبق خروجی profiler تقریباً ۲.۲ برابر request بیشتری رو دارم هندل می‌کنم با سخت‌افزار و کانفیگ یکسان. دوستان یوتیوبر بنظرم، ازین دوره‌ها بسازید. برای توسعه دهنده‌ها شاید الان خیلی چیز پر دردسری باشه نسبت به موارد دیگه که وجود داره و نیاز به sync_to_async , ... ولی قطعاً آینده Django به این سمت هست و برای درآمد بهتر در اون زمان، الان وقت شروع تمرین هست بنظرم

#خارج_از_بحث این خیلی بدردم‌ خورد گفتم با شما هم به اشتراک بذارم شاید مشکلات شما رو هم حل کمه مخصوصاً مورد سوم Reset Imported
#خارج_از_بحث این خیلی بدردم‌ خورد گفتم با شما هم به اشتراک بذارم شاید مشکلات شما رو هم حل کمه مخصوصاً مورد سوم Reset Imported Contacts فقط کافیه وارد Settings بشید و متن پایین که با فلش اشاره کردم رو ۲ بار طولانی لمس کنید. دوستان اشاره کرده بودند شماره مشخص هست 😬

#خارج_از_بحث این خیلی بدردم‌ خورد گفتم با شما هم به اشتراک بذارم شاید مشکلات شما رو هم حل کمه مخصوصاً مورد سوم Reset Imported
#خارج_از_بحث این خیلی بدردم‌ خورد گفتم با شما هم به اشتراک بذارم شاید مشکلات شما رو هم حل کمه مخصوصاً مورد سوم Reset Imported Contacts فقط کافیه وارد Settings بشید و متن پایین که با فلش اشاره کردم رو ۲ بار طولانی لمس کنید.

#موقت #Quick دوستان من لینکدین رو هرروز چک نمی‌کنم مگر اینکه پیام یا کاری داشته باشم اگر connect request فرستادید و طول کشید برای Accept کردن، عذرخواهی‌ می‌کنم 🌹 توی مواردی که نخوام accept بزنم (پروفایل مشخص نیست، از نظر شغلی‌ و ... به هم نمی‌خوریم مثلا مورد داشتیم طرف زده بود مشاور املاک، درخواست داده بود 😂) خودم reject می‌زنم. اما اگر ببینم بدون پاسخ نمی‌ذارم. این مورد برای پیام‌های تلگرام هم صدق می‌کنه (اگر پیامی رو چندروز ندیدم یک پیام دیگه با متن up بفرستید که پیام بالا بیاد و ببینم)

Tokenizer توی این نسخه روی C نوشته شده همین ی مورد به تنهایی خیلی سرعت رو بالا میبره (البته اینطوری که این زمان روی ماژول‌های متفاوت chain می‌شه و خودشو نشون میده) حتماً این تغییرات رو بخونید، بخصوص اگر درحال توسعه پکیج هستید مثلاً f-string فوق‌العاده خوب شده \ ، f-string های تو در تو هم دیگه پشتیبانی میشه و ...

تغییرات احتمال بسیاری نهایی پایتون 3.12 : Python3.12 what's bew ? و مواردی که باعث افزایش سرعت خواهند شد.

این پکیج هم جالب هست، البته شخصاً فعلاً کاربرد جدی‌ایی براش نمی‌بینم (ویدئو گویا هست دیگه) وسط اجرا یادت میوفته ی کاری رو نکردی همون لحظه اضافه می‌کنی احتمال زیاد پرفورمنس رو خراب می‌کنه منبع: لینکدین (پروفایل طرف رو گم کردم)

این پست ی باگ و سوتی داره که متأسفانه کسی متوجه نشد و خودم الان متوجه شدم و باید بهش اعتراف کنم. البته بحثی که شده در مورد سرعت و مصرف حافظه کاملاً درست هست ولی خب کد اشتباه داره تصویر آپدیت می‌شه

یکبار برای همیشه : اگر کسی با من، طرز بیان من و ... مشکلی داره می‌تونه از گروه - کانال Left بده، و حتماً من رو هم Block بکنه. واسه درآمد‌ زایی کانال نزدم، واسه دیده شدن هم نیازی به این کانال ندارم (چون اصلاً پروژه تو ایران قبول نمی‌کنم) ولی راجب این موضوعات دیگه پیام ندید.