Python Hints
8.63K subscribers
170 photos
11 videos
9 files
141 links
Python tips and tricks
The Good, Bad and the Ugly

توی این کانال فقط قرار هست در مورد core python صحبت کنیم.

این کانال یک بلاگ شخصی هست و پیرامون نظرات و چیزهایی که توی بیش از ۱۰ سال کد زدن یاد گرفتم (فقط برای کمک به دوستان تازه‌کار)

Admin: @Abbasi_ai
Download Telegram
دوستان اگر یک جایی توی پست‌ها اشتباه تایپی می‌بیند
نه برای املا فارسی

بلکه اشتباها چیز دیگری تایپ شده

مثلاً صحبت از
Concurrency, Parallelization
بوده و به اشتباه بجای کلمه
Concurrent
از کلمه
Parallel
استفاده شده.

این رو پای دوتا موضوع بذارید :
۱- خستگی
۲- اینکه من وسط نوشتن این متن‌ها، خیلی وقتا برام تسک پیش میاد که اولویت اول روی تسک‌های شغلم هست

برای همین احتمال خطا وجود داره، توی این موارد قبل از هر توضیح دیگری لطفاً اول اطلاع بدید که راجب چه بخشی از پست و چه خطایی صحبت می‌کنید، بعد بحث کنیم راجب مطلب

سپاس از شما🌹 (خود این تشکر هم باگ داشت درست شد)
👍61❤‍🔥138👎2👏2🙏2👌1
من عاشق این نوع پست‌ها هستم؛ حتی اگر توش کمی اشتباه هم باشه
پست آموزشی خوبه، ولی پستی که از ارورها و خطاها و مشکلات بگه فوق‌العاده هست ...

داستان اینه که این پست‌ها نشون میده چطور میشه از اشتباهات دیگران درس گرفت و بجای تجربه کردن شکست از شکست افراد دیگه درس گرفت.
حالا ی وقتایی این پست در حد مشکلات یک پکیج هست یک وقتایی توضیحات کل مشکلات پروژه
مثلاً : discord و مشکلش با mongodb و جابجایی به Cassandra که چندسال قبل ارائه جامعی رو راجبش داشتند و ...
بطور کلی سعی کنید این مدل پست‌ها رو دنبال کنید.


اینجا هم راجب Celery و مشکلاتش صحبت کرده، راه حل بعضی هاش رو هم گفته :

Problems with Celery
👍354👎1
Python Hints
#Quick من این اخطار‌ هارو همیشه زودتر به دوستان نزدیکم میگم گفتم ازین به بعد بعضی‌هاش رو اینجا هم بگم: اولین : asyncio رو هرچه زودتر یاد بگیرید، پترن‌ها و مفاهیم برنامه‌نویسی Async, Parallel, Concurent قبلتر تأکید زیادی روش نداشتم، اما دیر نیست (توی…
#Quick

برای دوستانی که تازه میخوان یاد بگیرند این موضوع رو خیلی مهمه که روی پایتون 3.9 به بعد تمرین کنید و یاد بگیرید این موضوع رو
برای همین کتابی که توی پست pin شده معرفی کردم رو فقط تایید می‌کنم نسخه پایتون اون کتاب 3.10 هست با تغییرات و باگ‌های رفع شده آموزش میده.
👍232👎1
برای اوقات فراغت و روزهای تعطیلاتی که داریم، از همین فردا و تا آخر ماه

PyCon 2023 Salt lake city US.

مثلاً یکی از مواردی که خودم به شخصه پاش خواهم نشست یک
Pydantic V2
و اینکه چطور از Rust برای افزایش سرعت استفاده می‌کنه هست، چون FastApi هم ازش پشتیبانی می‌کنه تو ورژن آخر که سرعتش رو خیلی بهتر کرده.


نکته این ویدئوها ضبط شده هست (کنفرانس قبلتر بود و فکر می‌کنم همون موردی هست که خالق
FastApi
و Guido بعدش باهم ملاقات و صحبت داشتند.)

@PyHints

