Dev Perfects
40 subscribers
9.23K photos
1.26K videos
468 files
13K links
بخوام خیلی خلاصه بگم
این کانال میاد مطالب کانالای خفن تو حوزه تکنولوژی و برنامه نویسی رو جمع میکنه

پست پین رو بخونید
https://t.iss.one/dev_perfects/455


ارتباط:
https://t.iss.one/HidenChat_Bot?start=936082426
Download Telegram
Forwarded from Ninja Learn | نینجا لرن (Denver)
خب خب خب، ‏Background Task ها توی FastAPI🚀
گاهی اوقات نیاز داریم که یه کاری بعد از ارسال پاسخ به کاربر انجام بشه. مثل ارسال ایمیل خوشامد گویی، ثبت لاگ یا آمار توی دیتابیس، پردازش فایل آپلود شده و .... توی این شرایط میتونیم از Background Task ها استفاده کنیم، اینجوری میتونیم بدون معطل کردن کاربر اون کارهارو جداگانه انجام بدیم.

استفاده از Background Task ها🛠
خب اول باید کلاس BackgroundTasks رو ایمپورت کنیم و یه پارامتر از همین نوع برای فانکشن route بنویسیم.
from fastapi import BackgroundTasks, FastAPI

app = FastAPI()


def write_notification(email: str, message=""):
with open("log.txt", mode="w") as email_file:
content = f"notification for {email}: {message}"
email_file.write(content)


@app.post("/send-notification/{email}")
async def send_notification(email: str, background_tasks: BackgroundTasks):
background_tasks.add_task(write_notification, email, message="some notification")
return {"message": "Notification sent in the background"}

حالا FastAPI میاد یه آبجکت با نوع BackgroundTasks برامون ایجاد میکنه و به اون پارامتر پاس میده.
بعد از اینکه فانکشن تسکمون رو ایجاد کردیم میتونیم با استفاده از متود ()add_task از همون پارامتر اون فانکشن رو به صف اجرا اضافه کنیم. همچنین میتونیم آرگومان های مورد نیازمون رو هم با استفاده از همین متود به تسکمون پاس بدیم.

‏Background Tasks و Dependency injection💉
‏Background Tasks به خوبی با سیستم تزریق وابستگی FastAPI سازگاره. میتونیم توی سطح های مختلف برنامه(فانکشن route، یه وابستگی و...) از Background Task استفاده کنیم.
from typing import Annotated

from fastapi import BackgroundTasks, Depends, FastAPI

app = FastAPI()


def write_log(message: str):
with open("log.txt", mode="a") as log:
log.write(message)


def get_query(background_tasks: BackgroundTasks, q: str | None = None):
if q:
message = f"found query: {q}\n"
background_tasks.add_task(write_log, message)
return q


@app.post("/send-notification/{email}")
async def send_notification(
email: str, background_tasks: BackgroundTasks, q: Annotated[str, Depends(get_query)]
):
message = f"message to {email}\n"
background_tasks.add_task(write_log, message)
return {"message": "Message sent"}

توی این مثال بعد از اینکه پاسخ به کلاینت ارسال شد، یه تسک میاد ایمیل کاربر رو توی فایل log.txt مینویسه. اگه یه کوئری پارامتر هم به API ارسال بشه یه تسک دیگه اون رو هم توی فایل مینویسه.

نکته مهم⚠️
این ابزار فقط برای کارهای سبک وسریع مناسبه. مثل همین لاگ نوشتن، ارسال ایمیل یا پردازش های خیلی کوچیک و سبک. برای کارهای سنگین تر مثل پردازش تصویر بهتره که از سیستم هایی مثل Celery استفاده بشه.

جمع بندی✍️
‏Background Task یه ابزار ساده ولی کاربردیه. میتونه توی پروژه هایی که تسک های سنگینی ندارن از Celery بی نیازتون کنه و کارهارو بعد از پاسخ دهی به صورت غیرهمزمان انجام بده.

#️⃣ #fastapi #python #backend


🥷🏻 CHANNEL | GROUP
Media is too big
VIEW IN TELEGRAM
🎬 مبارزه برای تعمیر
🐧 انیمیشنی راجب حق تعمیر


دو مهندس نرم‌افزار آزاد تلاش می‌کنند یک مشکل خطرناک در کد خودران خودرو رو برطرف کنند، اما این تازه آغاز ماجراست!

آن‌ها باید با شرکت انحصارطلب «دسیپتیکور» روبرو بشوند؛ جایی که نرم‌افزارهای بسته، کاربران رو کنترل می‌کنند.

این ویدیو بخشی از کمپین جدید FSF برای دفاع از حق تعمیره؛
اگرچه مقررات ایمنی برای وسایل نقلیه و دستگاه‌های خطرناک ضروری است، اما این نباید بهانه‌ای برای سلب حق تعمیر از کاربران باشد !
شرکت‌ها نباید به بهانه‌ی ایمنی، کاربران رو از حق تعمیر محروم کنند — آزادی تعمیر فقط با نرم‌افزار آزاد ممکنه.

