TorhamDev | تورهام 😳 – Telegram
TorhamDev | تورهام 😳
2.84K subscribers
421 photos
49 videos
21 files
591 links
code, linux and anything related.

• YouTube
youtube.com/@techwithtori

• CodeNaline Podcast
@CodeNaline

• Group
@GothamProgrammers

• Github
github.com/TorhamDev

• Email
torhamdev@gmail.com
Download Telegram
link: https://youtu.be/lDl7HqFLL9s

آموزش FastAPI با تورهام، قسمت هفدهم - CRUD with SqlAlchmey: Delete

برای احترام به کاربر‌ها بیایید اکانتشون حذف کنیم 🥹. حذف در SqlAlchmey

#FastAPI_Course

👾 @TorhamDevCH
4🍾1
Forwarded from Nima Tech Talk 💻
مهاجرت به هلند و‌ اروپا، پیش نیاز های زیادی داره،
یکی از این پیشنیاز ها قطعا داشتن سافت اسکیل قویه

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

امیدوارم که این ویدئو تا حدی بتونه کمک کنه که مسیرتون هموارتر بشه

#مهاجرت #اروپا #هلند
#netherlands
#softskills

https://youtube.com/@nimfalife
https://youtube.com/@nima_hkh

https://youtu.be/jg5NCG7kwhU?si=Hr72Zev_SXs_T3VV
👍4
#بدرد
فقط اینکه شما بلد باشید با یک زبان برنامه نویسی یک پروژه رو به اتمام برسونید به معنی این نیست که شما یک 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
بعدا ریویو رو میزارم.
پایتون کلین کد من پی دی اف ۷۰ درصدش رو خوندم. اما نتونستم ادامه بدم دیجیتالی(من اینطوری ام چاپی واقعا راحت ترام)

و اون یکی Microservice APIs که خیلی براش هیجان دارم🤝
4👍1
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 🫥
🙏1
این کتاب فردا میخام فردا به یک نفر هدیه بدم. (قبلا هم حرفش بود) کلا دوتا شرط داره‌
۱. داخل گوگل فرم که میدم آیدیش رو بزنه
۲. اون آیدی جوین چنل تلگرام باشه

شب گوگل فرم رو میزارم. 🤝
8👍1👌1
میخام یک زبان برنامه‌نویسی بنویسم :)))))))
🎄13🌚6🤣51
link: https://youtu.be/_vWJgD30FjE

آموزش FastAPI با تورهام، قسمت هجده‌ام - Exception Handling

بیایید ارور‌ها درست هندل کنیم! 🗣
#FastAPI_Course

👾 @TorhamDevCH
👍1
TorhamDev | تورهام 😳
https://github.com/TorhamDev/Slow-Laggy بله داشتم میگفتم که من فاندر آهسته ترین زبان برنامه‌نویسی جهان هستم 🤝
همینک به صورت رسمی زبان slow laggy را به دنیا معرفی میکنم. کندترین زبان برنامه‌نویسی جهان!. قدرت گرفته از پایتون🗿🍻
👏7🤨2😨1
تبریک به علی برنده خوشانس
کتاب ها تمام نشده است!. نگران مباشید!
👍2🎃1
دوستان اولین باگ جهان.

👾 @TorhamDevCH
7
Forwarded from Python BackendHub
یک سوال نسبتا راحت دارم ازتون, یک نکته ای که باید خیلی بهش دقت کنید موقع کار کردن با fastapi

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


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
👍8