پ.ن : پیشنهاد نمی‌کنم همه‌ی ویدئوها رو همه ببینند، بسته به سطحی که دارید یا موضوعی که کار می‌کنید ویدئو مناسب رو ببینید.
👍337🔥2👎1👌1
این رو شاید بهتر بود توی کانال هوش مصنوعی بزنم تا اینجا
اما چون پیام‌های زیاد از درخواست برای
Roadmap
متخصص هوش مصنوعی شدن دریافت می‌کنم (توی کانال @pytens پیام‌های پین شده هست) گفتم شاید بهتر باشه اینجا راجبش صحبت کنم :

کار بین‌المللی پیدا کردن در زمینه هوش مصنوعی؛ واقعا سخت شده برای ایرانی‌ها ریموت تقریبا نشدنی شده و حضوری هم سخت هست دلیل اصلی این موضوع هم امنیت داده هست و قوانین سختگیرانه جدید.

اگر واقعا دنبال کار ریموت یا مهاجرت هستید (که بسیار هم کار خوبی می‌کنید) هوش مصنوعی و دیتاساینس رو حتی اگر با تمام وجود بهش علاقه دارید بذارید توی اولویت دوم؛ برای پایتون برید سراغ :
1- Software Engineering
2- Backend Development

علاوه بر اون این ۲ مورد توی کارهای هوش مصنوعی هم خیلی بدردتون خواهد خورد.

شخصا باوجود همکاری های دلاری که داشتم اوضاع رو خیلی خوب نمی‌بینم؛ و درحال حاضر بهترین و راحت‌ترین راهای پیشنهادی و درآمدی دلاری که برام وجود داره آموزش دادن هست (که من اصلا آدمش نیستم؛ دوست ندارم برای آموزش دادن موضوعات پایه از کسی پولی دریافت کنم) و ۹۰٪ پیام‌های درخواست همکاری که توی لینکدین دریافت می‌کنم مربوط به شرکت‌های برگذار کننده دوره‌ی آموزشی هست.

خلاصه که حواستون به هدف‌گذاری باشه و قبل از شروع حتما تحقیق کنید؛ با شرایط فعلی در نظر بگیرید اگر شما ۲ سال دیگه دنبال کار بین‌المللی بخواهید بگردید قوانین دسترسی به داده قطعا سخت‌گیرانه تر هم خواهد شد؛ چون دولت‌ها و قانون گذاران درحال درک اهمیت داده هستند.


پ.ن : هرچی به شهروندی نزدیکتر، شرایط راحت تر
23👍108👎7👌4🤔3🙏3😢2
#مزخرفترین_سرویس_دهنده‌‌های_ایرانی

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

۱- ابرآروان :
down
شدن دائمی ( اکثر مواقع ۱ تا ۶ صبح بوقت تهران)، بخصوص برای ip خارج از ایران

عدم دسترسی به داکر ‌هاب
سرعت کند، برای دانلود از سرورهای خارج از ایران
سرعت کند (کیلوبایت) برای دانلود پکیج‌های
Python, nodejs

هزینه بالا با وجود افت کیفیت

۲- آسیاتک
Down
شدن سرویس؛ در حد ۱-۴ ساعت در ساعات انتهایی شب (داخلی و خارجی)
عدم دسترسی به داکر
سرعت متوسط دانلود از سرویس‌های خارج از ایران
سرعت متوسط دانلود پکیج‌های
Python, Nodejs

۳- ایران سرور
عدم دسترسی به داکر
سرعت متوسط برای دانلود از سرویس‌های خارج از ایران
عدم دسترسی برای دانلود پکیج‌های
Python, Nodejs

درصورت استفاده از ابزارهای مثل شکن و fod و ... دسترسی خواهید داشت اما سرعت دانلود در حدود
۱۰ کیلوبایت بر ثانیه خواهد بود.

هنگام فعال سازی سرویس به خطا هم خورد، که حل مشکل و ایجاد دسترسی حدوداً ۱۰ ساعت وقت برد (کارشناس‌های خودشون حل باید می‌کردند)


شما هم اگر سرویس دهنده مزخرف می‌شناسید لطفاً زیر همین پست اشاره کنید، اگر سرویس دهنده خوبی هم میشناسید کامنت کنید لطفاً 🌹