حق تعمیر = آزادی کاربران

----------------------------
🌐 https://sudoshz.ir 
🆔 Shirazlinux Channel
🗨 Shirazlinux Group

#نرم‌افزار_آزاد #آزادی_دیجیتال #FSF #libreplanet2025 #freesoftware
#حق_تعمیر
Forwarded from Python Hints
داشتم تغییرات مربوط به Pi Python یا همون Python 3.14 رو می‌خوندم (پروژه‌های خودم رو میخوام منتقل کنم روی این نسخه) از این لینک:
What's new in Python 3.14

یک مورد جالب دیدم Pep 765 که :
Disallow return/break/continue that exit a finally block


داستان چیه؟ قطعا شما هم توی کدهای جنگو یا fastapi دیدید وقتایی که یک نفر try/except رو استفاده کرده و ارور‌ها رو لاگ میندازه و بعدش finally داره که یک return خاص انجام بده مثلا مقدار پیش‌فرض رو بفرسته.
تا اینجا هیچ مشکلی وجود نداره و برای همین هم خیلی‌ها نمی‌دونند که اینکار باعث مشکل میشه.

حالا فرض کنید توی اون exception شما بجای نوشتن لاگ raise انجام میدید تا توی بخش دیگری از پروژه اون Exception رو بتونید بهتر هندل کنید؛ اما وقتی Finally رو دارید که توش Return هم انجام میشه؛ چیزی که کد شما می‌بینه بعنوان response مربوط به اون try/except بلاک هیچوقت نمی‌تونه raise باشه (همیشه finally آخر از همه اجرا میشه)

پس هیچوقت کد شما raise ایی که نوشتید رو نشون نخواهد داد.

توی این نسخه چیکار کردن ؟
Syntax warning
اضافه کردند که اگر اینطوری کد زدید بهتون نشون بده که این مشکل وجود داره؛ ولی همچنان backward compatible بمونه.

خیلی هم عالی.
Forwarded from 🎄 یک برنامه نویس تنبل (The Lazy 🌱)
🔶 فریم ورک CSS با استایل گیت هاب با Primer Style

https://primer.style/

#css

@TheRaymondDev
Forwarded from یه شعر (Poem Bot)
مولانا | دیوان شمس | رباعیات | رباعی شمارهٔ ۱۰۱۳

ای روی چو آفتاب تو شادی کش
وی موی تو سرمایه ده جمله حبش
تنها تو خوشی و بس در این هر دو جهان
باقی تبع تواند گشته همه خوش

#مولانا | گنجور
📍@iipoem
Forwarded from Linuxor ?
با کلاینت beekeeper studio می‌تونید دیتابیس های خودتون رو مدیریت کنید، اکثر دیتابیس هارو ساپورت می‌کنه توی ورژن های بعدی هم قراره Redis و Snowflake رو ساپورت کنه :

github.com/beekeeper-studio/beekeeper-studio

@Linuxor
Forwarded from Linuxor ?
اومدن ویندوز 95 رو با الکترون ساختن !

الکترون یه فریمورک جاوااسکریپته که با HTML و CSS بهتون این اجازه رو می‌ده اپلیکیشن های دسکتاپ بسازین VsCode دیسکورد، اسکایپ، نوشن و فیگما همگی با الکترون ساخته شدن

github.com/felixrieseberg/windows95


@Linuxor
Forwarded from Linuxor ?
شاید باورتون نشه ولی این چیت شیت کل تایپ اسکریپته !

که شامل
+ ControlFlow Analysis
+ Interfaces
+ Classes
+ Types

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

@Linuxor
Forwarded from Linuxor ?
Forwarded from Linuxor ?
Forwarded from Linuxor ?
Forwarded from Golden Code (علی 🇨🇴)
📌 لیستی از اصول مهم در طراحی سیستم که نیازه بدونیم!

1. مفهوم Caching :
میتونیم از کش برای ذخیره نتایج کوئری‌های دیتابیس استفاده کنیم تا سرعت دسترسی به داده‌ها افزایش پیدا کنه و بار سرور کاهش یابد.


2. مفهوم Sharding:
تقسیم داده‌ها به بخش‌های کوچک‌تر و ذخیره اونا در سرورهای مختلف. این کار باعث میشه که سیستم بتونه بهتر و سریع‌تر به درخواست‌ها پاسخ بده.


3. مفهوم Load-balancing (توزیع بار):
وقتی تعداد request ها زیاد میشه، باید اونارو به طور مساوی بین چند سرور تقسیم کنیم تا از بار زیاد روی یک سرور جلوگیری بشه و سیستم کارایی بالاتری داشته باشه.


