این هفته آموزش Raft داریم! کافکا با KRaft تونست ZooKeeper رو بزاره کنار
احتمالا ویدئو جمعه ریلیز میشه! میخواستم لایو بزارم گفتم خیلی روند یکنواخت نشه دیگه :)
احتمالا ویدئو جمعه ریلیز میشه! میخواستم لایو بزارم گفتم خیلی روند یکنواخت نشه دیگه :)
سلام رفقا 👋 ،
در ویدئو جدید درباره Raft میخواهیم صحبت کنیم و در قسمت بعدش درباره KRaft
اگر دوست دارین بدونید KRaft چطوری کار میکنه این ویدئو ببینید تا یکی دو روز دیگه قسمت بعد هم میاد بیرون💣
02:00 الگوریتم یا پروتکل Distributed consensus
05:30 مزایای Distributed consensus algorithm
09:35 چالشهای Distributed consensus algorithm
14:30 الگوریتم Paxos چطوری کار میکنه؟
23:40 شروع آموزش Raft
26:20 نقش های سرور ها در Raft
28:00 مفهوم Raft election timeout چیست؟
31:00 مفهوم Leader Election در Raft
32:00 نحوه کارکرد Heartbeat در Raft
34:00 عدد Quorum در Raft چطوری حساب میشود؟
38:00 مزایا و معایب زوج یا فرد بودن سرور ها
45:00 مفهوم Log replication در Raft چطوری کار میکنه؟
49:00 خطای Network partition چطوری هندل میشه؟
لینک ویدئو: https://youtu.be/gHC1efLo95k
پلی لیست: Kafka Like a Pro
مدت ویدئو: 52 دقیقه
در ویدئو جدید درباره Raft میخواهیم صحبت کنیم و در قسمت بعدش درباره KRaft
اگر دوست دارین بدونید KRaft چطوری کار میکنه این ویدئو ببینید تا یکی دو روز دیگه قسمت بعد هم میاد بیرون
02:00 الگوریتم یا پروتکل Distributed consensus
05:30 مزایای Distributed consensus algorithm
09:35 چالشهای Distributed consensus algorithm
14:30 الگوریتم Paxos چطوری کار میکنه؟
23:40 شروع آموزش Raft
26:20 نقش های سرور ها در Raft
28:00 مفهوم Raft election timeout چیست؟
31:00 مفهوم Leader Election در Raft
32:00 نحوه کارکرد Heartbeat در Raft
34:00 عدد Quorum در Raft چطوری حساب میشود؟
38:00 مزایا و معایب زوج یا فرد بودن سرور ها
45:00 مفهوم Log replication در Raft چطوری کار میکنه؟
49:00 خطای Network partition چطوری هندل میشه؟
لینک ویدئو: https://youtu.be/gHC1efLo95k
پلی لیست: Kafka Like a Pro
مدت ویدئو: 52 دقیقه
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
آموزش Raft • به همراه چالش های Rick و دوستانش
توی این ویدیو قراره یکی از مفاهیم کلیدی سیستمهای توزیعشده رو بررسی کنیم: الگوریتمهای اجماع مثل Paxos و Raft.
اگه برات سواله که سیستمهای بزرگ مثل Kafka چطور بدون مشکل روی چند تا سرور با هم هماهنگ میشن، این ویدیو رو از دست نده.
از مفاهیم پایه شروع میکنیم،…
اگه برات سواله که سیستمهای بزرگ مثل Kafka چطور بدون مشکل روی چند تا سرور با هم هماهنگ میشن، این ویدیو رو از دست نده.
از مفاهیم پایه شروع میکنیم،…
Code With HSN pinned «سلام رفقا 👋 ، در ویدئو جدید درباره Raft میخواهیم صحبت کنیم و در قسمت بعدش درباره KRaft اگر دوست دارین بدونید KRaft چطوری کار میکنه این ویدئو ببینید تا یکی دو روز دیگه قسمت بعد هم میاد بیرون 💣 02:00 الگوریتم یا پروتکل Distributed consensus 05:30 مزایای Distributed…»
نسخه جدید DispatchR با Amin ریلیز کردیم،
ایده اصلیش از سمت Amin بود که میخواست یک Generic Pipeline داشته باشیم تا لازم نباشه ولیدیشن رو برای همه هندلر ها دونه دونه رجیستر کنیم!
در مرحله اول خودش مشارکت کرد و در مرحله دوم من یک Hotfix رفتم روش تا بتونیم Async Generic Pipeline هم داشته باشیم
نسخه جدید از الان قابل استفاده هست💣
انشالله تست نویسی روهم استارت میزنیم همین روزا
داکیومنت رو آپدیت کردم همچنین اگر دوست داشتید PR هارو بخونید:
PR Generic Pipeline: https://github.com/hasanxdev/DispatchR/pull/15
PR Async Generic Pipeline: https://github.com/hasanxdev/DispatchR/pull/16
ایده اصلیش از سمت Amin بود که میخواست یک Generic Pipeline داشته باشیم تا لازم نباشه ولیدیشن رو برای همه هندلر ها دونه دونه رجیستر کنیم!
در مرحله اول خودش مشارکت کرد و در مرحله دوم من یک Hotfix رفتم روش تا بتونیم Async Generic Pipeline هم داشته باشیم
نسخه جدید از الان قابل استفاده هست
انشالله تست نویسی روهم استارت میزنیم همین روزا
داکیومنت رو آپدیت کردم همچنین اگر دوست داشتید PR هارو بخونید:
PR Generic Pipeline: https://github.com/hasanxdev/DispatchR/pull/15
PR Async Generic Pipeline: https://github.com/hasanxdev/DispatchR/pull/16
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1 12 3 1 1
سلام رفقا، چند ماه پیش یک ویدئو برای اینکه چطوری امریه سربازی بگیریم رکورد کردم و از سختی هایی که در این پروسه کشیدم توضیح دادم و حالا درحالی که چند ماه بیشتر نمونده پکیج تکمیل شد و جنگ شد خود اتفاقاتی که میگم بعضیا شون 1 درصد احتمال داشت پیش بیاد و جنگ کمتر از 1 درصد :)
امیدوارم بهزودی از این دوران دشوار عبور کنیم، یک ویدئو جدید درباره کافکا هم داریم که به زودی میزارمش
از حالتون بگید برام ببینم خوبین چطورین؟ اصلا حوصله ویدئو جدید دارین؟
https://youtu.be/kjKn9qQGWnU
امیدوارم بهزودی از این دوران دشوار عبور کنیم، یک ویدئو جدید درباره کافکا هم داریم که به زودی میزارمش
از حالتون بگید برام ببینم خوبین چطورین؟ اصلا حوصله ویدئو جدید دارین؟
https://youtu.be/kjKn9qQGWnU
YouTube
صفر تا صد امریه گرفتن از درخواست تا پایان آموزشی
صفر تا صد امریه سربازی، هنوز سربازی نرفتی و دغدغه داری؟ نمیدونی چطور از تخصصت برای گرفتن امریه استفاده کنی؟ یا حتی نمیدونی توی دوران آموزشی باید چیکار کنی؟ 🤔
من توی این ویدیو همه چیز رو کامل و واضح توضیح دادم:
✅ چطور برای امریه اقدام کنیم؟ (از انتخاب سازمان…
من توی این ویدیو همه چیز رو کامل و واضح توضیح دادم:
✅ چطور برای امریه اقدام کنیم؟ (از انتخاب سازمان…
نوبیتکس رو هک میکنند! بانک کشور رو هک میکنند!
هر چیزی رو هک میکنن بجز همین فیلترینگ مسخره رو! بزنید پاکش کنید با سورس کدش! خسته شدیم
هر چیزی رو هک میکنن بجز همین فیلترینگ مسخره رو! بزنید پاکش کنید با سورس کدش! خسته شدیم
👍19 1 1
سلام بچها دوباره پر قدرت شروع میکنیم، بیدی نیستیم که از این بادها بلرزیم و انگیزه مون رو از دست بدیم 💪
دوتا آپدیت:
1. در همین یکی دو هفته جنگ چند نفر از بلاد کفر کمک کردن تا DispatchR جذاب تر بشه نسخه جدید 1.3.0 رو میتونید از لینک زیر change هاشو ببینید
2. امشب شروع میکنم ویدئو KRaft رو ایشالا رندر کنم فردا یا شنبه میرسه دستتون
دلم خیلی برای این فضا و یوتیوب تنگ شده بود، مرسی که هستید ❤️
https://github.com/hasanxdev/DispatchR/releases/tag/v1.3.0
دوتا آپدیت:
1. در همین یکی دو هفته جنگ چند نفر از بلاد کفر کمک کردن تا DispatchR جذاب تر بشه نسخه جدید 1.3.0 رو میتونید از لینک زیر change هاشو ببینید
2. امشب شروع میکنم ویدئو KRaft رو ایشالا رندر کنم فردا یا شنبه میرسه دستتون
دلم خیلی برای این فضا و یوتیوب تنگ شده بود، مرسی که هستید ❤️
https://github.com/hasanxdev/DispatchR/releases/tag/v1.3.0
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
Release v1.3.0 - Enhanced Flexibility and Configurability · hasanxdev/DispatchR
What's Changed
Update launch settings and add new HTTP requests by @mixedHans in #19
Remove 'new()' constraint from generic type parameters by @mixedHans in #18
full .gitignore, extens...
Update launch settings and add new HTTP requests by @mixedHans in #19
Remove 'new()' constraint from generic type parameters by @mixedHans in #18
full .gitignore, extens...
👍11 6 2
کافکا رفت و انقلاب شد!
سلام رفقا👋 ،
در ویدئو جدید درباره Kafka Raft صحبت میکنیم تا باهم ببینیم کافکا چطوری به این تحمل خطای بالا رسیده است.
اگر دوست دارین بدونید KRaft چطوری کار میکنه این ویدئو ببینید💣
00:55 مروری بر Raft
11:50 نقش Zookeeper چیست؟
18:08 در کافکا Control Plan و Data Plan چیست؟
19:45 بررسی چند سناریو failover در zookeeper
26:38 بهبود های Raft در Kafka
32:30 ساختار متفاوت KRaft به نسبت Raft
36:30 سناریو failover در KRaft
46:10 رشد دیتا در کافکا بینهایت است؟
لینک ویدئو: https://youtu.be/ZT2V4d4lxAo
پلی لیست: Kafka Like a Pro
مدت ویدئو: 48 دقیقه
سلام رفقا
در ویدئو جدید درباره Kafka Raft صحبت میکنیم تا باهم ببینیم کافکا چطوری به این تحمل خطای بالا رسیده است.
اگر دوست دارین بدونید KRaft چطوری کار میکنه این ویدئو ببینید
00:55 مروری بر Raft
11:50 نقش Zookeeper چیست؟
18:08 در کافکا Control Plan و Data Plan چیست؟
19:45 بررسی چند سناریو failover در zookeeper
26:38 بهبود های Raft در Kafka
32:30 ساختار متفاوت KRaft به نسبت Raft
36:30 سناریو failover در KRaft
46:10 رشد دیتا در کافکا بینهایت است؟
لینک ویدئو: https://youtu.be/ZT2V4d4lxAo
پلی لیست: Kafka Like a Pro
مدت ویدئو: 48 دقیقه
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
کافکا رفت و انقلاب شد! • آموزش KRaft
اگه برات سواله که Kafka چطور بدون مشکل بین چند سرور هماهنگی ایجاد میکنه، یا اینکه چرا دیگه به Zookeeper وابسته نیست، این ویدیو مخصوص شماست.
چیزایی که تو این ویدیو یاد میگیری:
Zookeeper چه نقشی در Kafka داره و چرا حذف شده؟
KRaft چه مزیتهایی نسبت به معماری…
چیزایی که تو این ویدیو یاد میگیری:
Zookeeper چه نقشی در Kafka داره و چرا حذف شده؟
KRaft چه مزیتهایی نسبت به معماری…
نمیدونید چقدر خوشحال شدم وقتی دیدم یکی از شماها روی DispatchR یک PR فرستاده بودید و وقتی وارد Profileتون شدم دیدم کمتر از یک هفته هست به GitHub جوین شدید و اولین Contribute که در دنیای Open Sourceتون با Repo من بوده ❤️
این حرکت fsarab برام فقط یه PR نبود، یه نشونهست از اینکه وقتی کسی واقعن بخواد یاد بگیره و پیشرفت کنه، هیچ چیز جلوش نیست. نه زمان، نه تجربه کم، نه حتی تازهوارد بودن تو GitHub.
خوشحالم که تونستم نقشی هرچند کوچک توی مسیر رشدتون داشته باشم❤️
این حرکت fsarab برام فقط یه PR نبود، یه نشونهست از اینکه وقتی کسی واقعن بخواد یاد بگیره و پیشرفت کنه، هیچ چیز جلوش نیست. نه زمان، نه تجربه کم، نه حتی تازهوارد بودن تو GitHub.
خوشحالم که تونستم نقشی هرچند کوچک توی مسیر رشدتون داشته باشم
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
با نسخه 1.3.1 DispachR زمانی که دارین از Aspire استفاده میکنید میتونید همه ی هندلر هارو بزارین داخل یک لایه از برنامه تون توی هر میکروسرویس هندلر هارو include یا exclude کنید
با تشکر از MatheusReichert
https://github.com/hasanxdev/DispatchR/releases/tag/v1.3.1
با تشکر از MatheusReichert
https://github.com/hasanxdev/DispatchR/releases/tag/v1.3.1
GitHub
Release v1.3.1 - Handler Include/Exclude Options · hasanxdev/DispatchR
What's Changed
[ImgBot] Optimize images by @imgbot in #12
feature: Injected Handlers Filtering by @MatheusReichert in #25
Update README.md for v1.3.1 by @hasanxdev in #26
New Contributors
@i...
[ImgBot] Optimize images by @imgbot in #12
feature: Injected Handlers Filtering by @MatheusReichert in #25
Update README.md for v1.3.1 by @hasanxdev in #26
New Contributors
@i...
"Logic will get you from A to B. Imagination will take you everywhere."
— Albert Einstein
«منطق تو را از نقطه A به نقطه B میبرد. تخیل تو را به همه جا خواهد رساند.»
— آلبرت انیشتین
— Albert Einstein
«منطق تو را از نقطه A به نقطه B میبرد. تخیل تو را به همه جا خواهد رساند.»
— آلبرت انیشتین
👍6 2 1
بچها جمعه اگه همه چیز خوب پیش بره ویدئو تست داریم با علی حاجی خالویی رودمپ رو تمام میکنیم، روی رودمپ یه سری آپدیت ها انجام دادم وقت کردید ببینیدش
مهم ترین چیزی که توی رودمپ اضافه شده stryker mutator هست که شبیه کانسپت جهش ژنیتیکی کدتون رو جهش میده و تست هاتون رو ران میکنه زیبا ترین قسمتش ریپورتی هست که بهتون میده
ترکیب این با test coverage خیلی دید خوبی به کیفیت تست هاتون میده حالا ویدئو ریلیز بشه داخلش میشنوید چی میگم ❤️
https://stryker-mutator.io/docs/
https://github.com/hasanxdev/Test-Roadmap-For-Developers
مهم ترین چیزی که توی رودمپ اضافه شده stryker mutator هست که شبیه کانسپت جهش ژنیتیکی کدتون رو جهش میده و تست هاتون رو ران میکنه زیبا ترین قسمتش ریپورتی هست که بهتون میده
ترکیب این با test coverage خیلی دید خوبی به کیفیت تست هاتون میده حالا ویدئو ریلیز بشه داخلش میشنوید چی میگم ❤️
https://stryker-mutator.io/docs/
https://github.com/hasanxdev/Test-Roadmap-For-Developers
یه تشکر ویژه مثل همیشه از امیر هم داشته باشیم که کانتریبیوت کرد روی DispachR و نسخه جدید DispachR از الان به بعد برای .NET8 هم سازگار هست میتونید استفاده کنید
حواستون هست DispachR بیشتر از 220 تا استار گرفت؟ تقریبا توی یک ماه. اگر علاقه به مشارکت داشتید به ایشو ها سر بزنید دوتا ایشو باز داریم
تست نویسی روهم به زودی شروع میکنیم رودمپ رو دنبال کنید اگه ندیدید ببینید ✌🏻
https://github.com/hasanxdev/DispatchR/releases/tag/v1.3.2
حواستون هست DispachR بیشتر از 220 تا استار گرفت؟ تقریبا توی یک ماه. اگر علاقه به مشارکت داشتید به ایشو ها سر بزنید دوتا ایشو باز داریم
تست نویسی روهم به زودی شروع میکنیم رودمپ رو دنبال کنید اگه ندیدید ببینید ✌🏻
https://github.com/hasanxdev/DispatchR/releases/tag/v1.3.2
GitHub
Release v1.3.2 - Support .NET8 · hasanxdev/DispatchR
What's Changed
update README.md by @hasanxdev in #28
✨ Add .NET 8 Support by @AmBplus in #30
update version in README.md by @hasanxdev in #32
New Contributors
@AmBplus made their first cont...
update README.md by @hasanxdev in #28
✨ Add .NET 8 Support by @AmBplus in #30
update version in README.md by @hasanxdev in #32
New Contributors
@AmBplus made their first cont...
Forwarded from Learning With M
سلام.
متاسفانه اخیرا شاهد تعدیل نیرو در شرکت های بزرگی مثل علی بابا بودیم.
تحلیل های متفاوتی هم می بینم که دوستان می نوسین که اکثرا از روی عصبانیت هست.
از اونجایی که هر مشکلی همیشه یه درسی توش داره، می خوام از این مشکل هم یک درس جدید در بیارم.
برای همین میخوام در مورد دلایل تعدیل نیرو به این سبک در شرکت های فناوری براتون بگم.
برای همین پستی در وبلاگم در این مورد نوشتم که توجه شما رو به اون جلب می کنم :
چرا شرکت های فناوری تعدیل نیرو می کنند.
@learning_with_m
متاسفانه اخیرا شاهد تعدیل نیرو در شرکت های بزرگی مثل علی بابا بودیم.
تحلیل های متفاوتی هم می بینم که دوستان می نوسین که اکثرا از روی عصبانیت هست.
از اونجایی که هر مشکلی همیشه یه درسی توش داره، می خوام از این مشکل هم یک درس جدید در بیارم.
برای همین میخوام در مورد دلایل تعدیل نیرو به این سبک در شرکت های فناوری براتون بگم.
برای همین پستی در وبلاگم در این مورد نوشتم که توجه شما رو به اون جلب می کنم :
چرا شرکت های فناوری تعدیل نیرو می کنند.
@learning_with_m
جهش ژنتیکی با قسمت آخر رودمپ تست نویسی | با QA Lead Okala
در قسمت پایانی این رودمپ تست نرمافزار، در ابتدای ویدئو به یکی از جدیترین ابزارهای ارزیابی کیفیت تست میپردازیم: Mutation Testing.
با ایجاد «جهشهای مصنوعی» در کد، بررسی می کند که آیا تستها واقعا میتونن رفتار نادرست رو شناسایی کنن یا نه.
برخی از مواردی دربارشون گپ میزنیم:
03:20 مزایا و معایب Test Coverage
10:45 تست با جهش کد
15:40 انواع Test Smell
29:30 قوانین نوشتن تست تمیز
35:18 تست های اتوماتیک و دستی
40:23 تست اتومات بدون پایپلاین
43:10 ابزار های تست کیفیت کد
لینک ویدئو: https://youtu.be/gaOae6z7wvQ
مدت زمان: 50 دقیقه
در قسمت پایانی این رودمپ تست نرمافزار، در ابتدای ویدئو به یکی از جدیترین ابزارهای ارزیابی کیفیت تست میپردازیم: Mutation Testing.
با ایجاد «جهشهای مصنوعی» در کد، بررسی می کند که آیا تستها واقعا میتونن رفتار نادرست رو شناسایی کنن یا نه.
برخی از مواردی دربارشون گپ میزنیم:
03:20 مزایا و معایب Test Coverage
10:45 تست با جهش کد
15:40 انواع Test Smell
29:30 قوانین نوشتن تست تمیز
35:18 تست های اتوماتیک و دستی
40:23 تست اتومات بدون پایپلاین
43:10 ابزار های تست کیفیت کد
لینک ویدئو: https://youtu.be/gaOae6z7wvQ
مدت زمان: 50 دقیقه
سلام رفقا، برای ویدیوهای تستنویسی کمکتون لازمه.
اگه تایم ویدیوها رو کم کنیم ولی با کاتهای منسجم (مثلاً اول توضیح بدم چی میخوایم بنویسیم، بعد یهو کد آماده بیاد)، حس بهتری داره یا حالت طولانی و پیوسته؟
یک یا دو مورد انتخاب کنید و نظر بدین.
اگه تایم ویدیوها رو کم کنیم ولی با کاتهای منسجم (مثلاً اول توضیح بدم چی میخوایم بنویسیم، بعد یهو کد آماده بیاد)، حس بهتری داره یا حالت طولانی و پیوسته؟
یک یا دو مورد انتخاب کنید و نظر بدین.
Anonymous Poll
55%
حدودا 15 دقیقه باشه با کات و تعداد قسمت بیشتر
27%
حدودا 30 دقیقه باشه با کات و تعداد قسمت کمتر
24%
طولانی باشه ولی با کات کمتر (شبیه الان)
استراکت استفاده کنیم یا نه؟ شمشیر دولبهای که میتواند پرفورمنس شما را بسیار کاهش دهد
استراکت، با توجه به ذخیرهی آن در Stack، زمانی که در متدهای async استفاده شود، باید حتماً Copy by Value شود. بهعبارت سادهتر، یک Deep Copy از آن گرفته میشود و نمیتوان آن را با کیورد ref ارسال کرد.
این هزینه در استراکتهایی با Shallow Size حدوداً ۱۶ بایت خیلی احساس نمیشود؛ اما صرفاً کافیست Shallow Size از این مقدار بیشتر شود. هرچقدر حجم Shallow Size بزرگتر شود، سرعت اجرای متد کاهش پیدا میکند.
در بنچمارکی که مشاهده میکنید، یک کلاس و یک استراکت با پراپرتیهایی کاملاً مشابه (تقریباً ۱۰۰ پراپرتی double) در یک متد Recursive صد بار اجرا شدهاند. همانطور که مشاهده میکنید، استراکت بهشدت Performance را کاهش داده است.
اما در مقابل، از تخصیص حافظه جلوگیری کرده است (پس از پایان هر متد، دیتا فوراً از حافظه پاک میشود و GC Pressure خاصی نداریم).
لذا اگر علاقهمند به تیون کردن حافظه هستید، حتماً این نکته را در نظر بگیرید.
دقت کنید که Overhead صرفاً مربوط به متدهای async نیست و در متدهای sync نیز وجود دارد، اما با pass by ref قابل حل است.
چه زمانی استفاده از struct مفید است؟
1. زمانی که از ref struct استفاده شود.
2. زمانی که ref struct نداریم و مطمئن باشیم Shallow Size بیش از ۱۶ بایت نمیشود.
3. زمانی که در متدهای sync از کیورد ref استفاده کنیم و استراکت را توسط reference ارسال کنیم.
استراکت، با توجه به ذخیرهی آن در Stack، زمانی که در متدهای async استفاده شود، باید حتماً Copy by Value شود. بهعبارت سادهتر، یک Deep Copy از آن گرفته میشود و نمیتوان آن را با کیورد ref ارسال کرد.
این هزینه در استراکتهایی با Shallow Size حدوداً ۱۶ بایت خیلی احساس نمیشود؛ اما صرفاً کافیست Shallow Size از این مقدار بیشتر شود. هرچقدر حجم Shallow Size بزرگتر شود، سرعت اجرای متد کاهش پیدا میکند.
در بنچمارکی که مشاهده میکنید، یک کلاس و یک استراکت با پراپرتیهایی کاملاً مشابه (تقریباً ۱۰۰ پراپرتی double) در یک متد Recursive صد بار اجرا شدهاند. همانطور که مشاهده میکنید، استراکت بهشدت Performance را کاهش داده است.
اما در مقابل، از تخصیص حافظه جلوگیری کرده است (پس از پایان هر متد، دیتا فوراً از حافظه پاک میشود و GC Pressure خاصی نداریم).
لذا اگر علاقهمند به تیون کردن حافظه هستید، حتماً این نکته را در نظر بگیرید.
دقت کنید که Overhead صرفاً مربوط به متدهای async نیست و در متدهای sync نیز وجود دارد، اما با pass by ref قابل حل است.
چه زمانی استفاده از struct مفید است؟
1. زمانی که از ref struct استفاده شود.
2. زمانی که ref struct نداریم و مطمئن باشیم Shallow Size بیش از ۱۶ بایت نمیشود.
3. زمانی که در متدهای sync از کیورد ref استفاده کنیم و استراکت را توسط reference ارسال کنیم.
👍7 5 3 2