Forwarded from armin ghk
دوره آموزش Software Architecture (کاملا پروژه محور در NestJS منتشر شد)
بحثی خیلی مهم که متاسفانه کمتر بهش پرداخته شد که در این دوره به طور کامل بای سرفصل ها به صورت عملی آشنا خواهید شد
۱ـ معرفی دوره و مفاهیم پایه ای معماری نرم افزار
۲ـ معماری لایه ای (Layer)
۳ـ معماری clean architecture
۴-معماری hexagonal
۵ـ معماری onion
۶-معماری Domain Driven Design
۷ـ معماری microservices بخش اول
۸ـ معماری microservices بخش دوم
۹ـ معماری microservices بخش سوم
۱۰ـ معماری سرویس گرا SOA
۱۱ـ معماری سیستم های توزیع شده Distributed
۱۲ـ workflow طراحی جریان کاری و مدیریت processها
۱۳ـstate machine - طراحی و پیاده سازی ماشین های حالت
۱۴ـ معماری مبتنی بر رویداد Event-Driven Architecture
۱۵ـ مدیریت تراکنش ها و اطمینان از صحت داده ها transaction management
لینک دسترسی به دوره:
https://www.armincode.com
بحثی خیلی مهم که متاسفانه کمتر بهش پرداخته شد که در این دوره به طور کامل بای سرفصل ها به صورت عملی آشنا خواهید شد
۱ـ معرفی دوره و مفاهیم پایه ای معماری نرم افزار
۲ـ معماری لایه ای (Layer)
۳ـ معماری clean architecture
۴-معماری hexagonal
۵ـ معماری onion
۶-معماری Domain Driven Design
۷ـ معماری microservices بخش اول
۸ـ معماری microservices بخش دوم
۹ـ معماری microservices بخش سوم
۱۰ـ معماری سرویس گرا SOA
۱۱ـ معماری سیستم های توزیع شده Distributed
۱۲ـ workflow طراحی جریان کاری و مدیریت processها
۱۳ـstate machine - طراحی و پیاده سازی ماشین های حالت
۱۴ـ معماری مبتنی بر رویداد Event-Driven Architecture
۱۵ـ مدیریت تراکنش ها و اطمینان از صحت داده ها transaction management
لینک دسترسی به دوره:
https://www.armincode.com
armincode
آموزش برنامه نویسی | پروژه محور | ArminCode✅
ArminCode، مرجع آموزش برنامه نویسی با دورههای پروژه محور. یادگیری NestJS، پروژههای عملی و مقالات کاربردی برای توسعهدهندگان.
Forwarded from Milwad Khosravi | میلاد خسروی
اینکه همیشه یه راه سادهتر برات داره!
توی نسخه لاراول 12.28 به بعد، یه قابلیت جدید اومده که واقعاً حس "لاراولی بودن" رو منتقل میکنه✨
الان میتونی فقط با یه Attribute ساده، پالیسیت رو مستقیم به مدل وصل کنی😳
یعنی دیگه لازم نیست بری
AuthServiceProvider و دستی مپ کنی 😎لاراول خودش اتوماتیک تشخیص میده و هندلش میکنه 💪
یه خط کد کمتر، یه کافی کمتر
#Milwad #Laravel
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3🆒1
🔶 در حال ضبط دوره طراحی سایت شرکتی لاراول بودم در که موقع ضبط پکیچ laravel slugable که خودم نوشتم که خودکار slug رو ایجاد می کرد اما یه مشکلی داشت که برای روت resource از پارامتر id پشتیبانی نمی کرد و خطای ۴۰۴ می داد و فقط slug کار می کرد. بنابراین قابلیت پشتیبانی از پارامتر id در پکیچ اضافه کردیم که پیش فرض این پارامتر id فعال است و نیازی به تغییر نیست اما بخوای از پارامتر slug استفاده کنید با کد
گیت هاب :
https://github.com/LaraPire/laravel-slugable
#لاراول
@TheRaymondDev
protected $slugUseForRoutes = true در مدل اضافه می کنید و پارامتر slug فعال می کنید.گیت هاب :
https://github.com/LaraPire/laravel-slugable
#لاراول
@TheRaymondDev
GitHub
GitHub - LaraPire/laravel-slugable: Simple and lightweight with just one HasSlugable in the model
Simple and lightweight with just one HasSlugable in the model - LaraPire/laravel-slugable
👍2
🔸Girls don't reply to DMs
حدود ۲سال پیش که توییتر سورس مربوط به سیستم ریکامندیشین خودش رو به صورت اوپن سورس منتشر کرد یکی گلایه کرده بود که:
این ایشو همون سال بسته شد تا اینکه جدیدا این مشکل داره همهگیر میشه
https://github.com/twitter/the-algorithm/issues/412
#fun
@TheRaymondDev
حدود ۲سال پیش که توییتر سورس مربوط به سیستم ریکامندیشین خودش رو به صورت اوپن سورس منتشر کرد یکی گلایه کرده بود که:
به هر دختری پیام میدم جوابی نمیگیرم! لطفا مشکل رو حل کنید :)
این ایشو همون سال بسته شد تا اینکه جدیدا این مشکل داره همهگیر میشه
https://github.com/twitter/the-algorithm/issues/412
#fun
@TheRaymondDev
🤣19
Linuxor ?
ویندوز خودتون رو آپدیت نکنید، کاربرا گزارش دادن بعد از آپدیت وقتی تسک منیجر رو با دکمه X میبستن، بسته نمیشه و بدتر میره توی بکگراند و از منابع سیستم مصرف میکنه اگه به این مشکل خوردید تنها راه Kill کردنشه، تا مایکروسافت فیکسش کنه. @Linuxor
🔶 احساس می کنم کدهای ویندوز با هوش مصنوعی می نویسن و نظارت نمی کنن و خدا باگ پیدا میشه...
@TheRaymondDev
@TheRaymondDev
🥴6
🔶 در مستندات Preline UI یه مشکلی درباره CSS Variants داره.
وقتی توی فایل input.css مسیر CSS Variants Preline UI کپی و پیست می کنید و دستور زیر را اجرا می کنیم, خطا می دهد.
CSS Variants :
Run :
حالا CSS Variants بدون پوشه node_modules قرار می دهیم این مشکل حل می شود و اجرا می شود.
این مشکل رو به گیت هاب Preline UI گزارش دادم.
https://github.com/htmlstreamofficial/preline/issues/722
#ui
@TheRaymondDev
وقتی توی فایل input.css مسیر CSS Variants Preline UI کپی و پیست می کنید و دستور زیر را اجرا می کنیم, خطا می دهد.
CSS Variants :
/* Preline UI */
@import "./node_modules/preline/variants.css";
Run :
npx @tailwindcss/cli -i ./src/input.css -o ./src/output.css --watch
≈ tailwindcss v4.1.13
Error: Can't resolve './node_modules/preline/variants.css' in
'/home/.../www/wordpress/wp-content/themes/new/src'
حالا CSS Variants بدون پوشه node_modules قرار می دهیم این مشکل حل می شود و اجرا می شود.
@import "preline/variants.css";
این مشکل رو به گیت هاب Preline UI گزارش دادم.
https://github.com/htmlstreamofficial/preline/issues/722
#ui
@TheRaymondDev
GitHub
A problem calling CSS Variants · Issue #722 · htmlstreamofficial/preline
Your documentation says to copy and paste the following css import path. /* Preline UI */ @import "./node_modules/preline/variants.css"; but, when I run the following command, it gives an...
❤1👍1
Forwarded from محتوای آزاد سهراب (Sohrab)
ویندوز توی اخرین بتاش یک دکمه تست سرعت اینترنت اضافه کرده که وقتی روش بزنی توی بینگ سرچ میکنه speed test.
از اونجایی که مدیرعامل مایکروسافت قبلاً گفته بود که ۳۰ درصد از کدهای مایکروسافت با ai نوشته میشن یک مسأله قابل تامله.
#micro$oft
@SohrabContents
از اونجایی که مدیرعامل مایکروسافت قبلاً گفته بود که ۳۰ درصد از کدهای مایکروسافت با ai نوشته میشن یک مسأله قابل تامله.
#micro$oft
@SohrabContents
🥴7🤣3
🔶 بانک مرکزی ترکیه مجوز شرکت مالی Papara ترکیه را باطل کرد.
بسیاری کاربران ایرانی از کارت بین المللی Papara برای خرید اینترنتی استفاده می کند که شرکت مالی Papara ترکیه بیش از ۲۶ هزار حساب Papara بین سال های ۲۰۲۱ تا ۲۰۲۳ برای تراکنش های مرتبط با سایت های شرط بندی غیر قانونی استفاده شده اند؛ ارزش این تراکنشها حدود ۱۲ میلیارد لیره ترکیه بوده است و وجوه از طریق حسابهای بانکی داخلی به کیف پول های رمزارز منتقل می شدند.
این اقدام بخشی از سیاست دولت ترکیه برای مقابله با پول شویی و تشدید نظارت بر مؤسسات مالی الکترونیکی است و مدیران ارشد Papara نیز در این پرونده تحت پیگرد قرار گرفتهاند.
#خبر
@TheRaymondDev | @TechTube
بسیاری کاربران ایرانی از کارت بین المللی Papara برای خرید اینترنتی استفاده می کند که شرکت مالی Papara ترکیه بیش از ۲۶ هزار حساب Papara بین سال های ۲۰۲۱ تا ۲۰۲۳ برای تراکنش های مرتبط با سایت های شرط بندی غیر قانونی استفاده شده اند؛ ارزش این تراکنشها حدود ۱۲ میلیارد لیره ترکیه بوده است و وجوه از طریق حسابهای بانکی داخلی به کیف پول های رمزارز منتقل می شدند.
این اقدام بخشی از سیاست دولت ترکیه برای مقابله با پول شویی و تشدید نظارت بر مؤسسات مالی الکترونیکی است و مدیران ارشد Papara نیز در این پرونده تحت پیگرد قرار گرفتهاند.
#خبر
@TheRaymondDev | @TechTube
Türkiye Today
Turkish central bank revokes Papara’s operating license - Türkiye Today
One of Türkiye’s leading fintech platforms loses its license as authorities step up oversight following allegations of illegal betting, money laundering
❤3👍1
🎄 یک برنامه نویس تنبل
🔶 در مستندات Preline UI یه مشکلی درباره CSS Variants داره. وقتی توی فایل input.css مسیر CSS Variants Preline UI کپی و پیست می کنید و دستور زیر را اجرا می کنیم, خطا می دهد. CSS Variants : /* Preline UI */ @import "./node_modules/preline/variants.css"; Run…
🔶 این مسیر فایل درسته :
توی مستندات نوشته یک dot کم داره
#ui
@TheRaymondDev
@import "../node_modules/preline/variants.css";
توی مستندات نوشته یک dot کم داره
#ui
@TheRaymondDev
🔶 اخیرا یه سرویس مدیریت کاربران و احراز هویت Clerk معرفی شده که برای اپلیکیشنهای وب و موبایل طراحی شده تا تیم های توسعه بتوانند سریع وارد بخش احراز هویت و مدیریت کاربران شوند بدون اینکه همهی این سیستم را از صفر بسازند.
اما بدی این سرویس اینکه داده های مدیریت کاربران و عضویت آن در سرورهای خود نگهداری می شوند و اگر داده های حساسی دارید, استفاده از احزار هویت Clerk توصیه نمی شود.
https://clerk.com
@TheRaymondDev
اما بدی این سرویس اینکه داده های مدیریت کاربران و عضویت آن در سرورهای خود نگهداری می شوند و اگر داده های حساسی دارید, استفاده از احزار هویت Clerk توصیه نمی شود.
https://clerk.com
@TheRaymondDev
🥴6🤣1
🔶 برای فریم ورک لاراول، الگوی Repository Pattern بهترین نوع معماری است، زیرا سازگاری کامل با ساختار این فریم ورک دارد.
#لاراول
@TheRaymondDev
#لاراول
@TheRaymondDev
🔥5
Forwarded from Golden Code (@lix)
یه روش برای اینکه کارهای تکراریه مثل ساخت یه سری کلاسهای خاص (مثلا DTO) رو خودکار کنید
اولش ببینیم چرا custom artisan command مفیده؟
صرفهجویی در زمان
کاهش خطا: از نوشتن دستی کد جلوگیری میکنین
وقت بیشتری برای کدنویسی بخشهای مهم پروژه دارید.
📌 چطوری custom artisan command بسازیم؟
1. ایجاد کامند جدید:
با دستور زیر، یک کامند جدید ایجاد کنین:
2. نوشتن منطق دستور:
در کلاس جدید،دستور مورد نظرتونو بنویسین (مثل ساخت یک DTO جدید).
یه مثال:
3. اجرای دستور:
حالا با این دستور میتونین بسادگی کلاسهای DTO جدید بسازید:
خلاصش که:
با استفاده از custom artisan command، میتونین کارهای تکراریتون رو خودکار کنین و توسعه پروژتون رو هم سرعت بدید.
#Laravel #Laravel_tip #لاراول
@GoldenCodeir 🔥
(بهمنبع و مثالش دقت کنید 👇🏾)
https://x.com/mmartin_joo/status/1982797695568707742?t=EQ-hdRBX3rRgGuPH2EyA9Q&s=19
اولش ببینیم چرا custom artisan command مفیده؟
صرفهجویی در زمان
کاهش خطا: از نوشتن دستی کد جلوگیری میکنین
وقت بیشتری برای کدنویسی بخشهای مهم پروژه دارید.
📌 چطوری custom artisan command بسازیم؟
1. ایجاد کامند جدید:
با دستور زیر، یک کامند جدید ایجاد کنین:
php artisan make:command CreateDto
2. نوشتن منطق دستور:
در کلاس جدید،دستور مورد نظرتونو بنویسین (مثل ساخت یک DTO جدید).
یه مثال:
<?php
protected $signature = 'make:dto {name}';
protected $denoscription = 'Create a new DTO class';
public function handle() {
$name = $this->argument('name');
file_put_contents(app_path("Dtos/{$name}.php"), "<?php\n\nclass {$name} {}\n");
$this->info("DTO {$name} created successfully!");
}
3. اجرای دستور:
حالا با این دستور میتونین بسادگی کلاسهای DTO جدید بسازید:
php artisan make:dto MyDto
خلاصش که:
با استفاده از custom artisan command، میتونین کارهای تکراریتون رو خودکار کنین و توسعه پروژتون رو هم سرعت بدید.
#Laravel #Laravel_tip #لاراول
@GoldenCodeir 🔥
(بهمنبع و مثالش دقت کنید 👇🏾)
https://x.com/mmartin_joo/status/1982797695568707742?t=EQ-hdRBX3rRgGuPH2EyA9Q&s=19
X (formerly Twitter)
Martin Joo (@mmartin_joo) on X
💡 Did you know you can create custom artisan generator commands for your classes?
If you find yourself creating the same type of class over and over again (for example, DTOs), you might want to take a look at it:
If you find yourself creating the same type of class over and over again (for example, DTOs), you might want to take a look at it:
❤3👍1
Forwarded from نوشتههای ترمینالی
خطا داریم؟ همینه که هست!
یه مثال دیدم که میگفت شما وقتی ماشینتون پنچر میشه صبر میکنید تا تعمیرکار بیاد درستش کنه، یا با همون چرخ های پنجر با سرعت کم ادامه میدین تا به مقصد برسید؟
به نظرم همین توی برنامهنویسی هم مصداق داره، وقتی برنامهمون به ارور میخوره چطوری مدیریتش میکنیم؟ حالا این ارور خیلی وقت ها exceptionه توی زبون های برنامه نویسی، ولی یکم سطح بالاتر ببینیم،
مثلا به یه سرویس خارجی درخواست دادیم و نیست، خب چیکار کنیم؟
یه فایل کانفیگ رو میخوایم لود کنیم ولی نیست.
دیتایی که از سمت کاربر اومده معتبر نیست.
در یک برنامه معمولی جوابِ (احتمالا) درست به خیلی از این سوالا اینه که خب کارکرد برنامه رو متوقف کن و بگو نمیتونم. برنامه کار نکنه تا دوباره با برطرف شدن مشکلات یکی از اول اجراش کنه،
ولی اگر برنامه ما قراره توی یکسری از محیطها اجرا بشه دیگه خبری از «من کار نمیکنم تا شرایط درست بشه» نیست. چه محیطهایی؟ محیطهایی که availability بالا مهمه مثلا سیستم های امبدد یا بکاند.
مثلا قراره ما مسیریابی یک هواپیما رو انجام بدیم و سیگنال GPS دریافت نمیکنیم، خب به هواپیما بگیم فعلا من کار نمیکنم؟! یعنی چی که کار نمیکنم، با سرعت زیاد داره میره :)))
یا مثلاً توی کلود اگر ارور بدیم و برنامه کرش کنه کنیم چی میشه؟ کوبرنتیز دوباره برنامه رو اجرا میکنه و دوباره با مشکل درگیریم!
پس در این شرایط نمیشه ارور داد و بیخیال شد، بلکه باید با همون چرخ پنچر ادامه داد، برای هر روش هم با خلاقیت خودمون یا با کمک روش های پیشنهاد شده باید یه پلن بی داشته باشیم،
پیاده سازی و تست خود برنامه در کنار اینکه هر قسمتی ممکنه کار نکنه و سناریوهای مختلفش، کار سختیه ولی هزینهی داشتن یه نرم افزار قابل اعتماده.
مثلا چه مشکلاتی؟
مثلاً اگه قراره کانفیگ فایل رو از بیرون لود کنیم, آمادگی نبودنش رو هم داشته باشیم، مثلا یه کانفیگ پیشفرض داشته باشیم (البته کانفیگ چون موقع اولین اجرای برنامه خودش رو نشون میده شاید نیازی هم نباشه)
مثلا اگر داده gps به ما نرسید، با کمک داده های قبلی که ذخیره کردیم و یا ترکیبش با سرعت و شتاب و ... مشکل رو موقتا و حتی نادقیق حل کنیم
یا مثلاً اگر به سرور خارجی درخواست میزنیم و نیست، آمادگی نبودنش رو داشته باشیم، اینجا یکسری پترن که تو صنعت استفاده میشه داریم
مثلا چه پترنهایی؟
+ دوباره درخواست بده: retry pattern
+ به یکی دیگه درخواست بده: fallback
+ اگر خرابه تا یه مدت بهش درخواست نده تا ارور الکی نگیری: circuit breaker
+ اگه سرور خارجی کنده، خیلی صبر نکن تا response time خودت هم بالا نره
+ اگر سرور خارجی دیتا قراره بهت بده، دیتای قبلی رو کش کن.
اینها در سطح کد بودن، در سطح معماری هم میشه از قبل روشهایی رو تدارک دید مثلاً خود دیتابیس رو چطوری High available کنیم، یا روشهایی که بیشتر تو سیستم های امبدد استفاده میشه مثل اینکه یه برنامه رو با چند تا پیاده سازی همزمان اجرا کنیم تا اگر یکیش خراب شد اون یکیها باشن!
منابع:
https://opensource.com/article/19/9/transient-faults-devops
https://www.jrebel.com/blog/microservices-resilience-patterns
https://learn.microsoft.com/en-us/azure/architecture/best-practices/transient-faults
https://learn.microsoft.com/en-us/dotnet/architecture/cloud-native/application-resiliency-patterns
@terminal_stuff
یه مثال دیدم که میگفت شما وقتی ماشینتون پنچر میشه صبر میکنید تا تعمیرکار بیاد درستش کنه، یا با همون چرخ های پنجر با سرعت کم ادامه میدین تا به مقصد برسید؟
به نظرم همین توی برنامهنویسی هم مصداق داره، وقتی برنامهمون به ارور میخوره چطوری مدیریتش میکنیم؟ حالا این ارور خیلی وقت ها exceptionه توی زبون های برنامه نویسی، ولی یکم سطح بالاتر ببینیم،
مثلا به یه سرویس خارجی درخواست دادیم و نیست، خب چیکار کنیم؟
یه فایل کانفیگ رو میخوایم لود کنیم ولی نیست.
دیتایی که از سمت کاربر اومده معتبر نیست.
در یک برنامه معمولی جوابِ (احتمالا) درست به خیلی از این سوالا اینه که خب کارکرد برنامه رو متوقف کن و بگو نمیتونم. برنامه کار نکنه تا دوباره با برطرف شدن مشکلات یکی از اول اجراش کنه،
ولی اگر برنامه ما قراره توی یکسری از محیطها اجرا بشه دیگه خبری از «من کار نمیکنم تا شرایط درست بشه» نیست. چه محیطهایی؟ محیطهایی که availability بالا مهمه مثلا سیستم های امبدد یا بکاند.
مثلا قراره ما مسیریابی یک هواپیما رو انجام بدیم و سیگنال GPS دریافت نمیکنیم، خب به هواپیما بگیم فعلا من کار نمیکنم؟! یعنی چی که کار نمیکنم، با سرعت زیاد داره میره :)))
یا مثلاً توی کلود اگر ارور بدیم و برنامه کرش کنه کنیم چی میشه؟ کوبرنتیز دوباره برنامه رو اجرا میکنه و دوباره با مشکل درگیریم!
پس در این شرایط نمیشه ارور داد و بیخیال شد، بلکه باید با همون چرخ پنچر ادامه داد، برای هر روش هم با خلاقیت خودمون یا با کمک روش های پیشنهاد شده باید یه پلن بی داشته باشیم،
پیاده سازی و تست خود برنامه در کنار اینکه هر قسمتی ممکنه کار نکنه و سناریوهای مختلفش، کار سختیه ولی هزینهی داشتن یه نرم افزار قابل اعتماده.
مثلا چه مشکلاتی؟
مثلاً اگه قراره کانفیگ فایل رو از بیرون لود کنیم, آمادگی نبودنش رو هم داشته باشیم، مثلا یه کانفیگ پیشفرض داشته باشیم (البته کانفیگ چون موقع اولین اجرای برنامه خودش رو نشون میده شاید نیازی هم نباشه)
مثلا اگر داده gps به ما نرسید، با کمک داده های قبلی که ذخیره کردیم و یا ترکیبش با سرعت و شتاب و ... مشکل رو موقتا و حتی نادقیق حل کنیم
یا مثلاً اگر به سرور خارجی درخواست میزنیم و نیست، آمادگی نبودنش رو داشته باشیم، اینجا یکسری پترن که تو صنعت استفاده میشه داریم
مثلا چه پترنهایی؟
+ دوباره درخواست بده: retry pattern
+ به یکی دیگه درخواست بده: fallback
+ اگر خرابه تا یه مدت بهش درخواست نده تا ارور الکی نگیری: circuit breaker
+ اگه سرور خارجی کنده، خیلی صبر نکن تا response time خودت هم بالا نره
+ اگر سرور خارجی دیتا قراره بهت بده، دیتای قبلی رو کش کن.
اینها در سطح کد بودن، در سطح معماری هم میشه از قبل روشهایی رو تدارک دید مثلاً خود دیتابیس رو چطوری High available کنیم، یا روشهایی که بیشتر تو سیستم های امبدد استفاده میشه مثل اینکه یه برنامه رو با چند تا پیاده سازی همزمان اجرا کنیم تا اگر یکیش خراب شد اون یکیها باشن!
منابع:
https://opensource.com/article/19/9/transient-faults-devops
https://www.jrebel.com/blog/microservices-resilience-patterns
https://learn.microsoft.com/en-us/azure/architecture/best-practices/transient-faults
https://learn.microsoft.com/en-us/dotnet/architecture/cloud-native/application-resiliency-patterns
@terminal_stuff
Opensource.com
3 ways to handle transient faults for DevOps
In electrical engineering, a transient fault is defined as an error condition that vanishes after the power is disconnected and restored.
❤3
Forwarded from DevTwitter | توییت برنامه نویسی
در گیتهاب Typenoscript به محبوبترین زبان برنامهنویسی تبدیل شده و از پایتون جلو زده!
@DevTwitter | <Masoud Majidi/>
@DevTwitter | <Masoud Majidi/>
❤8
🔶 به نظر می رسد انویدیا عملاً بازار چین را از دست داده و چین وارد عصر استقلال فناوری در حوزه هوش مصنوعی شده است.
چین پس از سالها تحریم آمریکا علیه فروش تراشه های هوش مصنوعی انویدیا، با توسعه تراشه های بومی توسط Huawei و SMIC به خودکفایی رسیده است. تراشه های جدید چینی عملکردی نزدیک به محصولات انویدیا دارند و همین باعث شد پکن دیگر به واردات تراشه های آمریکایی نیازی نداشته باشد. در نتیجه، وقتی دولت ترامپ تلاش کرد فروش تراشه های انویدیا را در مذاکرات با چین مطرح کند، شی جینپینگ آن را رد کرد.
#خبر
#توییت
@TheRaymondDev
چین پس از سالها تحریم آمریکا علیه فروش تراشه های هوش مصنوعی انویدیا، با توسعه تراشه های بومی توسط Huawei و SMIC به خودکفایی رسیده است. تراشه های جدید چینی عملکردی نزدیک به محصولات انویدیا دارند و همین باعث شد پکن دیگر به واردات تراشه های آمریکایی نیازی نداشته باشد. در نتیجه، وقتی دولت ترامپ تلاش کرد فروش تراشه های انویدیا را در مذاکرات با چین مطرح کند، شی جینپینگ آن را رد کرد.
#خبر
#توییت
@TheRaymondDev
X (formerly Twitter)
Megatron (@Megatron_ron) on X
NEW:
🇨🇳🇺🇲 China already has a replacement for Nvidia's AI chips and is not interested in them anymore - Reuters
Back in 2022, the US banned Nvidia from selling its powerful AI chips to China.
So Nvidia made a light version called the H20, which was weak…
🇨🇳🇺🇲 China already has a replacement for Nvidia's AI chips and is not interested in them anymore - Reuters
Back in 2022, the US banned Nvidia from selling its powerful AI chips to China.
So Nvidia made a light version called the H20, which was weak…
👍7