پ.ن : اگر جایگزینی هم برای
fod proxy, shecan, ...
می‌شناسید، زیر همین پست کامنت کنید.
👍483👎2
Python Hints pinned «#مزخرفترین_سرویس_دهنده‌‌های_ایرانی این پیام رو پین می‌کنیم که دوستان حواسشون رو جمع کنند از کی میخوان سرویس بگیرند. ۱- ابرآروان : down شدن دائمی ( اکثر مواقع ۱ تا ۶ صبح بوقت تهران)، بخصوص برای ip خارج از ایران عدم دسترسی به داکر ‌هاب سرعت کند، برای دانلود…»
ایران سرور ۲۰ دقیقه و تا اینجا تونسته
۲۵ مگ از
python dependency
هارو دانلود کنه؛ رکورد شکنی عالی هست.
هیچکس هم تیکت جواب نمیده؛ باز ابرآروان و آسیاتک حداقل میزدن در دست بررسی هست.

بیاید مزخرف‌ترین سرویس دهنده رو فعلا بدیم به ایران سرور

پ.ن : سرعت دانلود
20.6 kB/s

#ایرانـسرور #ایران_سرور

پ.ن : سرویس عودت وجه ایران سرور هم کار نمی‌کنه 😂🤣

به هیچ وجه سراغ این سرویس دهنده نرید.
👍462👌2👎1🤯1
Python Hints
کانفیگ logging برای من همیشه اذیت کننده هست. بخش عمده‌ای از تسک‌های من مربوط میشه به Deep learning, ML engineering اما وجه دیگه کارم backend هست و software engineer برای همین خیلی کم پیش میاد نیاز داشته باشم ی لاگر با جزئیات بنویسم از طرفی هم ۹۰٪ کدهایی…
یک دوستی دیروز راجب لاگ نویسی توی پایتون سوال داشت من به اینصورت براش توضیح دادم گفتم شاید مفید باشه :

Python logging components :

1- Loggers

وضعیت لاگ؛ همیشه لازم هست.
نشون میده هر دسته از لاگ رو چطور باید باهاش برخورد کرد بطور کلی ۵ دسته بندی برامون خیلی مهم هستندکه به ترتیب از محیط توسعه و اطلاعات بیشتر به سمت محیط پروداکشن و وضعیت خطرناک تر میریم :
debug - info - warning - error - critical

معمولا روی محیط توسعه از debug استفاده میکنیم و روی محیط پروداکشن شخصا ۲ تا نسخه نگه میدارم یک نسخه که روزانه پاک میشه (به این وضعیت اتومات حذف شدن هم logrotate گفته میشه اصطلاحا) و یک نسخه هم که ماهانه rotate میشه ولی تا ۱ سال گذشته رو نگهداری میکنیم.
نسخه روزانه فقط اطلاعات سطح info رو نگهداری میکنه؛ بیشتر برای این نگهداری میکنیم که بدونیم چه کسی؛ چه زمانی؛ چیکار کرده ؟
نسخه ماهانه اما جاهایی هست که
warning - error - critical
داشتیم؛ ی وقتایی ممکنه از لاگ info برای warning استفاده بشه : برای مثال ممکنه یک یوزر با رفتار امن شروع کنه به درخواست زیاد فرستادن به یکی از لاگین ها اینجا جایی هست که میشه لاگ info رو بررسی کرد و اطلاعات اون یوزر رو توی warning هم داشت
اما بطور کلی warning , … خطاهای نرم افزار رو لاگ میکنه مثلا اگر سرور ارور 500 برای کاربری فرستاد تحت چه شرایطی و به چه دلیل این اتفاق افتاده و …
2- Formatters
از قدیم گفتن لاگ بدون فرمت بدرد صاحب کد هم نمیخوره؛
توی اکثر سناریوها لاگ ها بعد از یک مدت بصورت اتوماتیک بررسی میشن و تحت شرایطی خاص به ادمین سرور یا توسعه دهنده یا … هشداری رو ارسال میکنند پس اینکه چه اطلاعاتی به چه صورتی نوشته بشه مهم هست و وظیفه formatter هم دقیقا همین هست. مثلا :

warning sample.py unauthorized requests to resource at 2023-06-20 17:16:15 from 192.168.1.5 response code 401

3- Handlers

