Forwarded from Nima Tech Talk 💻
مهاجرت به هلند و اروپا، پیش نیاز های زیادی داره،
یکی از این پیشنیاز ها قطعا داشتن سافت اسکیل قویه
من سعی کردم که نسبت به تجربه خودم گزینه هایی که نیاز داریم تقویت کنیم رو توضیح بدم همراه با کتابی که در تقویت اون گزینه خاص به من خیلی کمک کرد
امیدوارم که این ویدئو تا حدی بتونه کمک کنه که مسیرتون هموارتر بشه
#مهاجرت #اروپا #هلند
#netherlands
#softskills
https://youtube.com/@nimfalife
https://youtube.com/@nima_hkh
https://youtu.be/jg5NCG7kwhU?si=Hr72Zev_SXs_T3VV
یکی از این پیشنیاز ها قطعا داشتن سافت اسکیل قویه
من سعی کردم که نسبت به تجربه خودم گزینه هایی که نیاز داریم تقویت کنیم رو توضیح بدم همراه با کتابی که در تقویت اون گزینه خاص به من خیلی کمک کرد
امیدوارم که این ویدئو تا حدی بتونه کمک کنه که مسیرتون هموارتر بشه
#مهاجرت #اروپا #هلند
#netherlands
#softskills
https://youtube.com/@nimfalife
https://youtube.com/@nima_hkh
https://youtu.be/jg5NCG7kwhU?si=Hr72Zev_SXs_T3VV
👍4
Forwarded from DevTwitter | توییت برنامه نویسی
#بدرد
فقط اینکه شما بلد باشید با یک زبان برنامه نویسی یک پروژه رو به اتمام برسونید به معنی این نیست که شما یک Software engineer یا مهندس نرمافزار هستید.
یک مهندس نرمافزار توی سال 2023 نیازه که حداقل یکسری ابزار هارو بلد باشه و بتونه باهاشون کار کنه، خب بیاید ببینیم چه ابزارهایی...
- IDE | Editor
یک مهندس نرمافزار احتمالا بیشترین تایمش رو بابت کد زدن بگذرونه، پس نیازه که محیطی که توش کد میزنه رو خوب بشناسه.
پس اولین ابزار یک IDE یا ادیتور مناسبه که اون رو خوب بشناسه و بهش مسلط باشه تا با سرعت مناسبی بتونه پروسه کد زدن رو پیش ببره.
- Version control systems
برای مدیریت و توسعه سورس های کد نوشته شده و اشتراک گذاری و توسعه توسط بقیه برنامه نویس ها شما حتما حتما باید یک ورژن کنترل مثل گیت رو خوب بلد باشید تا بتونید در روند توسعه سریع و چابک باشید.
- Docker
دیگه توی این دوره هر مهندس نرم افزاری برای این که یک محیط Centralized رو بالا بیاره نیازه که داکر رو بلد باشه، حتما یادش بگیرید :)
- Testing tools
شما نیازه که ابزار ها و لایبرری های مورد استفاده جهت تست نرم افزارتون رو هم بلد باشید تا بتونید تست اتوماتیک داشته باشید
- Monitoring
یکسری ابزار ها هستن برای مانیتور کردن پرفومنس پروژه مثل Prometheus و Grafana که با استفاده ازشون میتونید پرفومنس پروژتون یا دیتابیستون رو مانیتور کنید و برای تحلیل هاتون ازشون استفاده کنید.
- Task management tools
کارها و تسک های هربرنامه نویس باید مشخص باشه که بتونه سرعتش در توسعه رو بالا ببره، در نتیجه دونستن یکسری ابزار مثل Jira که کارشون Task management و.. هست یک نیاز ضروریه.
- Logging
اما لاگ زدن و log tracking، اهمیتش توی یک پروژه به قدری مهمه که شما بعنوان مهندس نرم افزار برای کنترل بهتر روی پروژتون نباید ازش غافل بشید.
یکسری ابزار ها مثل Sentry بهتون کمک میکنن.
- CI/CD
شما با استفاده از CD/CD میتونید روند بیلد، تست و دیپلوی پروژتون رو اتوماتیک کنید و خیلی سرعت خودتون رو در روند توسعه نرم افزار بالاتر ببرید و ریسک خطا های بیلد و دیپلوی رو کاهش بدید، ابزار هایی مثل Jenkins یا حتی Gitlab به شما در این پروسه کمک میکنن.
- Gitlab | Github
خب ما گیت رو یادگرفتیم حالا چطور توی یک محیط اشتراکی کدهامون رو باهم به اشتراک بزاریم و کدهای همدیگه رو قبل از اعمال بررسی و کامنت بزاریم، یا اصلا این کدهارو کجا نگه داریم که فردا از دستشون ندیم؟ خب معلومه دیگه از گیتهاب یا گیتلب استفاده کنید.
- Message brokers
این روزا با بزرگ شدن پروژه هامون، نیاز به ارتباط بین اپلیکیشن ها حس میشه که یکی از روش های ارتباط برقرار کردن استفاده از Message broker هایی مثل Kafka یا RabbitMQ هستش و یادگیریشون امروزه تقریبا ضروری شده برای یک مهندس نرم افزار
- Linux
اصلا نیاز به توضیح نیست در مورد لینوکس، بعنوان یه مهندس نرم افزار تقریبا بیشتر سرورهایی که باهاشون سر و کار دارید لینوکسی هستند، و از سمتی احتمالا استفاده از لینوکس میتونه خیلی بهتون کمک کنه بعنوان دسکتاپتون
پس یادش بگیرید.
- Cloud platforms
این روزا تقریبا هرجایی که برید با Cloud سر و کار دارید و زیرساخت اکثر اپلیکیشنا توی محیط هایی مثل AWS و Google Cloud و Azure یا مشابهشون دارن میزبانی میشن، پس اینم احتمالا باید یادبگیرید خصوصا اگه قصد مهاجرت دارید.
@DevTwitter | <Reza/>
فقط اینکه شما بلد باشید با یک زبان برنامه نویسی یک پروژه رو به اتمام برسونید به معنی این نیست که شما یک Software engineer یا مهندس نرمافزار هستید.
یک مهندس نرمافزار توی سال 2023 نیازه که حداقل یکسری ابزار هارو بلد باشه و بتونه باهاشون کار کنه، خب بیاید ببینیم چه ابزارهایی...
- IDE | Editor
یک مهندس نرمافزار احتمالا بیشترین تایمش رو بابت کد زدن بگذرونه، پس نیازه که محیطی که توش کد میزنه رو خوب بشناسه.
پس اولین ابزار یک IDE یا ادیتور مناسبه که اون رو خوب بشناسه و بهش مسلط باشه تا با سرعت مناسبی بتونه پروسه کد زدن رو پیش ببره.
- Version control systems
برای مدیریت و توسعه سورس های کد نوشته شده و اشتراک گذاری و توسعه توسط بقیه برنامه نویس ها شما حتما حتما باید یک ورژن کنترل مثل گیت رو خوب بلد باشید تا بتونید در روند توسعه سریع و چابک باشید.
- Docker
دیگه توی این دوره هر مهندس نرم افزاری برای این که یک محیط Centralized رو بالا بیاره نیازه که داکر رو بلد باشه، حتما یادش بگیرید :)
- Testing tools
شما نیازه که ابزار ها و لایبرری های مورد استفاده جهت تست نرم افزارتون رو هم بلد باشید تا بتونید تست اتوماتیک داشته باشید
- Monitoring
یکسری ابزار ها هستن برای مانیتور کردن پرفومنس پروژه مثل Prometheus و Grafana که با استفاده ازشون میتونید پرفومنس پروژتون یا دیتابیستون رو مانیتور کنید و برای تحلیل هاتون ازشون استفاده کنید.
- Task management tools
کارها و تسک های هربرنامه نویس باید مشخص باشه که بتونه سرعتش در توسعه رو بالا ببره، در نتیجه دونستن یکسری ابزار مثل Jira که کارشون Task management و.. هست یک نیاز ضروریه.
- Logging
اما لاگ زدن و log tracking، اهمیتش توی یک پروژه به قدری مهمه که شما بعنوان مهندس نرم افزار برای کنترل بهتر روی پروژتون نباید ازش غافل بشید.
یکسری ابزار ها مثل Sentry بهتون کمک میکنن.
- CI/CD
شما با استفاده از CD/CD میتونید روند بیلد، تست و دیپلوی پروژتون رو اتوماتیک کنید و خیلی سرعت خودتون رو در روند توسعه نرم افزار بالاتر ببرید و ریسک خطا های بیلد و دیپلوی رو کاهش بدید، ابزار هایی مثل Jenkins یا حتی Gitlab به شما در این پروسه کمک میکنن.
- Gitlab | Github
خب ما گیت رو یادگرفتیم حالا چطور توی یک محیط اشتراکی کدهامون رو باهم به اشتراک بزاریم و کدهای همدیگه رو قبل از اعمال بررسی و کامنت بزاریم، یا اصلا این کدهارو کجا نگه داریم که فردا از دستشون ندیم؟ خب معلومه دیگه از گیتهاب یا گیتلب استفاده کنید.
- Message brokers
این روزا با بزرگ شدن پروژه هامون، نیاز به ارتباط بین اپلیکیشن ها حس میشه که یکی از روش های ارتباط برقرار کردن استفاده از Message broker هایی مثل Kafka یا RabbitMQ هستش و یادگیریشون امروزه تقریبا ضروری شده برای یک مهندس نرم افزار
- Linux
اصلا نیاز به توضیح نیست در مورد لینوکس، بعنوان یه مهندس نرم افزار تقریبا بیشتر سرورهایی که باهاشون سر و کار دارید لینوکسی هستند، و از سمتی احتمالا استفاده از لینوکس میتونه خیلی بهتون کمک کنه بعنوان دسکتاپتون
پس یادش بگیرید.
- Cloud platforms
این روزا تقریبا هرجایی که برید با Cloud سر و کار دارید و زیرساخت اکثر اپلیکیشنا توی محیط هایی مثل AWS و Google Cloud و Azure یا مشابهشون دارن میزبانی میشن، پس اینم احتمالا باید یادبگیرید خصوصا اگه قصد مهاجرت دارید.
@DevTwitter | <Reza/>
👍11👎1
https://youtu.be/XDGOyJ_vM38
این ویدیو بابی خیلی خوب بود. این موارد خیلیها رعایت نمیکنن( مثل خودم 😁) که خوب خوبه از این به بعد رعایت کنیم.
@TorhamDevCH
این ویدیو بابی خیلی خوب بود. این موارد خیلیها رعایت نمیکنن( مثل خودم 😁) که خوب خوبه از این به بعد رعایت کنیم.
@TorhamDevCH
YouTube
این ۱۰ تا کار رو توی داکر انجام نده - قسمت اول
توی این ویدیو راجع به ۱۰ تا کاری صحبت میکنیم که بهتره توی داکر انجام نشه و راه های جایگزین و بهتر رو معرفی میکنیم.
ویدیو قسمت دوم:
https://www.youtube.com/watch?v=O49ckjWZRJg
تایم لاین ویدیو
00:00 - معرفی
01:06 - داکر چیست؟
01:52 - استفاده از یوزر روت…
ویدیو قسمت دوم:
https://www.youtube.com/watch?v=O49ckjWZRJg
تایم لاین ویدیو
00:00 - معرفی
01:06 - داکر چیست؟
01:52 - استفاده از یوزر روت…
❤2
Wubba Lubba Dub Dub
• YouTube
https://youtube.com/@techwithtori
• Twitter
https://twitter.com/TorhamDev
• CodeNaline Podcast
@CodeNaline
• Group
@programmer_dudes
• Github
github.com/TorhamDev
• Email
torhamdev@gmail.com
new denoscription 🫥
• YouTube
https://youtube.com/@techwithtori
https://twitter.com/TorhamDev
• CodeNaline Podcast
@CodeNaline
• Group
@programmer_dudes
• Github
github.com/TorhamDev
torhamdev@gmail.com
new denoscription 🫥
🙏1
TorhamDev | تورهام 😳
میخام یک زبان برنامهنویسی بنویسم :)))))))
https://github.com/TorhamDev/Slow-Laggy
بله داشتم میگفتم که من فاندر آهسته ترین زبان برنامهنویسی جهان هستم 🤝
بله داشتم میگفتم که من فاندر آهسته ترین زبان برنامهنویسی جهان هستم 🤝
GitHub
GitHub - TorhamDev/Slow-Laggy: the slowest and most laggy programming language in the world!
the slowest and most laggy programming language in the world! - GitHub - TorhamDev/Slow-Laggy: the slowest and most laggy programming language in the world!
link: https://youtu.be/_vWJgD30FjE
آموزش FastAPI با تورهام، قسمت هجدهام - Exception Handling
بیایید ارورها درست هندل کنیم! 🗣
#FastAPI_Course
👾 @TorhamDevCH
آموزش FastAPI با تورهام، قسمت هجدهام - Exception Handling
بیایید ارورها درست هندل کنیم! 🗣
#FastAPI_Course
👾 @TorhamDevCH
👍1
TorhamDev | تورهام 😳
https://github.com/TorhamDev/Slow-Laggy بله داشتم میگفتم که من فاندر آهسته ترین زبان برنامهنویسی جهان هستم 🤝
همینک به صورت رسمی زبان slow laggy را به دنیا معرفی میکنم. کندترین زبان برنامهنویسی جهان!. قدرت گرفته از پایتون🗿🍻
👏7🤨2😨1
TorhamDev | تورهام 😳
https://github.com/TorhamDev/Slow-Laggy بله داشتم میگفتم که من فاندر آهسته ترین زبان برنامهنویسی جهان هستم 🤝
تبریک میگم اولین PR به زبان slow laggy همینک مرج شد!
🎉5🤣3
Forwarded from Python BackendHub
یک سوال نسبتا راحت دارم ازتون, یک نکته ای که باید خیلی بهش دقت کنید موقع کار کردن با fastapi
از ما خواسته شده یک روتری بنویسیم که به ساده ترین شکل ممکن بدون اینکه مشکلی برای اپلیکیشنمون به وجود بیاره به یک اپلیکیشنی یک درخواست بزنه و دیتاشو برگردونه.
ایراد کد رو پیدا کنید.
راهنمایی: کاری با اینکه تو روتر بهتره مستقیم درخواست نزنیم ندارم یا مثلا ارور هندلینگ خود درخواست. هدف این سوال یک مشکل خیلی بزرگ تره که کل اپلیکیشن رو تحت شعاع قرار میده.
@ManiFoldsPython
از ما خواسته شده یک روتری بنویسیم که به ساده ترین شکل ممکن بدون اینکه مشکلی برای اپلیکیشنمون به وجود بیاره به یک اپلیکیشنی یک درخواست بزنه و دیتاشو برگردونه.
from fastapi import FastAPI
import requests
app = FastAPI()
@app.post("/crawl")
async def crawl_website(job_data: str):
return requests.get("https://mywebsite.com")
ایراد کد رو پیدا کنید.
راهنمایی: کاری با اینکه تو روتر بهتره مستقیم درخواست نزنیم ندارم یا مثلا ارور هندلینگ خود درخواست. هدف این سوال یک مشکل خیلی بزرگ تره که کل اپلیکیشن رو تحت شعاع قرار میده.
@ManiFoldsPython
👍3
Forwarded from Python BackendHub
تو کامنتا خیلی سریع به جواب اشاره کردن, وقتی دارین با فست یا هر asgi دیگه ای کار میکنید باید حواستون باشه, که به هیچ وجه هیچ جایی از اپلیکیشنتون تسک IO باند نداشته باشین که بلاک کنه main thread تون رو.
چرا؟چون بای دیفالت روتر async رو ترد اصلی process ران میشه, بنابراین اگه بلاک شه هم ترد اصلیتون بلاک میشه هم process یعنی تو اون پروسه و ورکر دیگه نمیتونید هیچ درخواستی رو return کنید.
راه حلش چیه؟
https://asgi.readthedocs.io/en/latest/introduction.html#wsgi-compatibility
تو fastapi شما میتونید همچنان کدتون رو با sync هم ران کنید. اگه روترتون io bound داره که sync عه و بلاک میکنه میتونید روترتون رو sync کنید. اتفاقی که اون پشت میفته اینه که fastapi میاد درخواست شما رو تو یک ترد جدا هندل میکنه. داخل asgiref هم نمونه مشابهش هست, که sync_to_async هست. خودتونم میتونید مشابهشو بنویسید و تو executor thread ران کنید کنار بقیه کد های async تون. میتونید از لایبری سباستین asyncer هم استفاده کنید که داخلش از AnyIO استفاده کرده که typingتون رو خراب نمیکنه و فیچر های خوبی داره:
https://github.com/tiangolo/asyncer
اما یادتون نره که پرفومنسی تو تسک های IO همیشه async بهتره از thread چون کم هزینه تره, کانتکس سوییچ نداره, استفاده کامل تری از ریسورستون میکنید و البته cpu bound هم بخاطر وجود GIL فعلا تو پایتون تفاوتی ایجاد نمیکنه. نکته ای که باید دقت کنید بهش لایبری که استفاده میکنید بهتره در درجه اول native async باشه یعنی واقعا async باشه و رو یک ترد non blocking کارشو انجام بده. اگه لایبری mature یا خوبی پیدا نکردین در درجه دوم میتونید از همین تکنیکی که گفتم استفاده کنید.
میتونید مقاله زیر رو بخونید که یکم بیشتر با ساختار و معماری asgi و wsgi آشنا شین:
https://medium.com/p/807158ed1d4c
@ManiFoldsPython
چرا؟چون بای دیفالت روتر async رو ترد اصلی process ران میشه, بنابراین اگه بلاک شه هم ترد اصلیتون بلاک میشه هم process یعنی تو اون پروسه و ورکر دیگه نمیتونید هیچ درخواستی رو return کنید.
راه حلش چیه؟
https://asgi.readthedocs.io/en/latest/introduction.html#wsgi-compatibility
تو fastapi شما میتونید همچنان کدتون رو با sync هم ران کنید. اگه روترتون io bound داره که sync عه و بلاک میکنه میتونید روترتون رو sync کنید. اتفاقی که اون پشت میفته اینه که fastapi میاد درخواست شما رو تو یک ترد جدا هندل میکنه. داخل asgiref هم نمونه مشابهش هست, که sync_to_async هست. خودتونم میتونید مشابهشو بنویسید و تو executor thread ران کنید کنار بقیه کد های async تون. میتونید از لایبری سباستین asyncer هم استفاده کنید که داخلش از AnyIO استفاده کرده که typingتون رو خراب نمیکنه و فیچر های خوبی داره:
https://github.com/tiangolo/asyncer
اما یادتون نره که پرفومنسی تو تسک های IO همیشه async بهتره از thread چون کم هزینه تره, کانتکس سوییچ نداره, استفاده کامل تری از ریسورستون میکنید و البته cpu bound هم بخاطر وجود GIL فعلا تو پایتون تفاوتی ایجاد نمیکنه. نکته ای که باید دقت کنید بهش لایبری که استفاده میکنید بهتره در درجه اول native async باشه یعنی واقعا async باشه و رو یک ترد non blocking کارشو انجام بده. اگه لایبری mature یا خوبی پیدا نکردین در درجه دوم میتونید از همین تکنیکی که گفتم استفاده کنید.
میتونید مقاله زیر رو بخونید که یکم بیشتر با ساختار و معماری asgi و wsgi آشنا شین:
https://medium.com/p/807158ed1d4c
@ManiFoldsPython
GitHub
GitHub - fastapi/asyncer: Asyncer, async and await, focused on developer experience.
Asyncer, async and await, focused on developer experience. - fastapi/asyncer
👍8
دیزاین پترن Factory یکی از الگوهای مهم برنامه نویسی است.
فکر کنید که شما باید آبجکتی با یک سری خصوصیات و عملکردهای خاص بسازید. حالت اولیه این است که شما یک کلاس را مستقیماً مینویسید و یک آبجکت از آن ایجاد میکنید.اما ممکن است به دلایل مختلف شما نخواهید کلاس را مستقیماً بسازید. به جای آن از factory استفاده میکنید.
در اینجا کلاسی به عنوان FactoryClass تعریف میکنیم که یک متد build را دارد. این متد یک instance از کلاس مورد نظر شما را برای شما ایجاد میکند و آن را برمیگرداند.
برای استفاده از این الگو، شما ابتدا یک instance از کلاس factory را ایجاد میکنید و سپس با فراخوانی متد build آن را با نوع مورد نظر شما، instance از کلاس مورد نظر بسازید.
این الگو بسیار پرکاربرد است و به راحتی میتوان با آن آبجکتهای مختلفی در زمان اجرا به سادگی ایجاد کرد.
امیدوارم که این مطلب برای شما مفید بوده باشد. برای کسب اطلاعات بیشتر در این مورد، میتوانید به منابع زیر مراجعه کنید:
- https://refactoring.guru/design-patterns/factory-method
- https://realpython.com/factory-method-python/
نوشته شده توسط هوش فیک 😆
👾 @TrohamDevCH
فکر کنید که شما باید آبجکتی با یک سری خصوصیات و عملکردهای خاص بسازید. حالت اولیه این است که شما یک کلاس را مستقیماً مینویسید و یک آبجکت از آن ایجاد میکنید.اما ممکن است به دلایل مختلف شما نخواهید کلاس را مستقیماً بسازید. به جای آن از factory استفاده میکنید.
در اینجا کلاسی به عنوان FactoryClass تعریف میکنیم که یک متد build را دارد. این متد یک instance از کلاس مورد نظر شما را برای شما ایجاد میکند و آن را برمیگرداند.
class FactoryClass:
def build(self, type):
if type == 'TypeA':
return TypeA()
elif type == 'TypeB':
return TypeB()
برای استفاده از این الگو، شما ابتدا یک instance از کلاس factory را ایجاد میکنید و سپس با فراخوانی متد build آن را با نوع مورد نظر شما، instance از کلاس مورد نظر بسازید.
factory = FactoryClass()
object_a = factory.build('TypeA')
این الگو بسیار پرکاربرد است و به راحتی میتوان با آن آبجکتهای مختلفی در زمان اجرا به سادگی ایجاد کرد.
امیدوارم که این مطلب برای شما مفید بوده باشد. برای کسب اطلاعات بیشتر در این مورد، میتوانید به منابع زیر مراجعه کنید:
- https://refactoring.guru/design-patterns/factory-method
- https://realpython.com/factory-method-python/
👾 @TrohamDevCH
refactoring.guru
Factory Method
Factory Method is a creational design pattern that provides an interface for creating objects in a superclass, but allows subclasses to alter the type of objects that will be created.
❤4👌2
asyncio.wait_for
این کد یک نمونه از استفادهی asyncio.wait_for در برنامهنویسی پایتون است. زمانی که برنامه اجرا میشود، ممکن است که یک عملیات تحت شبکه، مانند ایجاد یک اتصال TCP، زمان بیشتری از حالت معمول برای تکمیل نیاز داشته باشد. در این صورت، استفاده از تابع wait_for، به برنامه نویس این قابلیت را میدهد تا دیگر از حد مورد موردنیاز بیشتر منتظر اتمام عملیات نماند.
در کد ارائه بالا، به جای منتظر ماندن برای اتمام تسک، با استفاده از تابع
در مثال بالا،
مقاله خوب برای مطالعه بیشتر:
- https://superfastpython.com/asyncio-wait_for/
👾 @TrohamDevCH
...
# execute a task with a timeout
try:
# wait for a task to complete
await asyncio.wait_for(coro, timeout=1)
except asyncio.TimeoutError:
# ...
این کد یک نمونه از استفادهی asyncio.wait_for در برنامهنویسی پایتون است. زمانی که برنامه اجرا میشود، ممکن است که یک عملیات تحت شبکه، مانند ایجاد یک اتصال TCP، زمان بیشتری از حالت معمول برای تکمیل نیاز داشته باشد. در این صورت، استفاده از تابع wait_for، به برنامه نویس این قابلیت را میدهد تا دیگر از حد مورد موردنیاز بیشتر منتظر اتمام عملیات نماند.
در کد ارائه بالا، به جای منتظر ماندن برای اتمام تسک، با استفاده از تابع
asyncio.wait_for، حداکثر یک ثانیه منتظر تکمیل تسک میمانیم. اگر تسک در زمان مشخص شده تکمیل نشود، یک asyncio.TimeoutError رخ میدهد.در مثال بالا،
coro میتواند هر گونه coroutine باشد که بتواند در asyncio event loop اجرا شود. با استفاده از تابع asyncio.wait_for، عملیات مشخص شده در این coroutine زمان بیشتری از زمان مشخص شده برای تکمیل آن اجرا شود. به عنوان مثال، ممکن است این coroutine انتظار داشته باشد که اتصالی به یک سرور خاص برقرار شود، اما برای برقراری این اتصال، ممکن است زمان زیادی لازم باشد. با استفاده از asyncio.wait_for، میتوانیم فرآیند اتصال را به حداکثر یک ثانیه محدود کنیم تا از به هم ریختگی برنامه جلوگیری شود. در صورتی که در یک ثانیه اتصال برقرار نشود، یک asyncio.TimeoutError ایجاد میشود که میتواند به عنوان اعلام خطا به کار برود.مقاله خوب برای مطالعه بیشتر:
- https://superfastpython.com/asyncio-wait_for/
👾 @TrohamDevCH
Super Fast Python
Asyncio wait_for() to Wait With a Timeout - Super Fast Python
It is a good practice that any waiting performed in an asyncio program be limited to a timeout. Asyncio provides a way to wait on another task with a timeout via the asyncio.wait_for() function. If the timeout elapses before the task completes, the task is…
👏3