4. مفهوم Replication :
ایجاد کپی از داده‌ها در سرورهای مختلف تا در صورت بروز مشکل یا خرابی در یک سرور، سیستم همچنان فعال و در دسترس باشه.


5. مفهوم Fault-tolerance :
سیستم باید طوری طراحی بشه که در صورت بروز خطا یا مشکل، همچنان بتونه به کارش ادامه بده. مثلا در Laravel، میتونیم از ویژگی‌هایی نظیر retry برای انجام مجدد request ها درصورت بروز خطا استفاده کنیم.


6. مفهوم High-availability :
سیستم باید همیشه در دسترس باشه و هیچوقت از دسترس خارج نشه.

7. مفهوم Concurrency (همزمانی):
اجرای چندین کار به صورت همزمان برای افزایش سرعت پردازش.
مثلا در Laravel، می‌تونیم از Job Queues و Workers برای پردازش درخواست ها بصورت همزمان استفاده کنیم و ازین طریق عملکرد سیستم رو بهبود بدیم.


8. مفهوم Scalability :
توانایی سیستم برای گسترش و افزایش ظرفیت با افزایش تعداد کاربران.


9. مفهوم Performance :
سرعت و کارایی سیستم. در Laravel، میتونیم از تکنیک‌هایی مانند Caching و Eager Loading برای بهبود سرعت بارگذاری صفحات و کاهش زمان پاسخ‌دهی استفاده کنیم.


10. مفهوم Indexing :
ایجاد ایندکس‌ها در دیتابیس برای جستجو سریع‌تر داده‌ها. ایندکس‌ها به سرعت جستجو رو افزایش میدهند و باعث میشن که نتایج سریع‌تر منتقل بشن.

@GoldenCodeir
(منبع 👇🏾)
https://x.com/javinpaul/status/1920364568041160939?s=19
Forwarded from Geek Alerts
This media is not supported in your browser
VIEW IN TELEGRAM
هوآوی از سیستم عامل کامپیوتر اختصاصی خودش به اسم هارمونی او اس پی سی (یا هانگ‌منگ کامپیوتر تو چین) رونمایی کرد، این سیستم عامل بر پایه هارمونی او اس ساخته شده، ظاهرش شبیه مک او اس اپل هست و قراره ۱۹ می (حدودا ۲۹ اردیبهشت) عرضه بشه. میگن به صورت ویژه‌ای با هوش‌مصنوعی یکپارچه شده.

gsmarena
@geekalerts
Forwarded from Linuxor ?
من فقط می‌خواستم با Ctrl+C یه متن از ترمینال کپی کنم


@Linuxor
ابزار انسانی ساز متون
AI Humanizer

یعنی چی!؟ یعنی اینکه یه سری سایت بودن که به اساتید کمک میکردن که مقاله های دانشجوها رو باهاش چک کنن، یه وقت با هوش مصنوعی نوشته نشده باشه!
حالا اما،
با این ابزار مقاله های هوش مصنوعی رو جوری تغییر بدین که دیگه تمام اون سایت ها تشخیص ندن که یه ماشین متن رو نوشته!
بله .. واقعاً که .. 😳😃

https://youtu.be/YRdGoihEZrI?si=RRtZ5r12mtz1oDrA
Forwarded from 🎄 یک برنامه نویس تنبل (The Lazy 🌱)
This media is not supported in your browser
VIEW IN TELEGRAM
🔶 هواوی سیستم عامل اختصاصی HarmonyOS سازگار با هوش مصنوعی برای کامپیوتر و لب تاپ رونمایی کرد.

#خبر

@TheRaymondDev
Forwarded from Linuxor ?
می‌دونستین ادیتور وی اس کد بر پایه ادیتور monaco ساخته شده ؟ monaco یه ادیتور وبه برای ویرایش کردن کد و قسمت عجیب اینجاست هنوز ورژن 1 هم نداده بیرون و ورژن 0 هستش !

microsoft.github.io/monaco-editor


@Linuxor
Forwarded from Geek Alerts
بلوتوث ۶.۱ معرفی شد

نسخه ۶.۱ یه قابلیت جدید به اسم Randomized Resolvable Private Address (RPA) داره، این ویژگی ردیابی دستگاه‌های بلوتوثی رو سخت‌تر می‌کنه چون زمان‌بندی تغییر آدرسشون کاملا تصادفیه. این کار به افزایش حریم خصوصی و عمر باتری لوازم جانبی کمک می‌کنه چون تغییر آدرس به دستگاه اصلی منتقل میشه.

bluetooth
@geekalerts
Forwarded from یه شعر (Poem Bot)
مولانا | دیوان شمس | رباعیات | رباعی شمارهٔ ۸۹۶

در مصطبه ها گر دو خرابات نگر
پیچیدن مستان به ملاقات نگر
در کعبه عشق سوی میقات نگر
هیهات شنو ز روح و هیهات نگر

#مولانا | گنجور
📍@iipoem