بطور کلی مشخص میکنه با هر پیام لاگی که میاد چیکار باید کرد ؟ اینکه برای info فایل جدا داشته باشیم یا یک سری از اطلاعات رو داخل کنسول / ترمینال نمایش بدیم و … توسط ایشون انجام میشه
بعنوان مثال روی پروژه‌های مهم لاگ‌های سطح critical رو بصورت ایمیل یا پیامک برای چند شخص می‌فرستیم تا سریعتر بررسی بشه و این کار توسط Handler انجام میشه

 4- Filters
ممکنه توی لاگ نویسی یک سری از اطلاعات محرمانه باشه و تحت هیچ شرایطی نباید توی لاگ بیاد مثلا توی مثال بالا ممکن بود من توی اطلاعات لاگ هم بگم که خب شماره موبایل کاربری که داره اینکار رو میکنه هم داشته باشیم اما قطعا بیزینس نمیخواد این اطلاعات توی لاگ هایی که آرشیو میکنه یا ممکنه به یک شرکت دیگری برای بررسی بده وجود داشته باشه پس در نهایت یک فیلتر می‌نویسه که برخی از این اطلاعات که محرمانه هستند حذف بشه یا با یک مقدار از پیش تعیین شده جایگزین بشه.

بنظرم دونستن اهمیت این ۴ تا کامپوننت؛ برای لاگ نویسی از هرچیزی مهمتر هست.

@PyHints
👍524
ی سری آدما هم توی لینکدین هستند که برای تبلیغ خودشون، دیده شدن یا تبلیغ کانال و پروفایل :

میان ی موضوع، مطلب در مورد یک آدم بزرگ می‌نویسند
بعد شروع می‌کنند یک تکنولوژی، گروهی از آدم‌ها یا ... رو کوبیدن

در نهایت هم به خودشون رفرنس می‌دهند.

مثلاً طرف در مورد دنیس ریچی می‌نویسه، بعد میگه دنیس ریچی بزرگ هیچوقت در مورد پایتون و جاوا اسکریپت نظر نداد

تازه کل پایتون روی C نوشته شده، یا مثلاً
Engine
مورد نیاز روی node , ... با C نوشته شده و ...
پس تویی که هیچوقت به سورس کد این‌ها اضافه نکردی، چرا این ۲ تا رو مقایسه می‌کنی

ببخشید ببخشید، ولی این حرف اوج حماقت هست بنظرم
برای من زمانی که اول راه بودم همین مقایسه‌ها باعث شد مسیری که بیشتر به روحیات من نزدیک هست رو پیدا کنم

برای من به مراتب پایتون دوست داشتنی تر از C هست (زمانی توسعه دهنده C++ بودم)
برای من به مراتب لینوکس مهمتر و بهتر بوده تا ویندوز و ...

خواستم بگم این مطالب رو لایک نکند، به اشتراک نگذارید یا اگر گذاشتید قبلش کانکشن رو با من قطع کنید.

یادتون نره، قبل از هر پروژه وقتی
System design
رو انجام میدهیم، می‌شینیم و استک ابزارهای مورد نیاز رو باهم بررسی می‌کنیم و تصمیم میگیرم که چه ابزاری رو استفاده کنیم (حالا اینکه بعضی‌ها رو توی این جلسه راه نمی‌دهند داستانش جداس 😉)

پس مقایسه جزوی از زندگی یک برنامه‌نویس هست.

@PyHints
👍48👎71🔥1
Python Hints
ی سری آدما هم توی لینکدین هستند که برای تبلیغ خودشون، دیده شدن یا تبلیغ کانال و پروفایل : میان ی موضوع، مطلب در مورد یک آدم بزرگ می‌نویسند بعد شروع می‌کنند یک تکنولوژی، گروهی از آدم‌ها یا ... رو کوبیدن در نهایت هم به خودشون رفرنس می‌دهند. مثلاً طرف در…
ی زمانی بود پروژه پرداخت یارانه‌ها رو یک شرکت ایرانی میزد

بعد تراکنش و ... رو روی
MongoDB
نگه می‌داشتن، تو مصاحبه یکی از دوستان هم بهش گفته بودن
مگه شما نمیدونی که
mongodb
ورژن ۱۰
mysql
هست ؟

اون دوستانی که dislike کردن فک کنم مشاور این پروژه بودند 🤣

