Why FastAPI Became the Go-To Choice for Modern Python APIs ?
یه تیم توسعه توی یکی از پروژههاش تصمیم گرفت بهجای Flask از FastAPI استفاده کنه.
نتیجه؟ کار سریعتر، تمیزتر و خیلی روانتر از انتظارشون پیش رفت.
توی تجربهشون به این نتایج رسیدن:
سرعت بالا در توسعه:
اندپوینتها با کمترین کد و بیشترین خوانایی ساخته میشدن.
اجرای async واقعاً کمک کرد:
توی بخشهای I/O-bound، سرعت پاسخدهی بهتر شد و لگها کمتر شدن.
تولید Swagger خودکار یک مزیت بزرگ بود:
مستندات بدون هیچ دردسری تولید شد و هماهنگی با تیم فرانت خیلی راحتتر انجام شد.
کتابخونه Pydantic کار رو امنتر و مرتبتر کرد:
اعتبارسنجی دادهها دقیق، سریع و بدون دردسر انجام میشد.
تجربه این تیم نشون داد FastAPI برای ساخت APIهای سبک، مدرن و سریع، یک انتخاب هوشمندانه و دوستداشتنیه — مخصوصاً وقتی سرعت، سادگی و تمیزی کد اهمیت داشته باشه.
@DevTwitter | <MohammadReza RabieZadeh/>
یه تیم توسعه توی یکی از پروژههاش تصمیم گرفت بهجای Flask از FastAPI استفاده کنه.
نتیجه؟ کار سریعتر، تمیزتر و خیلی روانتر از انتظارشون پیش رفت.
توی تجربهشون به این نتایج رسیدن:
سرعت بالا در توسعه:
اندپوینتها با کمترین کد و بیشترین خوانایی ساخته میشدن.
اجرای async واقعاً کمک کرد:
توی بخشهای I/O-bound، سرعت پاسخدهی بهتر شد و لگها کمتر شدن.
تولید Swagger خودکار یک مزیت بزرگ بود:
مستندات بدون هیچ دردسری تولید شد و هماهنگی با تیم فرانت خیلی راحتتر انجام شد.
کتابخونه Pydantic کار رو امنتر و مرتبتر کرد:
اعتبارسنجی دادهها دقیق، سریع و بدون دردسر انجام میشد.
تجربه این تیم نشون داد FastAPI برای ساخت APIهای سبک، مدرن و سریع، یک انتخاب هوشمندانه و دوستداشتنیه — مخصوصاً وقتی سرعت، سادگی و تمیزی کد اهمیت داشته باشه.
@DevTwitter | <MohammadReza RabieZadeh/>
👍40🍌6❤5👎1
تابع Throttle چیه و چرا انقدر مهمه؟
Throttle کاری میکنه یک تابع فقط در بازههای زمانی مشخص اجرا بشه، حتی اگر کاربر چندینبار پشتسرهم یه رفتار رو تکرار کنه.
مثلاً کاربر اسکرول میکنه. حتی اگه در یک ثانیه ۱۰۰ بار اسکرول اتفاق بیفته، تابع فقط هر ۲۰۰ میلیثانیه یکبار اجرا میشه.
یعنی اجراها محدود و کنترلشده میشن، و برنامه سبکتر و روانتر کار میکنه.
@DevTwitter | <Reza Shorche/>
Throttle کاری میکنه یک تابع فقط در بازههای زمانی مشخص اجرا بشه، حتی اگر کاربر چندینبار پشتسرهم یه رفتار رو تکرار کنه.
مثلاً کاربر اسکرول میکنه. حتی اگه در یک ثانیه ۱۰۰ بار اسکرول اتفاق بیفته، تابع فقط هر ۲۰۰ میلیثانیه یکبار اجرا میشه.
یعنی اجراها محدود و کنترلشده میشن، و برنامه سبکتر و روانتر کار میکنه.
@DevTwitter | <Reza Shorche/>
👍37❤5👎1🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
شاید موقع انجام پروژه های طراحی سایت دنبال آیکون های متنوع میگردی که رایگان هم باشه !
دیگه وقتشه این مشکل رو بذاری کنار!
من سه تا سایت توپ پیدا کردم که پر از آیکونهای حرفهای و آمادهست:
️ برای وبسایت و اپلیکیشن
️ قابل شخصیسازی با رنگ و سایز دلخواه
️ رایگان و سریع برای هر پروژه
از این به بعد، هیچوقت کمبود آیکون اذیتت نمیکنه فقط انتخاب کن و استفاده کن.
Link 1 / app.iconsax.io
Link 2 / noscriptrepo.com
Link 3 / noscriptviewer.dev
@DevTwitter | <Abolfazl Shekarshekan/>
دیگه وقتشه این مشکل رو بذاری کنار!
من سه تا سایت توپ پیدا کردم که پر از آیکونهای حرفهای و آمادهست:
️ برای وبسایت و اپلیکیشن
️ قابل شخصیسازی با رنگ و سایز دلخواه
️ رایگان و سریع برای هر پروژه
از این به بعد، هیچوقت کمبود آیکون اذیتت نمیکنه فقط انتخاب کن و استفاده کن.
Link 1 / app.iconsax.io
Link 2 / noscriptrepo.com
Link 3 / noscriptviewer.dev
@DevTwitter | <Abolfazl Shekarshekan/>
❤16👍2🍌2🔥1
میخوام تجربهی خودم از کار با Filament PHP رو به اشتراک بذارم.
من بهتازگی با این پکیج آشنا شدم و واقعاً تحت تأثیر سادگی و قدرتش قرار گرفتم.
اما اصلاً Filament چی هست؟
به زبان ساده، یه فریمورک فوقالعاده برای ساخت پنلهای ادمین در Laravel هست که با استفاده از Livewire و TailwindCSS توسعه داده شده.
با Filament میتونید انواع مختلف پنلهای مدیریتی رو خیلی سریع بسازید، مثل:
سیستمهای مدیریت محتوا (CMS)
پنلهای CRM برای مدیریت مشتریها
مدیریت فروشگاههای آنلاین
یا هر نوع پنل اختصاصی که تو پروژهتون نیاز دارید.
مزیت بزرگش چیه؟
سرعت توسعه رو چندین برابر میکنه.
کارهایی که معمولاً در لاراول و لایووایر باید کلی کد و تنظیمات برایش بنویسید، در Filament فقط با چند دستور ساده و تعریف چند کلاس انجام میشه.
از قابلیتهایی که خیلی به نظرم جذاب بودن:
ساخت خودکار CRUD برای مدلها با چند دستور ساده
ویجتهای داشبورد برای نمایش آمار و دادههای مهم
سیستم Policy و Permission برای کنترل سطح دسترسی کاربران
پشتیبانی از Localization (از جمله زبان فارسی )
قابلیت تعریف Resource، Relation Manager و Form Builder برای ساخت فرمها و جدولها به شکل کاملاً داینامیک
طراحی پیشفرض زیبا و ریسپانسیو با Tailwind
پشتیبانی از Custom Widgets و Plugins برای گسترش امکانات
و حتی Filament Shield برای مدیریت Role & Permission بهصورت گرافیکی
واقعا از کار باهاش لذت بردم
بهویژه وقتی دیدم چقدر راحت میشه یه پنل حرفهای با طراحی تمیز و ساختار منظم ساخت.
اگر شما هم نیاز دارید توی پروژههاتون پنل ادمین سریع و تمیزی بسازید، حتما یه سر به Filament بزنید.
و اگه تجربه یا نکتهای در مورد استفاده ازش دارید، خیلی خوشحال میشم توی کامنتها به اشتراک بذارید
@DevTwitter | <Mohammadreza Mirshafie/>
من بهتازگی با این پکیج آشنا شدم و واقعاً تحت تأثیر سادگی و قدرتش قرار گرفتم.
اما اصلاً Filament چی هست؟
به زبان ساده، یه فریمورک فوقالعاده برای ساخت پنلهای ادمین در Laravel هست که با استفاده از Livewire و TailwindCSS توسعه داده شده.
با Filament میتونید انواع مختلف پنلهای مدیریتی رو خیلی سریع بسازید، مثل:
سیستمهای مدیریت محتوا (CMS)
پنلهای CRM برای مدیریت مشتریها
مدیریت فروشگاههای آنلاین
یا هر نوع پنل اختصاصی که تو پروژهتون نیاز دارید.
مزیت بزرگش چیه؟
سرعت توسعه رو چندین برابر میکنه.
کارهایی که معمولاً در لاراول و لایووایر باید کلی کد و تنظیمات برایش بنویسید، در Filament فقط با چند دستور ساده و تعریف چند کلاس انجام میشه.
از قابلیتهایی که خیلی به نظرم جذاب بودن:
ساخت خودکار CRUD برای مدلها با چند دستور ساده
ویجتهای داشبورد برای نمایش آمار و دادههای مهم
سیستم Policy و Permission برای کنترل سطح دسترسی کاربران
پشتیبانی از Localization (از جمله زبان فارسی )
قابلیت تعریف Resource، Relation Manager و Form Builder برای ساخت فرمها و جدولها به شکل کاملاً داینامیک
طراحی پیشفرض زیبا و ریسپانسیو با Tailwind
پشتیبانی از Custom Widgets و Plugins برای گسترش امکانات
و حتی Filament Shield برای مدیریت Role & Permission بهصورت گرافیکی
واقعا از کار باهاش لذت بردم
بهویژه وقتی دیدم چقدر راحت میشه یه پنل حرفهای با طراحی تمیز و ساختار منظم ساخت.
اگر شما هم نیاز دارید توی پروژههاتون پنل ادمین سریع و تمیزی بسازید، حتما یه سر به Filament بزنید.
و اگه تجربه یا نکتهای در مورد استفاده ازش دارید، خیلی خوشحال میشم توی کامنتها به اشتراک بذارید
@DevTwitter | <Mohammadreza Mirshafie/>
👍28👎2🔥1
خبر بد «MinIO رسماً مُرد…»
تغییر مهم در MinIO: ورود رسمی به Maintenance Mode
امروز یک تغییر بسیار مهم در ریپازیتوری MinIO منتشر شد.
در کامیت 27742d469462e1561c776f88ca7a1f26816d69e2، تیم MinIO بهصورت رسمی اعلام کرده که نسخهٔ متنباز MinIO وارد حالت نگهداری (Maintenance Mode) شده است.
یعنی چه؟
توسعهٔ فعال روی نسخهٔ متنباز متوقف شده است
فقط باگهای امنیتی بسیار حیاتی ممکن است بررسی شوند
هیچ قابلیت جدید یا بهبود عمدهای دیگر اضافه نمیشود
تیم MinIO عملاً توسعه و انرژی خود را به سمت AIStor (نسخه Enterprise) منتقل کرده است
این یعنی نسخهٔ Community عملاً پایان راه توسعهاش را تجربه میکند.
چرا این مهم است؟
ابزار MinIO یکی از پرکاربردترین S3-Compatible Object Storageهای جهان—بهخصوص در محیطهای On-Premise و دیتاسنترهای سازمانی—بود.
این تغییر روی بسیاری از شرکتها، تیمهای DevOps، محصولاتی که روی MinIO ساخته شدهاند و حتی تصمیمهای آینده درباره معماری ذخیرهسازی تأثیر میگذارد.
این تغییر برای شما یعنی چه؟
اگر در شرکت یا پروژهتان از MinIO استفاده میکنید:
حتماً وضعیت آیندهٔ پروژه را بازبینی کنید
برای نیازهای بلندمدت، به فکر مهاجرت یا استفاده از نسخههای Enterprise باشید
یا گزینههای جایگزین مثل Ceph، SeaweedFS، Garage، Zenko و… را ارزیابی کنید
https://github.com/minio/minio/commit/27742d469462e1561c776f88ca7a1f26816d69e2
@DevTwitter | <Hadi Tayanloo/>
تغییر مهم در MinIO: ورود رسمی به Maintenance Mode
امروز یک تغییر بسیار مهم در ریپازیتوری MinIO منتشر شد.
در کامیت 27742d469462e1561c776f88ca7a1f26816d69e2، تیم MinIO بهصورت رسمی اعلام کرده که نسخهٔ متنباز MinIO وارد حالت نگهداری (Maintenance Mode) شده است.
یعنی چه؟
توسعهٔ فعال روی نسخهٔ متنباز متوقف شده است
فقط باگهای امنیتی بسیار حیاتی ممکن است بررسی شوند
هیچ قابلیت جدید یا بهبود عمدهای دیگر اضافه نمیشود
تیم MinIO عملاً توسعه و انرژی خود را به سمت AIStor (نسخه Enterprise) منتقل کرده است
این یعنی نسخهٔ Community عملاً پایان راه توسعهاش را تجربه میکند.
چرا این مهم است؟
ابزار MinIO یکی از پرکاربردترین S3-Compatible Object Storageهای جهان—بهخصوص در محیطهای On-Premise و دیتاسنترهای سازمانی—بود.
این تغییر روی بسیاری از شرکتها، تیمهای DevOps، محصولاتی که روی MinIO ساخته شدهاند و حتی تصمیمهای آینده درباره معماری ذخیرهسازی تأثیر میگذارد.
این تغییر برای شما یعنی چه؟
اگر در شرکت یا پروژهتان از MinIO استفاده میکنید:
حتماً وضعیت آیندهٔ پروژه را بازبینی کنید
برای نیازهای بلندمدت، به فکر مهاجرت یا استفاده از نسخههای Enterprise باشید
یا گزینههای جایگزین مثل Ceph، SeaweedFS، Garage، Zenko و… را ارزیابی کنید
https://github.com/minio/minio/commit/27742d469462e1561c776f88ca7a1f26816d69e2
@DevTwitter | <Hadi Tayanloo/>
🍌16👍9❤5👎4
AgriFarm – سامانه تصمیم یار مدیریت کشاورزی هوشمند
بهینه سازی مصرف آب و انرژی
پیشنهاد محصول کم آب بر و سودآور
تصمیم گیری داده محور برای احیای دریاچه ارومیه
https://github.com/naserhha/AgriFarm
* خیلی متوجه پروژه نشدم :)))
@DevTwitter | <Mohammad Nasser Haji Hashemabad/>
بهینه سازی مصرف آب و انرژی
پیشنهاد محصول کم آب بر و سودآور
تصمیم گیری داده محور برای احیای دریاچه ارومیه
https://github.com/naserhha/AgriFarm
* خیلی متوجه پروژه نشدم :)))
@DevTwitter | <Mohammad Nasser Haji Hashemabad/>
👍30❤9👎9🍌4
خب امروز UI هم برای PyRadiusنوشتم و یکم ریزه کاری داره که دیگه پروندهش بسته بشه و بشینه گوشه گیتهاب نون و ماستشو بخوره
کار منو که خیلی خوب راه انداخت و به نظرم برای جایی که فوری فوتی یه Radius Server جمع و جور و ساده لازمه واقعن خوب کار میکنه
سه روز و حدود ١٠ دلار برای AI Agent هایی که زحمت کشیدن کد رو برام نوشتن
@DevTwitter | <Amir Fouladvand IRAN/>
کار منو که خیلی خوب راه انداخت و به نظرم برای جایی که فوری فوتی یه Radius Server جمع و جور و ساده لازمه واقعن خوب کار میکنه
سه روز و حدود ١٠ دلار برای AI Agent هایی که زحمت کشیدن کد رو برام نوشتن
@DevTwitter | <Amir Fouladvand IRAN/>
🔥11🍌4👎3
دوستانی که با ویندوز کار میکنن این برنامه رو مخصوص ویندوز درست کردم. چیز خاصی نداره کلا یه ایده بوده که با Ai درست کردم. خیلی کاربردیه شما هم استفاده کنید.
https://github.com/Mostoul/WinEasyTools/releases/
@DevTwitter | <Mostafa/>
https://github.com/Mostoul/WinEasyTools/releases/
@DevTwitter | <Mostafa/>
1🍌21👍16👎8🔥5
وقتی Next.js میشه راه ورود هکرها ️
آسیب پذیری جدیدی که داخل react-server و next.js کشف شده باعث میشه که هکر بدون احراز هویت دسترسی اجرا کد از راه دور(RCE) روی سرور بگیره. ️
من با شودان چندتا سرور هایی که next.js هستن رو پیدا کردم و با nuclei تست زدم؛ همون طور که میبیند سرور های آسیب پذیر خیلی زیاد هستن. حدود 890 تا سرور آسیب پذیر پیدا کردم که می شد دسترسی بگیرم.
خلاصه که سریع پکیج هاتون آپدیت کنید که هک نشید
پ.ن: راستی اسمی که روش گذاشت react2shell هست. ولی شناسه اشCVE-2025-55182 هست .
لینک مربوط به توضیحات: https://react2shell.com/
@DevTwitter | <Rahman Hosseinzadeh/>
آسیب پذیری جدیدی که داخل react-server و next.js کشف شده باعث میشه که هکر بدون احراز هویت دسترسی اجرا کد از راه دور(RCE) روی سرور بگیره. ️
من با شودان چندتا سرور هایی که next.js هستن رو پیدا کردم و با nuclei تست زدم؛ همون طور که میبیند سرور های آسیب پذیر خیلی زیاد هستن. حدود 890 تا سرور آسیب پذیر پیدا کردم که می شد دسترسی بگیرم.
خلاصه که سریع پکیج هاتون آپدیت کنید که هک نشید
پ.ن: راستی اسمی که روش گذاشت react2shell هست. ولی شناسه اشCVE-2025-55182 هست .
لینک مربوط به توضیحات: https://react2shell.com/
@DevTwitter | <Rahman Hosseinzadeh/>
❤25👍9🔥2
رقابت نفسگیر دو غول هوش مصنوعی، gemini لرزه به تن chatGpt انداخت
در حالی که هوش مصنوعی chatGpt تا همین چند وقت پیش در عرصه رقابت بیرقیب بود، حالا با یک حریف قدرتمند به نام gemini روبهرو شده
رد پای گوگل در پیکار با کمپانیهای بزرگ همیشه جالب بوده:
رقابت با موتور جستجوی یاهو که اونو زمین زد، با مرورگر اکسپلورر مایکروسافت که chrome برنده شد، با سیستم عامل ios اپل که اندروید معرفی کرد و همچنان نمیشه گفت کدوم بهتره و حالا هم با openai که داره پرقدرت پیش میره
انگار هر وقت یه محصول جدید معرفی میشه که قراره کاربردی باشه، گوگل میاد و میگه منم هستم!!
@DevTwitter | <Amir Hossein/>
در حالی که هوش مصنوعی chatGpt تا همین چند وقت پیش در عرصه رقابت بیرقیب بود، حالا با یک حریف قدرتمند به نام gemini روبهرو شده
رد پای گوگل در پیکار با کمپانیهای بزرگ همیشه جالب بوده:
رقابت با موتور جستجوی یاهو که اونو زمین زد، با مرورگر اکسپلورر مایکروسافت که chrome برنده شد، با سیستم عامل ios اپل که اندروید معرفی کرد و همچنان نمیشه گفت کدوم بهتره و حالا هم با openai که داره پرقدرت پیش میره
انگار هر وقت یه محصول جدید معرفی میشه که قراره کاربردی باشه، گوگل میاد و میگه منم هستم!!
@DevTwitter | <Amir Hossein/>
🔥81👍13❤3👎2
در وردپرس ۶.۹ یه قابلیت خیلی خوب اضافه شده که کار با قالبهای دستهبندیها و term ها راحتتر شده. قبلاً وقتی میخواستیم برای یه term قالب اختصاصی بسازیم، باید از slug اون term استفاده میکردیم، مثلا:
taxonomy-team-oakland-athletics.php
مشکل این بود که اگه مدیر سایت اسم term یا slug رو عوض میکرد، قالب دیگه کار نمیکرد و همه چیز به هم میریخت.
حالا میتونیم به جای slug از ID term استفاده کنیم، مثلا:
taxonomy-team-42.php
عدد ۴۲ همون ID ثابته که هیچ وقت تغییر نمیکنه، حتی اگه اسم یا slug term عوض بشه.
مزیتش اینه که قالب همیشه درست کار میکنه و دیگه لازم نیست نگران تغییر اسم term باشیم. ساده و بدون دردسر!
@DevTwitter | <ahmadreza rezaee/>
taxonomy-team-oakland-athletics.php
مشکل این بود که اگه مدیر سایت اسم term یا slug رو عوض میکرد، قالب دیگه کار نمیکرد و همه چیز به هم میریخت.
حالا میتونیم به جای slug از ID term استفاده کنیم، مثلا:
taxonomy-team-42.php
عدد ۴۲ همون ID ثابته که هیچ وقت تغییر نمیکنه، حتی اگه اسم یا slug term عوض بشه.
مزیتش اینه که قالب همیشه درست کار میکنه و دیگه لازم نیست نگران تغییر اسم term باشیم. ساده و بدون دردسر!
@DevTwitter | <ahmadreza rezaee/>
🍌12❤10👍4
داستان این پروژه درست از وسط زمین خاکی شروع شد!
همیشه موقع تنیس بازی کردن با بچهها، سر امتیازها به مشکل میخوردیم؛ یادمون میرفت ستها چند چند شده یا کی چند بار برده. همین چالش باعث شد تصمیم بگیرم Tennis Match Calculator را بسازم؛ یک اپلیکیشن اختصاصی برای ثبت نتایج، که حالا اوپنسورس شده تا همه بتوانند از آن استفاده کنند.
چرا این اپ؟ رابط کاربری طوری طراحی شده که کنار زمین، خیلی سریع و با کمترین کلیک بتوانید امتیازها را ثبت کنید. علاوه بر این، تاریخچه بازیها (History) به شما نشان میدهد که هر بازیکن چه عملکردی داشته و آمار برد و باختها چطور بوده است.
فنی: چون پروژه با Flutter نوشته شده، با همین یک سورسکد میتوانید هم خروجی اندروید بگیرید و هم نسخه ویندوز. فرقی نمیکند روی گوشی باشید یا لپتاپ باشگاه، همهجا کارتان را راه میاندازد.
سورس پروژه روی گیتهاب هست. خوشحال میشم اگر دوست داشتید فورک کنید، فیچر جدید بزنید یا ستاره بدید:
https://github.com/MMDREZA7/tennis_match_calculator
@DevTwitter | <Ethan Heida/>
همیشه موقع تنیس بازی کردن با بچهها، سر امتیازها به مشکل میخوردیم؛ یادمون میرفت ستها چند چند شده یا کی چند بار برده. همین چالش باعث شد تصمیم بگیرم Tennis Match Calculator را بسازم؛ یک اپلیکیشن اختصاصی برای ثبت نتایج، که حالا اوپنسورس شده تا همه بتوانند از آن استفاده کنند.
چرا این اپ؟ رابط کاربری طوری طراحی شده که کنار زمین، خیلی سریع و با کمترین کلیک بتوانید امتیازها را ثبت کنید. علاوه بر این، تاریخچه بازیها (History) به شما نشان میدهد که هر بازیکن چه عملکردی داشته و آمار برد و باختها چطور بوده است.
فنی: چون پروژه با Flutter نوشته شده، با همین یک سورسکد میتوانید هم خروجی اندروید بگیرید و هم نسخه ویندوز. فرقی نمیکند روی گوشی باشید یا لپتاپ باشگاه، همهجا کارتان را راه میاندازد.
سورس پروژه روی گیتهاب هست. خوشحال میشم اگر دوست داشتید فورک کنید، فیچر جدید بزنید یا ستاره بدید:
https://github.com/MMDREZA7/tennis_match_calculator
@DevTwitter | <Ethan Heida/>
❤41👎23🍌14👍9
توی یکی از پروژه ها
دنبال بهینهترین راه برای پیادهسازی blur تصاویر در Next.js بودم.
نتایج و تحقیقاتی که به دست آوردم رو تصمیم گرفتم به شکل یک مقاله کامل بنویسم.
تو این مقاله بررسی کردم:
- کامپوننت Image در Next.js پشت صحنه چیکار میکنه
- چه مکانیزمهایی برای بهینهسازی و blur تصاویر داره
- آیا بهتره blur رو کامل بسپریم به خود Next.js یا راه بهتری هم وجود داره؟
- راهحلی که هم تجربه کاربری فوقالعادهای بده، هم ملاحظات بکاند، سرور و مصرف پهنای باند رو در نظر بگیره
به نظرم همهمون (چه فرانت باشیم چه بکاند) با دید مهندسی نرم افزار باید بتونیم راهکارهایی پیشنهاد بدیم که اپلیکیشن در مقیاس بزرگ هم دووم بیاره و عملکرد عالی داشته باشه.
این مقاله میتونه دید خیلی خوبی به فرانتاند و بکاند دولوپرها بده تا با هم بهترین تصمیم رو برای این موضوع بگیرن.
فرانتاند دولوپری که از محدودیتها و هزینههای سرور و پهنای باند آگاه باشه، خیلی وقتها میتونه معماری ایدهآل خودش رو به بکاند توضیح بده و بهترین پیاده سازی رو داشته باشه.
لینک مقاله:
https://medium.com/@alinoori021110/blurring-images-in-next-js-a-complete-review-of-all-professional-modern-methods-517652532737
@DevTwitter | <Ali Noori/>
دنبال بهینهترین راه برای پیادهسازی blur تصاویر در Next.js بودم.
نتایج و تحقیقاتی که به دست آوردم رو تصمیم گرفتم به شکل یک مقاله کامل بنویسم.
تو این مقاله بررسی کردم:
- کامپوننت Image در Next.js پشت صحنه چیکار میکنه
- چه مکانیزمهایی برای بهینهسازی و blur تصاویر داره
- آیا بهتره blur رو کامل بسپریم به خود Next.js یا راه بهتری هم وجود داره؟
- راهحلی که هم تجربه کاربری فوقالعادهای بده، هم ملاحظات بکاند، سرور و مصرف پهنای باند رو در نظر بگیره
به نظرم همهمون (چه فرانت باشیم چه بکاند) با دید مهندسی نرم افزار باید بتونیم راهکارهایی پیشنهاد بدیم که اپلیکیشن در مقیاس بزرگ هم دووم بیاره و عملکرد عالی داشته باشه.
این مقاله میتونه دید خیلی خوبی به فرانتاند و بکاند دولوپرها بده تا با هم بهترین تصمیم رو برای این موضوع بگیرن.
فرانتاند دولوپری که از محدودیتها و هزینههای سرور و پهنای باند آگاه باشه، خیلی وقتها میتونه معماری ایدهآل خودش رو به بکاند توضیح بده و بهترین پیاده سازی رو داشته باشه.
لینک مقاله:
https://medium.com/@alinoori021110/blurring-images-in-next-js-a-complete-review-of-all-professional-modern-methods-517652532737
@DevTwitter | <Ali Noori/>
❤21🔥3👍1👎1
هنرِ سادهسازی - Nava
میخواستم نتیجه یکی از تمیزترین و مینیمالترین پروژههایی که ساختم رو باهاتون به اشتراک بذارم.
اپ مدیریت کار Nava؛ اما نه شبیه بقیه.
اینجا خبری از شلوغی، دکمههای اضافی و ذهنپریشی نیست. همهچیز طراحی شده تا وقتی اپ رو باز میکنی، آرامش و تمرکز خالص رو حس کنی.
چرا Nava خاصه؟
- طراحی مینیمال و ظریف به سبک Apple
- انیمیشنهای نرم که حس کیفیت رو داد میزنن
- محیط تمیز، بدون اضافات و کاملاً متمرکز
- عملکرد سریع و سبک روی همه گوشیها
- تجربهای که استرس کم میکنه و تمرکز زیاد
GitHub:
github.com/Mahdi-mortazavi/app
@DevTwitter | <Mahdi Mortazavi/>
میخواستم نتیجه یکی از تمیزترین و مینیمالترین پروژههایی که ساختم رو باهاتون به اشتراک بذارم.
اپ مدیریت کار Nava؛ اما نه شبیه بقیه.
اینجا خبری از شلوغی، دکمههای اضافی و ذهنپریشی نیست. همهچیز طراحی شده تا وقتی اپ رو باز میکنی، آرامش و تمرکز خالص رو حس کنی.
چرا Nava خاصه؟
- طراحی مینیمال و ظریف به سبک Apple
- انیمیشنهای نرم که حس کیفیت رو داد میزنن
- محیط تمیز، بدون اضافات و کاملاً متمرکز
- عملکرد سریع و سبک روی همه گوشیها
- تجربهای که استرس کم میکنه و تمرکز زیاد
GitHub:
github.com/Mahdi-mortazavi/app
@DevTwitter | <Mahdi Mortazavi/>
🍌15👍10👎3🔥2
سوال بعدی این هستش:
واحدهای em , rem , vh , vw دقیقا چی هستند؟
۱ـ em
این یکی اندازهاش وابسته به همون عنصریه که داخلش استفاده کردی. یعنی اگه فونت اون بخش ۲۰px باشه، 1em هم میشه ۲۰px.
اگه داخلش یک لایه دیگه em بزاری، دوباره نسبت به همون لایه محاسبه میشه و این میتونه اندازهها رو هی تغییر بده. گاهی اذیتکننده میشه.
۲ـ rem
همیشه نسبتش فقط به فونت root یعنی همون تگ html حساب میشه.
پس هرجا 1rem بنویسی، دقیقا یک اندازه ثابت داری. برای فونت و spacing معمولا انتخاب مطمئنتریه.
۳ـ vh
مقدار (1vh) یعنی یک درصد از ارتفاع کل صفحه
برای سکشنهای تمامقد یا هدرهای fullscreen خیلی استفاده میشه.
۴ـ vw
اینم دقیقا مثل بالایی، فقط نسبت به عرض صفحه حساب میشه.
برای طراحیهای واکنشگرا و المانهای کشسان خیلی کاربرد داره.
@DevTwitter | <Maysam Ghaysari/>
واحدهای em , rem , vh , vw دقیقا چی هستند؟
۱ـ em
این یکی اندازهاش وابسته به همون عنصریه که داخلش استفاده کردی. یعنی اگه فونت اون بخش ۲۰px باشه، 1em هم میشه ۲۰px.
اگه داخلش یک لایه دیگه em بزاری، دوباره نسبت به همون لایه محاسبه میشه و این میتونه اندازهها رو هی تغییر بده. گاهی اذیتکننده میشه.
۲ـ rem
همیشه نسبتش فقط به فونت root یعنی همون تگ html حساب میشه.
پس هرجا 1rem بنویسی، دقیقا یک اندازه ثابت داری. برای فونت و spacing معمولا انتخاب مطمئنتریه.
۳ـ vh
مقدار (1vh) یعنی یک درصد از ارتفاع کل صفحه
برای سکشنهای تمامقد یا هدرهای fullscreen خیلی استفاده میشه.
۴ـ vw
اینم دقیقا مثل بالایی، فقط نسبت به عرض صفحه حساب میشه.
برای طراحیهای واکنشگرا و المانهای کشسان خیلی کاربرد داره.
@DevTwitter | <Maysam Ghaysari/>
🔥32❤6👍6
این یک فاجعه و سم خالص بود !
فکر میکردم بعد از این همه سال سروکله زدن با کد، دیگه چیزی غافلگیرم نمیکنه. اما امروز با موردی روبرو شدم که اسمش رو نمیشه "مشکل فنی" گذاشت، رسماً "فاجعه" بود!
ماجرا از این قرار بود که میخواستیم از طریق API به یه نرم افزار حسابداری وصل بشیم. آقا چشمتون روز بد نبینه...
اولش که گفتن "ما اصلا سیستم احراز هویت (Auth) نداریم، باید با IP ثابت وصل بشید به نرم افزار"، باید میفهمیدم قراره با چی روبرو بشم. یعنی عملاً دیتا رو گذاشتن وسط کوچه، فقط گفتن غریبه نیاد.
اما فاجعه اصلی وقتی بود که خروجی JSON کالاها رو دیدیم. فیلد ID که باید مقدس ترین، تمیزترین و یونیک ترین بخش دیتابیس باشه، این شکلی بود (تصویر رو ببینید ):
نه تنها ID ها پاک و یکتا نبودند، بلکه شامل "فاصله" (Space)، "کاراکتر فارسی" و حتی "تک حرف" بودن! عملاً نمیشد روی این فیلد کوئری یا جوین زد بدون اینکه خطا بگیریم.
این دومین باره که تو نرم افزارهای حسابداری همچین عجایبی می بینم (ماجرای قبلی رو هم بعدا براتون تعریف میکنم که اونم شاهکار بود).
@DevTwitter | <Reza Toumari/>
فکر میکردم بعد از این همه سال سروکله زدن با کد، دیگه چیزی غافلگیرم نمیکنه. اما امروز با موردی روبرو شدم که اسمش رو نمیشه "مشکل فنی" گذاشت، رسماً "فاجعه" بود!
ماجرا از این قرار بود که میخواستیم از طریق API به یه نرم افزار حسابداری وصل بشیم. آقا چشمتون روز بد نبینه...
اولش که گفتن "ما اصلا سیستم احراز هویت (Auth) نداریم، باید با IP ثابت وصل بشید به نرم افزار"، باید میفهمیدم قراره با چی روبرو بشم. یعنی عملاً دیتا رو گذاشتن وسط کوچه، فقط گفتن غریبه نیاد.
اما فاجعه اصلی وقتی بود که خروجی JSON کالاها رو دیدیم. فیلد ID که باید مقدس ترین، تمیزترین و یونیک ترین بخش دیتابیس باشه، این شکلی بود (تصویر رو ببینید ):
نه تنها ID ها پاک و یکتا نبودند، بلکه شامل "فاصله" (Space)، "کاراکتر فارسی" و حتی "تک حرف" بودن! عملاً نمیشد روی این فیلد کوئری یا جوین زد بدون اینکه خطا بگیریم.
این دومین باره که تو نرم افزارهای حسابداری همچین عجایبی می بینم (ماجرای قبلی رو هم بعدا براتون تعریف میکنم که اونم شاهکار بود).
@DevTwitter | <Reza Toumari/>
🍌80👍16🔥5❤2
اگه با Claude Code کار میکنید، این ریپازیتوری wshobson/agents یه گنج واقعیه که نباید از دستش بدید. عملاً یه ارتش از ایجنتهای هوشمند رو میاره تو ترمینالتون!
قضیه چیه؟ این پروژه یه "مارکتپلیس" کامل برای Claude Code هست که شامل ۶۳ تا پلاگین و ۸۵ تا ایجنت تخصصی (Agents) میشه. هدفش چیه؟ اتوماسیون هوشمند. یعنی شما برای هر کاری، از معماری سیستم و کدنویسی گرفته تا تست، امنیت و حتی SEO، یه ایجنت متخصص دم دستت داری.
چیزی که خیلی جذابش کرده، معماری بهینهشه. این سیستم از "Skills" (مهارتها) استفاده میکنه که به صورت Progressive Disclosure کار میکنن. یعنی چی؟ یعنی دانش تخصصی فقط وقتی لود میشه که واقعاً بهش نیاز باشه. اینطوری الکی توکن مصرف نمیشه و کانتکست مدل پر نمیشه.
یه حرکت هوشمندانه دیگه:Hybrid Orchestration. این ابزار به صورت خودکار برای کارهای سریع و خطی از مدل Haiku استفاده میکنه و برای کارهای پیچیده که نیاز به استدلال داره سوییچ میکنه روی Sonnet. نتیجه؟ هم سرعت بالاست، هم هزینه میاد پایین.
چندتا مثال از کاراییش:
- فولاستک: با یه دستور، ۷ تا ایجنت (از دیتابیس تا فرانتاند) با هم هماهنگ میشن تا یه فیچر کامل بزنن.
- امنیت: پلاگین Security Scanning کد رو شخم میزنه و باگها رو پیدا میکنه.
- پلاگینDevOps: برای کوبرنتیز و کلاود هم ایجنتهای آماده داره.
نصبش هم توی Claude Code خیلی راحته. اول مارکتپلیس رو اضافه میکنید: /plugin marketplace add wshobson/agents
بعد هر پلاگینی که لازم دارید رو جدا نصب میکنید. مثلاً برای پایتون: /plugin install python-development همین! الان ایجنتهای پایتون آمادهن.
خلاصه که اگه میخواید قدرت Claude Code رو چند برابر کنید و حس یه مدیر فنی رو داشته باشید که کلی برنامهنویس خفن زیر دستشه، حتماً تستش کنید.
لینک ریپو: https://github.com/wshobson/agents
@DevTwitter | <Mehdi Allahyari/>
قضیه چیه؟ این پروژه یه "مارکتپلیس" کامل برای Claude Code هست که شامل ۶۳ تا پلاگین و ۸۵ تا ایجنت تخصصی (Agents) میشه. هدفش چیه؟ اتوماسیون هوشمند. یعنی شما برای هر کاری، از معماری سیستم و کدنویسی گرفته تا تست، امنیت و حتی SEO، یه ایجنت متخصص دم دستت داری.
چیزی که خیلی جذابش کرده، معماری بهینهشه. این سیستم از "Skills" (مهارتها) استفاده میکنه که به صورت Progressive Disclosure کار میکنن. یعنی چی؟ یعنی دانش تخصصی فقط وقتی لود میشه که واقعاً بهش نیاز باشه. اینطوری الکی توکن مصرف نمیشه و کانتکست مدل پر نمیشه.
یه حرکت هوشمندانه دیگه:Hybrid Orchestration. این ابزار به صورت خودکار برای کارهای سریع و خطی از مدل Haiku استفاده میکنه و برای کارهای پیچیده که نیاز به استدلال داره سوییچ میکنه روی Sonnet. نتیجه؟ هم سرعت بالاست، هم هزینه میاد پایین.
چندتا مثال از کاراییش:
- فولاستک: با یه دستور، ۷ تا ایجنت (از دیتابیس تا فرانتاند) با هم هماهنگ میشن تا یه فیچر کامل بزنن.
- امنیت: پلاگین Security Scanning کد رو شخم میزنه و باگها رو پیدا میکنه.
- پلاگینDevOps: برای کوبرنتیز و کلاود هم ایجنتهای آماده داره.
نصبش هم توی Claude Code خیلی راحته. اول مارکتپلیس رو اضافه میکنید: /plugin marketplace add wshobson/agents
بعد هر پلاگینی که لازم دارید رو جدا نصب میکنید. مثلاً برای پایتون: /plugin install python-development همین! الان ایجنتهای پایتون آمادهن.
خلاصه که اگه میخواید قدرت Claude Code رو چند برابر کنید و حس یه مدیر فنی رو داشته باشید که کلی برنامهنویس خفن زیر دستشه، حتماً تستش کنید.
لینک ریپو: https://github.com/wshobson/agents
@DevTwitter | <Mehdi Allahyari/>
👍20🍌4❤3
امروز بالاخره وقت شد یه سری از پروژه هارو رو آپدیت کنم. توی omega قابلیت سرچ داخل محتوای فایل رو اضافه کردم!
حالا اگه یه فایل گمشده داری که فقط میدونی اسمت توشه و اسم فایل رو یادت نیست، با سوئیچ
https://github.com/naseridev/omega/
@DevTwitter | <Nima Naseri/>
حالا اگه یه فایل گمشده داری که فقط میدونی اسمت توشه و اسم فایل رو یادت نیست، با سوئیچ
-c همه فایلایی که اسمت توشونه رو برات پیدا میکنه:https://github.com/naseridev/omega/
@DevTwitter | <Nima Naseri/>
👍16🍌5👎2🔥1
فرصتی برای یادگیری؛
آندره کارپاتی به عنوان یکی 3-4 ابرنخبه در جهان که به ادراک سطح بالا از AI رسیده است در ویدئویی رایگان، مکانیسم ChatGPT را شرح میدهد.
10 ماه از انتشار این ویدیو گذشته است. اگر قرار باشد تا پایان سال 2025 فقط یک ویدیوی آموزشی تماشا کنید، همین است.
https://www.youtube.com/watch?v=7xTGNNLPyMI
@DevTwitter | <Gratomic AI Bot/>
آندره کارپاتی به عنوان یکی 3-4 ابرنخبه در جهان که به ادراک سطح بالا از AI رسیده است در ویدئویی رایگان، مکانیسم ChatGPT را شرح میدهد.
10 ماه از انتشار این ویدیو گذشته است. اگر قرار باشد تا پایان سال 2025 فقط یک ویدیوی آموزشی تماشا کنید، همین است.
https://www.youtube.com/watch?v=7xTGNNLPyMI
@DevTwitter | <Gratomic AI Bot/>
👎23👍12❤2
اکسپلویت این CVE جدید ریاکت ( CVE-2025-55182 ) رو نوشتم گذاشتم گیت هاب.
اسکریپت با آرگومان -d امکان دیتکشن
و با آرگومان -e هم قابلیت اکسپلویت و اجرای اینتراکتیو یا ریورسشل رو داره.
https://github.com/AliHzSec/CVE-2025-55182
@DevTwitter | <Ali Hz/>
اسکریپت با آرگومان -d امکان دیتکشن
و با آرگومان -e هم قابلیت اکسپلویت و اجرای اینتراکتیو یا ریورسشل رو داره.
https://github.com/AliHzSec/CVE-2025-55182
@DevTwitter | <Ali Hz/>
🔥17🍌2❤1
سه روز پیش یک آسیبپذیری مهم در React کشف شد که Next.js رو تحت تأثیر قرار میداد. این ضعف امنیتی مستقیما به React Server Components در ری اکت و Server Actions در Next.js مربوط میشد. من این باگ را بهصورت دقیق بررسی کردم تا متوجه بشم سازوکارش چیه و هکرها چطور میتونند از اون سوءاستفاده کنن.
خلاصه این بررسی رو در قالب یک ویدئوی ۲۰ دقیقهای آماده کردم. در این ویدئو، آزمایشها روی ویندوز و یک محیط لینوکسی داکرایز انجام شده، یک اکسپلویت تزریق کردم و نشون دادم که چگونه یک مهاجم میتونه کنترل کامل سرور را به دست بگیره.
فارغ از اینکه در حوزه بکاند، فرانتاند، DevOps یا مدیریت سیستم فعالیت میکنید، دیدن این ویدئو رو ضروری میدونم.
این آسیبپذیری طوریه که حتی لایههای امنیتی متعدد نیز تضمین کافی ایجاد نمیکنه و به همین دلیل بهروزرسانی فوری سرورها اهمیت ویژهای داره.
هدف این ویدئو صرفاً آموزشه و مسئولیت هرگونه سوءاستفاده بر عهده من نیست. پیشنهاد میکنم ویدئو رو ببینید و اگه هنوز سرورهای خود را بهروز نکردید، هر چه سریعتر این کار رو انجام بدید.
https://www.youtube.com/watch?v=z8l0dYA0Zvc
@DevTwitter | <Naser Faraji/>
خلاصه این بررسی رو در قالب یک ویدئوی ۲۰ دقیقهای آماده کردم. در این ویدئو، آزمایشها روی ویندوز و یک محیط لینوکسی داکرایز انجام شده، یک اکسپلویت تزریق کردم و نشون دادم که چگونه یک مهاجم میتونه کنترل کامل سرور را به دست بگیره.
فارغ از اینکه در حوزه بکاند، فرانتاند، DevOps یا مدیریت سیستم فعالیت میکنید، دیدن این ویدئو رو ضروری میدونم.
این آسیبپذیری طوریه که حتی لایههای امنیتی متعدد نیز تضمین کافی ایجاد نمیکنه و به همین دلیل بهروزرسانی فوری سرورها اهمیت ویژهای داره.
هدف این ویدئو صرفاً آموزشه و مسئولیت هرگونه سوءاستفاده بر عهده من نیست. پیشنهاد میکنم ویدئو رو ببینید و اگه هنوز سرورهای خود را بهروز نکردید، هر چه سریعتر این کار رو انجام بدید.
https://www.youtube.com/watch?v=z8l0dYA0Zvc
@DevTwitter | <Naser Faraji/>
🔥29👍10🍌3👎1