Python Hints
رفتن به کانال در Telegram
Python tips and tricks The Good, Bad and the Ugly توی این کانال فقط قرار هست در مورد core python صحبت کنیم. این کانال یک بلاگ شخصی هست و پیرامون نظرات و چیزهایی که توی بیش از ۱۰ سال کد زدن یاد گرفتم (فقط برای کمک به دوستان تازهکار) Admin: @Abbasi_ai
نمایش بیشتر9 605
مشترکین
+924 ساعت
+647 روز
+22130 روز
آرشیو پست ها
9 607
به مناسبت 2k شدن ممبرهای کانال و پیامهای گرم که این مدت از شما عزیزان دریافت کردم.
مرسی از همگی
امیدوارم این آهنگ رو دوست داشته باشید (هرچند میدونم سلیقه موسیقیام با نسل امروز هماهنگ نیست خیلی)
اما برای تشکر از همهی لطفی که دوستان توی این مدت داشتید چیز بهتری برای ارائه نداشتم.
ترجمه رو هم گذاشتم، شاید بیشتر کمک کنه.
9 607
je n'ai pas changé
Artist: Julio Iglesias
Album : Sono Un Pirata, Sono Un Signore
Released: 1978
Produce: 1978
Genres: Pop
@PytensMusic
9 607
پستی که روش ریپلای زدم رو اگر نخوندید شاید بد نباشه بخونید :
توی شرکت چندتا نیروی بخش
Backend - software engineering
بهم سپرده شده (سنیور توشون نیست) که توی همین چند مدتی که گذشته به
conflict
های بسیاری خوردیم (روی پروژههای قبلی) حالا قرار هست با این دوستان پروژه جدیدی رو شروع کنیم و برای همین دارم استاندارد سازی میکنم.
تو زمینه هوش مصنوعی هیچوقت این موارد نیاز نیست (مگر به زمان پروداکشن که من اصلا ندیدم توی ایران کسی اینکار رو بکنه؛ تجربهام با شرکتهای خارجی هم همین رو نشون داده که اونطرف هم اوضاع همین هست)
اما وقتی صحبت از
Backend development, software engineeringمیشه بنظرم باید این موارد رعایت بشه. حالا : ازونجا که واقعا نمیدونستم اوضاع جامعه پایتون کانال روی این موضوع چطور هست (سنیور - جونیور) گفتم قبل از اینکه متن و آموزشی درمورد این موارد بذارم؛ نظرخواهی کنم که آیا نیاز به آموزش راجب فایلهای داخل عکس و استاندارد سازی ساختار کدهای پایتون دارید یا خیر ؟ لایک : آموزش بذارم دیسلایک : آموزش لازم نیست. باقی اموجیها : بذاری بهتر نذاشتی هم خودمون میخونیم.
9 607
این رو همین الان توی مصاحبه ازم پرسیدند :
البته باید بگم که توی مصاحبه یک حجم بالایی از دیتا بهم داده شد و یک کد با بیش از ۱۰۰ خط
توی این شرکت قرار هست
senior python developer
باشم و حالا میخوان کدهاشون رو optimize و review کنند
تا اول خط ۱۴ من داشتم مثالی مشابه برای شما آماده میکردم؛ و توی ۸ خط من ۶۰٪ کدهای نفر قبلی رو انجام دادم.
استفاده از
match-case / Destructuring / Runtime type checking
۳ تا مفهوم اصلی بود که با این کد نشون دادم بهش مسلط هستم.
پ.ن : isbn رو نباید int در نظر بگیرید (سربار و …) ولی من برای مثال چیز دیگری به ذهنم نرسید برای همین اینطوری در نظر گرفتمش
9 607
اینم ارزش نگاه انداختن داره :
توجه کنید حالت
Local Mode
داره که وقتی فعال کنید لاگ روی سرورهای خودشون نگه نمیدارند و از دیتا برای training استفاده نمیشه (مشکل جدی شرکتهای بزرگ با chatGpt)
Cursor
9 607
☝️☝️☝️☝️☝️☝️
قبلاً هم گفتم حتی استفاده از مطالب بدون رفرنس دادن به کانال هم مجاز هست.
البته بسیاری از دوستان رفرنس میزنند (قدردان هستم)
و این مطلب رو مجدد گذاشتم چون بعضی از دوستان پرسیدند توی آموزش میتونند استفاده کنند یا خیر .
9 607
#Quick
برای بالا بردن سرعت کدها اولین کاری که میکنید اینه که میرید
C
یاد میگیرید ؟
اشتباه نکنید، چیزی که قبل از اون نیاز دارید و ۹۹.۹٪ مشکلاتتون رو حل میکنه
Cython
(شاید یک آموزشی هم براش گذاشتم)
برای مثال توی پروژه اخیر، بجای یک سری از پردازشهای مهم تصویر رو که با
numpy
پیاده سازی شده بود آوردیم روی
Cython (numpy)
زمان اجرا تمام پردازشها قبل از این برای ۱ عکس توی بنچمارک ۵۳ ثانیه بود و بعد از تبدیل به Cython به حدوداً ۱ ثانیه رسید.
خیلی مهمه با همین ابزارهایی که در اختیارتون هست آشنا باشید و بتونید کار کنید.9 607
ی پروژه و پکیج جالب برای ساده کردن
Multiprocessing
در پایتون (شخصاً استفاده نکردم ولی جالب هست بسیار)
Github Link
9 607
چندساعت قبل یک ملاقات داشتم؛ که توش بحث راجب
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
خلاصه که استفاده درست از ابزارهای موجود بسیار بسیار مهم هست؛ و شما باید این رو هم یاد بگیرید که کجا و چطور از چه ابزاری استفاده کنید.9 607
#Quick
این یکی از
Django هست نسخه 3.2 به بعد (من فقط 3.2 و 4.2 رو تست کردم)
یکی از سرویسهای شرکت رو چون جلوتر از
Sprint
بودم و بسیار بسیار شبیه یکی دیگه از سرویسهایی هست که خودم کد زده بودم بجای اینکه طبق معمول پیاده سازی کنم
Async
پیادهسازی کردم با اینکه فکر میکردم چون ORM هنوز async نشده و نباید خیلی کمک بزرگی بهم بکنه اما طبق خروجی profiler تقریباً ۲.۲ برابر request بیشتری رو دارم هندل میکنم با سختافزار و کانفیگ یکسان.
دوستان یوتیوبر بنظرم، ازین دورهها بسازید.
برای توسعه دهندهها شاید الان خیلی چیز پر دردسری باشه نسبت به موارد دیگه که وجود داره و نیاز به
sync_to_async , ...
ولی قطعاً آینده Django به این سمت هست و برای درآمد بهتر در اون زمان، الان وقت شروع تمرین هست بنظرم9 607
#خارج_از_بحث
این خیلی بدردم خورد گفتم با شما هم به اشتراک بذارم شاید مشکلات شما رو هم حل کمه
مخصوصاً مورد سوم
Reset Imported Contacts
فقط کافیه وارد
Settings
بشید و متن پایین که با فلش اشاره کردم رو ۲ بار طولانی لمس کنید.
دوستان اشاره کرده بودند شماره مشخص هست 😬
9 607
#خارج_از_بحث
این خیلی بدردم خورد گفتم با شما هم به اشتراک بذارم شاید مشکلات شما رو هم حل کمه
مخصوصاً مورد سوم
Reset Imported Contacts
فقط کافیه وارد
Settings
بشید و متن پایین که با فلش اشاره کردم رو ۲ بار طولانی لمس کنید.
9 607
#موقت
#Quick
دوستان من لینکدین رو هرروز چک نمیکنم مگر اینکه پیام یا کاری داشته باشم
اگر connect request فرستادید و طول کشید برای
Accept
کردن، عذرخواهی میکنم 🌹
توی مواردی که نخوام accept بزنم (پروفایل مشخص نیست، از نظر شغلی و ... به هم نمیخوریم مثلا مورد داشتیم طرف زده بود مشاور املاک، درخواست داده بود 😂) خودم reject میزنم. اما اگر ببینم بدون پاسخ نمیذارم.
این مورد برای پیامهای تلگرام هم صدق میکنه (اگر پیامی رو چندروز ندیدم یک پیام دیگه با متن up بفرستید که پیام بالا بیاد و ببینم)
9 607
Tokenizer
توی این نسخه روی C نوشته شده همین ی مورد به تنهایی خیلی سرعت رو بالا میبره (البته اینطوری که این زمان روی ماژولهای متفاوت chain میشه و خودشو نشون میده)
حتماً این تغییرات رو بخونید، بخصوص اگر درحال توسعه پکیج هستید
مثلاً f-string فوقالعاده خوب شده \ ، f-string های تو در تو هم دیگه پشتیبانی میشه و ...
9 607
تغییرات احتمال بسیاری نهایی پایتون 3.12 :
Python3.12 what's bew ?
و مواردی که باعث افزایش سرعت خواهند شد.
9 607
این پکیج هم جالب هست، البته شخصاً فعلاً کاربرد جدیایی براش نمیبینم (ویدئو گویا هست دیگه)
وسط اجرا یادت میوفته ی کاری رو نکردی همون لحظه اضافه میکنی
احتمال زیاد پرفورمنس رو خراب میکنه
منبع: لینکدین (پروفایل طرف رو گم کردم)
9 607
این پست ی باگ و سوتی داره که متأسفانه کسی متوجه نشد
و خودم الان متوجه شدم و باید بهش اعتراف کنم.
البته بحثی که شده در مورد سرعت و مصرف حافظه کاملاً درست هست ولی خب کد اشتباه داره
تصویر آپدیت میشه
9 607
یکبار برای همیشه :
اگر کسی با من، طرز بیان من و ... مشکلی داره
میتونه از گروه - کانال
Left
بده، و حتماً من رو هم
Block
بکنه.
واسه درآمد زایی کانال نزدم، واسه دیده شدن هم نیازی به این کانال ندارم (چون اصلاً پروژه تو ایران قبول نمیکنم)
ولی راجب این موضوعات دیگه پیام ندید.
اکنون در دسترس! پژوهش تلگرام ۲۰۲۵ — مهمترین بینشهای سال 