کاملاً واقعی
😁59👎115😐3👍21
Python Hints
ی زمانی بود پروژه پرداخت یارانه‌ها رو یک شرکت ایرانی میزد بعد تراکنش و ... رو روی MongoDB نگه می‌داشتن، تو مصاحبه یکی از دوستان هم بهش گفته بودن مگه شما نمیدونی که mongodb ورژن ۱۰ mysql هست ؟ اون دوستانی که dislike کردن فک کنم مشاور این پروژه بودند…
آقا این جمله قصار :

" مانگو دی‌بی ورژن ۱۰ مای اسکیوئل هست "

رو من نگفتم، نقل قول کردم از مصاحبه یکی از دوستان با مدیران اون شرکت به دوست عزیز ما این رو گفته بودند.

ی ۱۰ دقیقه اومدیم تلگرام هی باید توضیح بدیم که ببین من توی اون پست نوشتم

گفته بودن، نه اینکه بنویسم گفته بودم

من ۴ سال هست؛ دیتابیس دیزاین روی
MongoDB
انجام میدم. قطعاً انقدر سواد دارم که راجبش نظر میدم 🤦

تورو قرآن درست بخونید 🤦

#موقت
😁39👍54🤷‍♂3👎3🤷3🫡2🕊1
هفته‌ای که گذشت (۷ روز من روز تعطیل ندارم فقط ساعت‌های کاریم کمتر می‌شه)

در مجموع برای جاهایی که کار می‌کنم : ۱۱۰ ساعت کاری پر شده تقریباً روزی ۱۵-۱۶ ساعت

همگی هم دنبال تمام وقت شدن قرارداد من هستند، هیچوقت ناشکری نمی‌کنم چون این انتخاب خودم بودم و دوست داشتم زندگی رو اینطوری تجربه کنم

اطراف من دانشجو و محقق و بورس گرفته و ... بسیار زیاد هست
وقتی می‌بینم که برای پیاده‌سازی یک تمرین ساده، یک پروژه یا یک مقاله دنبال یکی میگردن که کار رو براشون انجام بده
یا اینکه این موارد رو خیلی قشنگ توضیح میدهند ولی حتی اگه تمام فرمول‌های ریاضی جلوشون باشه نمی‌تونند پیاده سازی کنند
یا بخاطر خوندن ۱۰ تا مقاله توی موضوعی که دوست دارند، همش غر میزنند که چقدر زندگی سخت هست

یک نگاهی به مدل کاری خودم و بعضی از دوستانم می‌اندازم، و میگم نکنه ما برداشتمون اشتباه بوده نکنه ما داریم سخت میگیریم ؟

اگر شماهم ازین دسته هستید و با این هدف که زندگی و درآمد خوبی داشته باشید دارید درس می‌خونید، بهتون توصیه می‌کنم ازین دسته بندی فاصله بگیرید :

توی کار واقعی :
من هم مقاله باید بخونم (خیلی خیلی بیشتر و توی موضوعی که شاید علاقه ندارم ولی بیزینس بهم گفته لازم داره)
هم باید پیاده‌سازی انجام بدم
هم خیلی وقتا پیش میاد باید سورس کد یک پروژه دیگه رو تغییر بدم تا خروجی مورد نیاز مارو بهمون بده
هم باید با تیم‌های دیگه تعامل داشته باشم و ....


عادت کنید، درس خواندن سخت نیست (هرچند اگر با این اوضاع ایران و شرایط هزینه‌ای دارید توی ایران درس می‌خونید خیلی کار بزرگی دارید می‌کنید)
ولی می‌خوام بگم کار با دستمزد خوب ازین هم سخت‌تر می‌تونه بشه

هیچوقت فکر نمی‌کردم این حرف رو بزنم :
ولی واقعاً دلم می‌خواد با ی استاد هماهنگ کنم، ی بورسیه بگیرم و بشینم درس بخونم باز
نه اینکه نیاز داشته باشم به مدرک و ... اش
نه، فقط احساس می‌کنم شدیداً به استراحت نیاز دارم.

پ.ن :
این رو برای این هم گفتم که دیگه درخواست حل تمرین یا معرفی کسی برای حل تمرین‌‌هاتون رو برای من نفرستید 🌹
👍4220❤‍🔥1😢1👌1🐳1👀1🆒1
وقتی بالاخره صفحات وب و vscode , ...
پروژه‌هات رو می‌بندی چون همه تسک‌هارو قبل اسپرینت انجام دادی ...
مصرف رم از ۱۰۰ گیگ اومد روی ۲۳ گیگ
باقیش رو تمیز کنیم ببینیم به ۵ گیگ میرسه
کش ۴۹ گیگ آخه 😢

