مجموعه آیکون برندهای ایرانی
پروژه Persian Icons شامل بیش از ۴۱۰ برند و ۸۲۰ آیکون SVG رنگی و تکرنگ، آماده استفاده در React و Vue است.
شامل بانکها، درگاههای پرداخت، خودرو، اپلیکیشنها، بیمه، دانشگاهها و دستهبندیهای بیشتر.
website:
https://icons.persian-labs.ir/
Github:
https://github.com/persianlabs/icons
@DevTwitter | <TaymaZ/>
پروژه Persian Icons شامل بیش از ۴۱۰ برند و ۸۲۰ آیکون SVG رنگی و تکرنگ، آماده استفاده در React و Vue است.
شامل بانکها، درگاههای پرداخت، خودرو، اپلیکیشنها، بیمه، دانشگاهها و دستهبندیهای بیشتر.
website:
https://icons.persian-labs.ir/
Github:
https://github.com/persianlabs/icons
@DevTwitter | <TaymaZ/>
❤92🍌11👎2
یکی از مهمترین و پایهایترین سوالاتی که هر متخصص سئو و فرانتاند دولوپری باید از خودش بپرسه، اینه که باتهای گوگل چگونه صفحات من رو بررسی و کراول میکنند؟
با توجه به زمانبر بودن هرباره ایجاد تغییرات برای شبیهسازی کردن نحوه دسترسی کرالرهای گوگل به سایت، به این نتیجه رسیدم که یک اکستنشن میتونه کمک بزرگی هم به بچههای فنی و هم تیم سئو در جهت تست دسترسی پذیری و کراول صفحات باشه.
این اکستنشن فقط با یک کلیک، صفحه مدنظر شما رو به حالت Googlebot Mobile تغییر میده و همزمان JavaScript رو غیرفعال میکنه تا بتونید خروجی خام و رندرشده رو فوراً بررسی کنید.
ویژگیهای اصلی Midi Crawler:
تغییر حالت با یک کلیک: بدون نیاز به باز کردن DevTools و انجام تنظیمات دستی.
شبیهسازی دقیق: اعمال خودکار User-Agent گوگلبات موبایل و بلاک کردن جاوااسکریپت.
بررسی عمیق SSR و CSR: امکان مقایسه سورسکد قبل و بعد از فعالسازی برای کشف خطاهای ایندکس.
لینک نصب افزونه در کروم :
https://chromewebstore.google.com/detail/midi-crawler/mmijlnphgnfioppbdamppomcjhfidagb
https://github.com/mmahdi008/midi-crawler
@DevTwitter | <Mahdi Asgari/>
با توجه به زمانبر بودن هرباره ایجاد تغییرات برای شبیهسازی کردن نحوه دسترسی کرالرهای گوگل به سایت، به این نتیجه رسیدم که یک اکستنشن میتونه کمک بزرگی هم به بچههای فنی و هم تیم سئو در جهت تست دسترسی پذیری و کراول صفحات باشه.
این اکستنشن فقط با یک کلیک، صفحه مدنظر شما رو به حالت Googlebot Mobile تغییر میده و همزمان JavaScript رو غیرفعال میکنه تا بتونید خروجی خام و رندرشده رو فوراً بررسی کنید.
ویژگیهای اصلی Midi Crawler:
تغییر حالت با یک کلیک: بدون نیاز به باز کردن DevTools و انجام تنظیمات دستی.
شبیهسازی دقیق: اعمال خودکار User-Agent گوگلبات موبایل و بلاک کردن جاوااسکریپت.
بررسی عمیق SSR و CSR: امکان مقایسه سورسکد قبل و بعد از فعالسازی برای کشف خطاهای ایندکس.
لینک نصب افزونه در کروم :
https://chromewebstore.google.com/detail/midi-crawler/mmijlnphgnfioppbdamppomcjhfidagb
https://github.com/mmahdi008/midi-crawler
@DevTwitter | <Mahdi Asgari/>
🔥16👍4👎1
یه مشکلی داشتم که احتمالا خیلیهاتون باهاش درگیر شدید!
هر وقت میخواستم از صفحه سایت اسکرینشات بگیرم، داستان شروع میشد
یا باید چند تا عکس جدا جدا میگرفتم، یا از افزونههایی استفاده میکردم که خروجیشون قشنگ به هم میریخت؛ یه جا عکسها روی هم میافتادن، یه جا نصف صفحه جا میموند، بعضی وقتها هم کلاً بخشهای Lazy Load اصلاً توی تصویر نبودن.
اولش فکر کردم مشکل از خود سایته… ولی بعد فهمیدم نه، مشکل از روش کار این ابزارهاست؛ چون میان صفحه رو اسکرول میکنن و بعد تیکهها رو به هم میچسبونن.
همونجا با خودم گفتم چرا خودم یه ابزار درست نکنم؟
چند روز رفتم تو دل افزونههای کروم کلی تست زدم، کلی خراب کردم
آخرش رسیدم به یه افزونه که مستقیم از خود موتور Chrome برای گرفتن اسکرینشات استفاده میکنه و تونستم با AI یه افزونهای رو بسازم که به راحتی این کار رو انجام بده.
و نتیجه شد این:
- اسکرینشات کامل و تمیز از کل صفحه
- کیفیت بالا بدون افت
- پشتیبانی از صفحات خیلی بلند
- حالت موبایل، تبلت و دسکتاپ
- بدون دردسرهای معمول اینجور ابزارها
https://github.com/abolfazltalebi/screenShot-pro
@DevTwitter | <Abolfazl talebi/>
هر وقت میخواستم از صفحه سایت اسکرینشات بگیرم، داستان شروع میشد
یا باید چند تا عکس جدا جدا میگرفتم، یا از افزونههایی استفاده میکردم که خروجیشون قشنگ به هم میریخت؛ یه جا عکسها روی هم میافتادن، یه جا نصف صفحه جا میموند، بعضی وقتها هم کلاً بخشهای Lazy Load اصلاً توی تصویر نبودن.
اولش فکر کردم مشکل از خود سایته… ولی بعد فهمیدم نه، مشکل از روش کار این ابزارهاست؛ چون میان صفحه رو اسکرول میکنن و بعد تیکهها رو به هم میچسبونن.
همونجا با خودم گفتم چرا خودم یه ابزار درست نکنم؟
چند روز رفتم تو دل افزونههای کروم کلی تست زدم، کلی خراب کردم
آخرش رسیدم به یه افزونه که مستقیم از خود موتور Chrome برای گرفتن اسکرینشات استفاده میکنه و تونستم با AI یه افزونهای رو بسازم که به راحتی این کار رو انجام بده.
و نتیجه شد این:
- اسکرینشات کامل و تمیز از کل صفحه
- کیفیت بالا بدون افت
- پشتیبانی از صفحات خیلی بلند
- حالت موبایل، تبلت و دسکتاپ
- بدون دردسرهای معمول اینجور ابزارها
https://github.com/abolfazltalebi/screenShot-pro
@DevTwitter | <Abolfazl talebi/>
👍36👎16❤8
چند ماه قطعیهای اینترنت ایران رو یادتونه؟
وسط همون روزا، یه پروژهی NestJS + Prisma داشتیم که باید دیپلوی میشد ولی همه چی خاموش بود!!!!.
روی سیستم لوکال همهچی عادی بود. ولی همین که npx prisma generate رو تو Container زدیم، گیر کردیم !!
چون Prisma برای Generate کردن Client، یه Engine باینری از سرور خودش (نه npm) دانلود میکنه. و اون سرور رو اصلاً دسترسی نداشتیم.
یعنی یه دستور که همیشه چند ثانیه طول میکشید، تبدیل شد به یه مشکل واقعی که باید حلش میکردیم اونم بدون اینکه اینترنت بین المللی داشته باشیم.
تو این پست کامل نوشتم چطور با پیدا کردن Environment Variable درست، و آوردن Engine باینری سازگار از ریپوی خود Prisma، مشکل رو بدون نیاز به اینترنت حل کردیم:
لینک مقاله
@DevTwitter | <Mahdi Heydari/>
وسط همون روزا، یه پروژهی NestJS + Prisma داشتیم که باید دیپلوی میشد ولی همه چی خاموش بود!!!!.
روی سیستم لوکال همهچی عادی بود. ولی همین که npx prisma generate رو تو Container زدیم، گیر کردیم !!
چون Prisma برای Generate کردن Client، یه Engine باینری از سرور خودش (نه npm) دانلود میکنه. و اون سرور رو اصلاً دسترسی نداشتیم.
یعنی یه دستور که همیشه چند ثانیه طول میکشید، تبدیل شد به یه مشکل واقعی که باید حلش میکردیم اونم بدون اینکه اینترنت بین المللی داشته باشیم.
تو این پست کامل نوشتم چطور با پیدا کردن Environment Variable درست، و آوردن Engine باینری سازگار از ریپوی خود Prisma، مشکل رو بدون نیاز به اینترنت حل کردیم:
لینک مقاله
@DevTwitter | <Mahdi Heydari/>
👎34👍26🍌4
اگه این روزا استک پروژه تون NextJs هست و نمیدونین چه مدلی مناسب تره برای کد زدن بهتره که این بنچ مارک که توسط تیمشون انجام شده رو بهش یه نگاه بندازین اینطوری خیلی سیف تر و مطمئن تر روی مدل هایی که استفاده می کنید سرمایه گذاری میکنید!
بنچ مارک این موارد رو براتون به نسبت مدل شفاف میکنه:
-امتیازدهی بر اساس نرخ موفقیت
-میانگین مدتزمان
-میانگین هزینه
https://nextjs.org/evals
@DevTwitter | <Javad/>
بنچ مارک این موارد رو براتون به نسبت مدل شفاف میکنه:
-امتیازدهی بر اساس نرخ موفقیت
-میانگین مدتزمان
-میانگین هزینه
https://nextjs.org/evals
@DevTwitter | <Javad/>
👍17🍌5🔥2
بدون اسکیل unslop نمیتونم از ai استفاده کنم.
حتی output توکن رو کمتر میکنه هزینه رو یه مقداری میاره پایین تر.
مخصوصا اگه از مدل های gpt استفاده میکنید کلا عادت به اینکار دارن بدون این نمیشه استفاده کرد ازشون.
https://github.com/cursor/plugins/blob/main/pstack/skills/unslop/SKILL.md
@DevTwitter | <Mohammad Sadeghian/>
حتی output توکن رو کمتر میکنه هزینه رو یه مقداری میاره پایین تر.
مخصوصا اگه از مدل های gpt استفاده میکنید کلا عادت به اینکار دارن بدون این نمیشه استفاده کرد ازشون.
https://github.com/cursor/plugins/blob/main/pstack/skills/unslop/SKILL.md
@DevTwitter | <Mohammad Sadeghian/>
👎12👍6🍌4
این پروژه ی اوپن سورس ربات بخشی از مجموعهی Awesome Telegram Bots هست، جایی که چند تا سورس کاربردی (از جمله ربات فروشگاهی، ربات اقتصادی گروهی و بازیساز و دانلودر اینستا تیک تاک و یوتیوب و چت با ai ها ) با آموزش نصب کامل منتشر شده.
اگه این سورس به کارت اومد، حتماً یه سر به بقیهشون هم بزن:
github.com/Abolfazlrwm/awesome-telegram-bots
@DevTwitter | <Abolfazl/>
اگه این سورس به کارت اومد، حتماً یه سر به بقیهشون هم بزن:
github.com/Abolfazlrwm/awesome-telegram-bots
@DevTwitter | <Abolfazl/>
👍14❤7👎1
یه مدتی بود داشتم روی مشکل بههمریختگی متون فارسی (RTL) توی نرمافزار Antigravity کار میکردم. برای همین یه پکیج متنباز براش نوشتم که مشکل راستچین شدن متون رو بدون هیچ پرش و دیلِیی حل میکنه. نکته خیلی مهمش اینه که این ابزار فقط نسخه معمولی رو پچ نمیکنه، بلکه نسخه IDE رو هم کاملاً پچ میکنه. به علاوه یه پنل تنظیمات شناور (UI) مستقیم داخل خود محیط ادیتور بهتون میده که میتونید فونت (مثل وزیرمتن)، سایز و فاصله خطوط رو همونجا در لحظه تغییر بدید.
دوست داشتید یک نگاهی بهش توی گیتهاب بندازید (اگر باگهایی هم دیدید توی خود گیتهاب issue باز کنید):
https://github.com/arian13es/antigravity-pro-rtl
@DevTwitter | <Arian/>
دوست داشتید یک نگاهی بهش توی گیتهاب بندازید (اگر باگهایی هم دیدید توی خود گیتهاب issue باز کنید):
https://github.com/arian13es/antigravity-pro-rtl
@DevTwitter | <Arian/>
❤22👍9🍌7
Forwarded from DevTwitter Ads.
اگه به هوش مصنوعی علاقه داری، این کانال رو از دست نده! 🤖
توی @AIToolsFarsi هر روز با جدیدترین ابزارها، ترفندهای کاربردی و مهمترین اخبار دنیای هوش مصنوعی آشنا میشی.
✅ معرفی ابزارهای کاربردی
✅ ترفندهای ساده و قابل استفاده
✅ اخبار مهم و بهروز AI
✅ آموزشهای کوتاه و مفید
همه محتواها با توضیحات ساده منتشر میشن تا بدون اتلاف وقت، از هوش مصنوعی توی کار، درس و زندگی روزمره استفاده کنی.
👇 همین حالا عضو شو:
@AIToolsFarsi
@AIToolsFarsi
توی @AIToolsFarsi هر روز با جدیدترین ابزارها، ترفندهای کاربردی و مهمترین اخبار دنیای هوش مصنوعی آشنا میشی.
✅ معرفی ابزارهای کاربردی
✅ ترفندهای ساده و قابل استفاده
✅ اخبار مهم و بهروز AI
✅ آموزشهای کوتاه و مفید
همه محتواها با توضیحات ساده منتشر میشن تا بدون اتلاف وقت، از هوش مصنوعی توی کار، درس و زندگی روزمره استفاده کنی.
👇 همین حالا عضو شو:
@AIToolsFarsi
@AIToolsFarsi
👍4👎2🍌2
بیشتر آموزشهای ایجنتها بر اساس حوزههایی مثل سلامت و مالی نوشته میشن؛ اما زیرِ همهی این تفاوتها، ایجنتها از چند الگوی معماری مشترک استفاده میکنن.
این کتاب ۶۰ از همین الگو رو بررسی میکنه که بنظرم جالبه از دستش ندید
https://www.freecodecamp.org/news/ai-agent-engineers-guide-60-patterns-for-building-autonomous-systems-book/
@DevTwitter | <Reza Jafari/>
این کتاب ۶۰ از همین الگو رو بررسی میکنه که بنظرم جالبه از دستش ندید
https://www.freecodecamp.org/news/ai-agent-engineers-guide-60-patterns-for-building-autonomous-systems-book/
@DevTwitter | <Reza Jafari/>
❤7👍2👎1
معرفی مخزن:
اگه مثل من با MCPهای مختلف برای مدیریت کارها یا ساخت محصولاتت کار میکنی حتما این 4 تا مخزن قابل اعتماد برای MCPهای آماده رو ذخیره کن.
چرخ رو دوباره اختراع نکن.
1- https://github.com/modelcontextprotocol/servers
2- https://smithery.ai
3- https://glama.ai/mcp/servers
4- https://mcp.so
@DevTwitter | <Saeid/>
اگه مثل من با MCPهای مختلف برای مدیریت کارها یا ساخت محصولاتت کار میکنی حتما این 4 تا مخزن قابل اعتماد برای MCPهای آماده رو ذخیره کن.
چرخ رو دوباره اختراع نکن.
1- https://github.com/modelcontextprotocol/servers
2- https://smithery.ai
3- https://glama.ai/mcp/servers
4- https://mcp.so
@DevTwitter | <Saeid/>
👎3❤2🔥1
مدل Ox Alpha روی این ۵ ارائهدهنده کاملاً رایگانه (در مجموع حدود +5T توکن)
OpenCode: http://opencode.ai
OpenRouter: http://openrouter.ai
Command Code: http://commandcode.ai
Hermes: http://nousresearch.com
Venice: http://venice.ai
سیو کنید به کارتون میاد
@DevTwitter | <پارسا />
OpenCode: http://opencode.ai
OpenRouter: http://openrouter.ai
Command Code: http://commandcode.ai
Hermes: http://nousresearch.com
Venice: http://venice.ai
سیو کنید به کارتون میاد
@DevTwitter | <پارسا />
❤19👎9🔥4
وقتی RAM یک PHP Worker بالا میرود، اولین متهم معمولاً GC است.
اما معمولاً تقصیر GC نیست.
ممکن است یک Cache، Closure، Singleton یا حتی یک Reference کوچک، یک Object بزرگ را هنوز زنده نگه داشته باشد.
GC چیزی را که هنوز به آن Reference داریم، Garbage نمیداند.
در مقاله جدید، ساده و کاربردی بررسی کردم که Garbage Collector در PHP دقیقاً چه کاری انجام میدهد.
لینک مقاله
@DevTwitter | <Afshin Akrami/>
اما معمولاً تقصیر GC نیست.
ممکن است یک Cache، Closure، Singleton یا حتی یک Reference کوچک، یک Object بزرگ را هنوز زنده نگه داشته باشد.
GC چیزی را که هنوز به آن Reference داریم، Garbage نمیداند.
در مقاله جدید، ساده و کاربردی بررسی کردم که Garbage Collector در PHP دقیقاً چه کاری انجام میدهد.
لینک مقاله
@DevTwitter | <Afshin Akrami/>
👍12❤1
میزان حداقل RAM مورد نیاز Linux
- Ubuntu ~ 4-6 GB
- Pop!_OS ~ 4 GB
- Fedora ~ 2 GB
- Linux Mint ~ 2 GB
- Manjaro ~ 2 GB
- Rocky Linux ~ 2 GB
- Lubuntu ~ 1 GB
- Debian ~512 MB
- Arch Linux ~ 512 MB
- Puppy Linux ~ 256 MB
- antiX ~ 100 MB
- Tiny Core Linux — 28 MB
@DevTwitter | <MehrdadLinux/>
- Ubuntu ~ 4-6 GB
- Pop!_OS ~ 4 GB
- Fedora ~ 2 GB
- Linux Mint ~ 2 GB
- Manjaro ~ 2 GB
- Rocky Linux ~ 2 GB
- Lubuntu ~ 1 GB
- Debian ~512 MB
- Arch Linux ~ 512 MB
- Puppy Linux ~ 256 MB
- antiX ~ 100 MB
- Tiny Core Linux — 28 MB
@DevTwitter | <MehrdadLinux/>
❤77👎10🍌8
حالا امروز ما وایبکدرها رو مسخره میکنیم، فردا وایبکدرها میگن اینا اسکل بودن خودشون کد میزدن. :))
احتمالا ماها آخرین نسلی هستیم که لذت کد زدن و ساختن از صفر رو بردیم، دیگه از اینجا به بعد حتی خودمون هم نمیتونیم بشینیم کارکتر به کارکتر تایپ کنیم...
@DevTwitter
احتمالا ماها آخرین نسلی هستیم که لذت کد زدن و ساختن از صفر رو بردیم، دیگه از اینجا به بعد حتی خودمون هم نمیتونیم بشینیم کارکتر به کارکتر تایپ کنیم...
@DevTwitter
👍248💔24👎14
سرورم Down شد و من آخرین نفری بودم که فهمیدم!
برای اینکه دیگه این اتفاق نیفته، PingPulse رو ساختم؛ یه ابزار دسکتاپ برای Windows، macOS و Linux که با Ping، سرورها و دامینها رو مانیتور میکنه و در صورت قطعی با Notification، Telegram، SMS یا Webhook خبر میده.
Backend: Go
UI: React + TypeScript
Open Source
اگر DevOps، Backend یا Infra کار میکنی، خوشحال میشم تستش کنی و فیدبکت رو بهم بدی. حتی باگ یا پیشنهاد کوچیک هم خیلی کمک میکنه.
https://github.com/alikmndlu/PingPulse
@DevTwitter | <Ali Kamandlu/>
برای اینکه دیگه این اتفاق نیفته، PingPulse رو ساختم؛ یه ابزار دسکتاپ برای Windows، macOS و Linux که با Ping، سرورها و دامینها رو مانیتور میکنه و در صورت قطعی با Notification، Telegram، SMS یا Webhook خبر میده.
Backend: Go
UI: React + TypeScript
Open Source
اگر DevOps، Backend یا Infra کار میکنی، خوشحال میشم تستش کنی و فیدبکت رو بهم بدی. حتی باگ یا پیشنهاد کوچیک هم خیلی کمک میکنه.
https://github.com/alikmndlu/PingPulse
@DevTwitter | <Ali Kamandlu/>
🍌45❤29🔥4
تغییر مهم در قیمتگذاری Cursor از امروز
سرویس Cursor از امروز، ۲۴ اوت، مدل قیمتگذاری حالت Auto را تغییر میدهد؛ تغییری که برای توسعهدهندگانی که بهصورت سنگین از Agent استفاده میکنند، اهمیت زیادی دارد.
در مدل جدید، هزینه استفاده از حالت Auto دیگر یک نرخ ثابت مستقل نیست و بر اساس مدلی که پشت درخواست قرار میگیرد محاسبه میشود.
این تغییر زمانی مهمتر میشود که بدانیم یک وظیفه معمولی توسط Agent میتواند شامل دهها عملیات باشد:
خواندن و تحلیل فایلها، جستوجو در کد، اجرای ابزارها، تغییر چند فایل، اجرای تستها، بررسی خطاها و در نهایت اصلاح و تکمیل پروژه.
در چنین شرایطی، انتخاب مدل مستقیماً روی هزینه نهایی توسعه تأثیر میگذارد.
بهنظر میرسد Cursor به سمت مدلی حرکت میکند که در آن دیگر صرفاً «تعداد درخواستها» معیار مصرف نیست؛ بلکه مدل، حجم کاری و میزان استفاده واقعی از Agent اهمیت بیشتری پیدا میکند.
برای توسعهدهندگانی که روزانه چندین ساعت با Agentهای کدنویسی کار میکنند، این تغییر میتواند تفاوت قابلتوجهی در هزینه ماهانه ایجاد کند.
بهنظر میرسد دوران «یک اشتراک و استفاده تقریباً نامحدود از بهترین مدلها» بهتدریج در حال تغییر است.
@DevTwitter | <کدنویس اسطورهای/>
سرویس Cursor از امروز، ۲۴ اوت، مدل قیمتگذاری حالت Auto را تغییر میدهد؛ تغییری که برای توسعهدهندگانی که بهصورت سنگین از Agent استفاده میکنند، اهمیت زیادی دارد.
در مدل جدید، هزینه استفاده از حالت Auto دیگر یک نرخ ثابت مستقل نیست و بر اساس مدلی که پشت درخواست قرار میگیرد محاسبه میشود.
این تغییر زمانی مهمتر میشود که بدانیم یک وظیفه معمولی توسط Agent میتواند شامل دهها عملیات باشد:
خواندن و تحلیل فایلها، جستوجو در کد، اجرای ابزارها، تغییر چند فایل، اجرای تستها، بررسی خطاها و در نهایت اصلاح و تکمیل پروژه.
در چنین شرایطی، انتخاب مدل مستقیماً روی هزینه نهایی توسعه تأثیر میگذارد.
بهنظر میرسد Cursor به سمت مدلی حرکت میکند که در آن دیگر صرفاً «تعداد درخواستها» معیار مصرف نیست؛ بلکه مدل، حجم کاری و میزان استفاده واقعی از Agent اهمیت بیشتری پیدا میکند.
برای توسعهدهندگانی که روزانه چندین ساعت با Agentهای کدنویسی کار میکنند، این تغییر میتواند تفاوت قابلتوجهی در هزینه ماهانه ایجاد کند.
بهنظر میرسد دوران «یک اشتراک و استفاده تقریباً نامحدود از بهترین مدلها» بهتدریج در حال تغییر است.
@DevTwitter | <کدنویس اسطورهای/>
👎25👍7❤4
اگر با MediatR کار میکنی و هنوز پاسخ Queryها را دستی Cache میکنی، وقتشه سادهترش کنی.
با استفاده این پکیج فقط یک Attribute روی Request میگذاری؛ بقیه کارها توسط پایپلاین خودکار انجام میشود:
- کش انتخابی (Opt-in)؛ فقط Requestهایی که خودت مشخص میکنی Cache میشوند.
- پاکسازی کش با Tag؛ گروهی حذف کن، نه یکییکی.
- اتریبیوت [RequestOutputCacheEvict] روی Commandها در cqrs برای Invalidation خودکار بعد از موفقیت.
- پاکسازی خودکار کش با EF Core هنگام اجرای SaveChanges / SaveChangesAsync.
- پشتیبانی از Providerهای Redis یا Garnet و حتی Memory cache.
- پاکسازی توزیعشده با Pub/Sub بین سرویسها و CQRS Hostها.
- کش شرطی (Conditional Caching)؛ فقط وقتی عملیات موفق باشد یا شرط دلخواهت برقرار باشد.
- هدر X-NexGen-Output-Cache: HIT هنگام دریافت پاسخ از Cache.
- پشتیبانی از .NET 8، .NET 9 و .NET 10.
یک بار نصب کن، یک بار تست کن؛ تفاوتش را در کاهش Latency و سادهتر شدن کدها احساس میکنی.
NexGen.MediatR.Extensions.Caching
https://github.com/MatinGhanbari/NexGen.MediatR.Extensions.Caching
@DevTwitter | <Askiev/>
با استفاده این پکیج فقط یک Attribute روی Request میگذاری؛ بقیه کارها توسط پایپلاین خودکار انجام میشود:
- کش انتخابی (Opt-in)؛ فقط Requestهایی که خودت مشخص میکنی Cache میشوند.
- پاکسازی کش با Tag؛ گروهی حذف کن، نه یکییکی.
- اتریبیوت [RequestOutputCacheEvict] روی Commandها در cqrs برای Invalidation خودکار بعد از موفقیت.
- پاکسازی خودکار کش با EF Core هنگام اجرای SaveChanges / SaveChangesAsync.
- پشتیبانی از Providerهای Redis یا Garnet و حتی Memory cache.
- پاکسازی توزیعشده با Pub/Sub بین سرویسها و CQRS Hostها.
- کش شرطی (Conditional Caching)؛ فقط وقتی عملیات موفق باشد یا شرط دلخواهت برقرار باشد.
- هدر X-NexGen-Output-Cache: HIT هنگام دریافت پاسخ از Cache.
- پشتیبانی از .NET 8، .NET 9 و .NET 10.
یک بار نصب کن، یک بار تست کن؛ تفاوتش را در کاهش Latency و سادهتر شدن کدها احساس میکنی.
NexGen.MediatR.Extensions.Caching
https://github.com/MatinGhanbari/NexGen.MediatR.Extensions.Caching
@DevTwitter | <Askiev/>
❤9👍5🔥2