پ.ن : سعی می‌کنم وقتم که آزاد شد پست‌های مهم رو ادامه بدم حتما 🌹

پ.ن ۲ : تا ۳.۵ گیگ اومد
🌚194👍3😁2😎1
خیلی وقتا بهم میگن، اشتباه می‌کنی و وقتت رو الکی تلف می‌کنی که بجای خوندن فقط آموزش و یادگیری میری سورس کد رو میخونی ؛

هیچ‌وقت این موضوع رو جواب نمیدم و همیشه می‌گم حق با شماست، ولی به این آدما باید گفت :

خیلی باید رشد کنی، تا بفهمی چرا حتماً باید بعضی سورس کدها رو خوند.

حداقلش : کمک واضح به
System design, Optimization
هست.

مثلاً می‌دونستید
Coroutine
توی پایتون 3.5 کلا ۳۵۰ خط کد بوده، و پیاده سازیش با
generator
های پایتون بود ؟
برای همین می‌تونستیم خیلی راحت بهش فیچر اضافه کنیم (کاری که توی پروژه انجام دادیم)

تصویر مربوط به سورس کد coroutine روی python3.5
👍305💋21
Python Hints
خیلی وقتا بهم میگن، اشتباه می‌کنی و وقتت رو الکی تلف می‌کنی که بجای خوندن فقط آموزش و یادگیری میری سورس کد رو میخونی ؛ هیچ‌وقت این موضوع رو جواب نمیدم و همیشه می‌گم حق با شماست، ولی به این آدما باید گفت : خیلی باید رشد کنی، تا بفهمی چرا حتماً باید بعضی سورس…
حالا ی بحثی که پیش میاد این هست که چقدر باید سورس کد خوند و تا کجا ؟

اینکه هر پکیجی که دستمون میاد رو بریم سورس کدش رو بخونیم که عملاً واقعی نیست، کاش سرعت خوندن انقدر زیاد بود یا زمان زیادی داشتیم که خب اینطوری نیست و همین شاید زندگی رو ارزشمند کرده 🤔

ولی شخصاً مطالب و فیچرهای خیلی مهم پایتون رو حتماً سورس کداش رو میخونم (قرار نیست خط به خط دیباگ کنید)
باقی پکیج‌ها هم فقط مواردی که می‌دونم ازون روزی که یاد میگیرم به بعد قرار هست توی تموم پروژه‌هام ازش استفاده کنم و پول در بیارم

پکیج‌هایی که قراره فقط ۶ ماه باهاش کار کنم یا در حد ۱ پروژه هست رو هیچوقت اینکارو نمی‌کنم مگر اینکه مجبور بشم یا شرکت بخواد داخلش تغییرات ایجاد کنه.

این مرز بندی بسیار بسیار مهم هست که درست و بهینه باشه
28👍18❤‍🔥21👌1
Python Hints
#Quick من این اخطار‌ هارو همیشه زودتر به دوستان نزدیکم میگم گفتم ازین به بعد بعضی‌هاش رو اینجا هم بگم: اولین : asyncio رو هرچه زودتر یاد بگیرید، پترن‌ها و مفاهیم برنامه‌نویسی Async, Parallel, Concurent قبلتر تأکید زیادی روش نداشتم، اما دیر نیست (توی…
بعد از این پست، چندتا دوره آموزش
Async programming
برام فرستادید، بعضی موارد حتی از طرف افراد معروفی هست که متأسفانه وقتی ۱-۲ مورد رو نگاه کردم متوجه شدم کلاه‌برداری‌ هست

من بهترین منبع رو توی کانال گذاشتم : کتابی که بالاتر هست.
اما برای اینکه متوجه بشید دوره درست هست یا خیر؛

به زبان ساده :

ما بطور کلی ۲ نوع مشکل می‌تونیم داشته باشیم که کدهامون سرعت اجرا کندی داشته باشند :
۱- CPU bound
۲- I/O bound

مورد اول : وقتایی هست که شما پردازش خیلی زیادی داری، کد معطل خوندن دیتا از هارد، یاد دانلود دیتا و ... نیست و فقط و فقط خود پردازش کردن داده‌ها هست که داره زمان زیادی میگیره، به فرض اینکه کد بخوبی زده شده و تا حد خوبی اپتیمایز شده برای این نوع مسائل باید برید سراغ کتابخانه:
multiprocessing

مورد دوم : غیر از بچه‌های
Data science, data engineering
اکثر مواقع شما مشکلی که دارید روی این بخش هست، همونطور که می‌دونید پردازش CPU بسیار سریعتر از بخش‌های
I/O : Input / Output

هست، یعنی شما توی کسری از ثانیه محاسبات رو روی ۱ هسته از CPU های لپ‌تاپ یا سیستمتون انجام میدید ولی خوندن دیتا از هارد، رم یا حتی وقتی دارید
Crawler
می‌نویسید دانلود اون صفحه توسط پکیج requests هست که خیلی زمانبر هست نه پیدا کردن چندتا تگ توی html اون صفحه؛ هرچیزی غیر از CPU بمحض درگیر شدن کدهارو
I/O bound
می‌کنه، ولی خب به نسبت پردازش بهش نگاه می‌کنیم اگر از پردازش وقت بیشتری بگیره کدهای شما
I/O Blocking
هستند اگر از پردازش وقت کمتری بگیره کدهای شما
CPU Blocking

برای همین خیلی وقتا
Multiprocessing, Multithreading
توی پایتون، بهبود سرعتی که نمی‌ده هیچ اجرا رو کندتر هم می‌کنه (این چیزی هست که زیاد می‌شنوم و می‌فهمم طرفم حتی مفاهیم ساده علوم کامپیوتر رو هم نمی‌دونه و خودش رو برنامه‌نویس می‌دونه)

برای تسک‌های I/O blocking باید از
asyncio
استفاده کنید، اما صرف نوشتن
async, await

هیچ اتفاقی نمیوفته (اینو میلیاردها بار توی کدهای fastApi می‌بینید) await اصلا از خود کلمه‌اش مشخص هست (من همیشه اینطوری درس میدادم)
A wait
ی ذره صبر کنیم تا جواب این خط کد بیاد بعد ادامه میدیم، و همینجوری کیلویی استفاده کردنش هیچ کمکی نمی‌کنه

از طرف دیگه کتابخونه‌ای که توی پروژه
Async
استفاده میشه هم مهم هست، مثلاً برای ارسال درخواست روی web دیگه نمی‌تونید از requests استفاده کنید باید اون کتابخونه هم async رو پشتیبانی کنه مثلاً بعنوان جایگزین

HttpX, aiohttp



با این مطلب می‌تونید خیلی وقتا متوجه بشید ی دوره آموزش
asyncio
کلاهبرداری هست یا واقعی (چون خیلی از آدمهای بسیار معروف توی دنیای پایتون رو دیدم، که asyncio رو اشتباه تدریس می‌کنند.)

ولی بازم منبع اصلی کتابی هست که آخر پیام‌های پین شده گذاشتم برای
Async
👍54👏6211👌1
#موقت

کامنت‌های پست‌هارو فراموش نکنید
دوستان به نکات جذاب و ریزی اشاره می‌کنند 👌
23👍63🤪3
اینو همه‌ی سرمایه‌گذارهای پروژه و کد توی ایران حتما باید ببینند :
برای دولوپر‌های عزیز هم قبل از اینکه جوگیر بشید و بگید میخوام شرکت بزنم این رو ببینید (این بررسی فقط از جنبه‌های توسعه نرم‌افزار هست باقیش هیج)

https://www.youtube.com/watch?v=Dl-BdxNRUqs
👍22👎2
این جمله خیلی خیلی درسته
و هرکسی هم توی این جایگاه نیست که بتونه درست قضاوت کنه راجب نیاز به یک تکنولوژی

صرف اینکه گوگل؛ فیسبوک و … دارند ازش استفاده می کنند دلیل خوبی نیست که شما هم ازش استفاده کنید و اگر دلیلتون برای انتخاب یک تکنولوژی فقط همین هست احتمال بسیار زیاد توی این مسیر اشتباهات زیادی داشتید.
👏27👍9👎2🤔2