Code With HSN
بچها ویدئو DispatchR آمادس باید برم تو کار ادیتش، من دیر به قول هام عمل میکنم ولی با کیفیت عمل میکنم؛ بعد از انتشار ویدئو بهتون تسک میدم به همراه تایم تحویلش تا اون تایم پول ریکوئست های قشنگتون رو بفرستید ❤️ باهم صحبت میکنیم و از همدیگه یاد میگیریم. چرا خوبه…
بالاخره ادیت تموم شد میریم برای رندر و پابلیش 💣
❤14👍1
Media is too big
VIEW IN TELEGRAM
شکست MediatR توسط DispatchR!⚡️
در این ویدیو، یک Mediator پرسرعت و بدون مصرف حافظه (zero allocation) به نام DispatchR را طراحی و پیادهسازی میکنیم که کارایی بهتری نسبت به MediatR دارد. با تستهای واقعی نشان میدهم که چطور کاهش سربار و افزایش سرعت را تجربه کنید! همچنین به مشکلاتی که در MediatR و Mediator source generator وجود دارد می پردازیم
✅ مقایسه عملکرد DispatchR vs MediatR vs Mediator
✅ کد نویسی بدون Reflection و کمهزینه در runtime
✅ نحوه پیادهسازی گامبهگام
✅ چه زمانی MediatR جایگزین بهتری دارد؟
🎥 لینک ویدئو: https://youtu.be/ZsI_e6SO47U
🔗 لینک پروژه: https://github.com/hasanxdev/DispatchR
در این ویدیو، یک Mediator پرسرعت و بدون مصرف حافظه (zero allocation) به نام DispatchR را طراحی و پیادهسازی میکنیم که کارایی بهتری نسبت به MediatR دارد. با تستهای واقعی نشان میدهم که چطور کاهش سربار و افزایش سرعت را تجربه کنید! همچنین به مشکلاتی که در MediatR و Mediator source generator وجود دارد می پردازیم
✅ مقایسه عملکرد DispatchR vs MediatR vs Mediator
✅ کد نویسی بدون Reflection و کمهزینه در runtime
✅ نحوه پیادهسازی گامبهگام
✅ چه زمانی MediatR جایگزین بهتری دارد؟
🎥 لینک ویدئو: https://youtu.be/ZsI_e6SO47U
🔗 لینک پروژه: https://github.com/hasanxdev/DispatchR
🔥24👍2❤1👏1
Media is too big
VIEW IN TELEGRAM
❤10👍2🤩2🔥1
تقریبا توی 4 روز 28 تا Stars گرفتیم ⭐️
یه تعدادش خودتون بودین دمتون گرم ❤️
← راستی Readme رو حتما بخونید کش پیاده کردیم به کمک DI و این باعث شد از Mediator Source Generator نسخه Stable هم سریع تر بشیم (نسخه 3 preview خیلی عقب بود از سرعت ما) 😎👋🏻
🔗 پروژه: https://github.com/hasanxdev/DispatchR/
🎥 لینک ویدئو: https://youtu.be/ZsI_e6SO47U
یه تعدادش خودتون بودین دمتون گرم ❤️
← راستی Readme رو حتما بخونید کش پیاده کردیم به کمک DI و این باعث شد از Mediator Source Generator نسخه Stable هم سریع تر بشیم (نسخه 3 preview خیلی عقب بود از سرعت ما) 😎👋🏻
🔗 پروژه: https://github.com/hasanxdev/DispatchR/
🎥 لینک ویدئو: https://youtu.be/ZsI_e6SO47U
🔥17❤4👍1
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👏1 1
Media is too big
VIEW IN TELEGRAM
رودمپ تست نویسی قسمت دوم، با QA Lead اکالا 🔬
این ویدئو رو ببین و کتاب تست نویسی رایگان بگیر📖
توی قسمت دوم از پلی لیست تستنویسی، میریم سراغ ادامهی رودمپ؛ این بار تمرکز روی تستهای non-functional، و کلی تست دیگه که شاید کمتر دربارهشون شنیده باشی، مثل Spike Test، Soak Test، AB Testing، Snapshot و حتی Failover Database Test.
مباحثی که احتمالا براتون جذابه و صحبت میکنیم:
1. معرفی ابزار هایی برای Performance Test.
2. بررسی فرق Load، Stress، Soak و Spike تست.
3. بررسی تست قناری.
4. تست Smoke چیست؟
5. بررسی هرم تست.
6. بررسی کلی ابزار و مفهوم تست.
🕹 لینک ویدئو: مشاهده ویدئو و شرکت در قرعه کشی
📱 پلی لیست: مشاهده پلی لیست
📱 کانال تلگرام: @hasanxdev
📱 تلگرام رف هاب: @refhubOfficial
😇 رودمپ: https://github.com/hasanxdev/Test-Roadmap-For-Developers
این ویدئو رو ببین و کتاب تست نویسی رایگان بگیر
توی قسمت دوم از پلی لیست تستنویسی، میریم سراغ ادامهی رودمپ؛ این بار تمرکز روی تستهای non-functional، و کلی تست دیگه که شاید کمتر دربارهشون شنیده باشی، مثل Spike Test، Soak Test، AB Testing، Snapshot و حتی Failover Database Test.
مباحثی که احتمالا براتون جذابه و صحبت میکنیم:
1. معرفی ابزار هایی برای Performance Test.
2. بررسی فرق Load، Stress، Soak و Spike تست.
3. بررسی تست قناری.
4. تست Smoke چیست؟
5. بررسی هرم تست.
6. بررسی کلی ابزار و مفهوم تست.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👍5❤3
Code With HSN
رودمپ تست نویسی قسمت دوم، با QA Lead اکالا 🔬 این ویدئو رو ببین و کتاب تست نویسی رایگان بگیر 📖 توی قسمت دوم از پلی لیست تستنویسی، میریم سراغ ادامهی رودمپ؛ این بار تمرکز روی تستهای non-functional، و کلی تست دیگه که شاید کمتر دربارهشون شنیده باشی، مثل…
تا الان 3 نفر اون قسمتی که آدرس کانال قرعه کشی رو میاریم توی ویدئو رو دیدن و جوین شدن به گروه قرعه کشی ☺️
استقبال کنید در ویدئو های بعدی سعی میکنیم بیشتر کتاب هدیه بدیم بهتون ✌🏻
استقبال کنید در ویدئو های بعدی سعی میکنیم بیشتر کتاب هدیه بدیم بهتون ✌🏻
Please open Telegram to view this post
VIEW IN TELEGRAM
❤10👍4👏1
Code With HSN
شکست MediatR توسط DispatchR!⚡️ در این ویدیو، یک Mediator پرسرعت و بدون مصرف حافظه (zero allocation) به نام DispatchR را طراحی و پیادهسازی میکنیم که کارایی بهتری نسبت به MediatR دارد. با تستهای واقعی نشان میدهم که چطور کاهش سربار و افزایش سرعت را تجربه…
بچها میخوام یک لایو بزارم و بریم داخلش راجب DispatchR صحبت کنیم و تسک بدم بهتون PR بفرستید روی DispatchR
مهم نیست اگر مشکل داشته باشه اگر کند باشه مرج میکنیم بعدا بهبودش میدیم حداقل ها باید توش رعایت بشه
کیا پایه هستن؟ کی بزاریم؟ توی کامنت ها بیاین صحبت کنیم
مهم نیست اگر مشکل داشته باشه اگر کند باشه مرج میکنیم بعدا بهبودش میدیم حداقل ها باید توش رعایت بشه
کیا پایه هستن؟ کی بزاریم؟ توی کامنت ها بیاین صحبت کنیم
👍12❤1👏1
Forwarded from refhub
ربات @RefHubot دستیار جدیدمون هست برای جستجوی کتاب ها ، لطفا راحت باشید و باهاش دوست بشین نسخه ی 0 هست و قطعا مشکلاتی داره، ولی کم کم بهتر میشه با نظرات شما
میتونید بهش ویس بدین، متن بفرستید یا حتی عکس کتاب مورد نظرتون رو ارسال کنید
براتون در رفهاب میگرده و نتایج رو بهتون میده.
میتونید بهش ویس بدین، متن بفرستید یا حتی عکس کتاب مورد نظرتون رو ارسال کنید
براتون در رفهاب میگرده و نتایج رو بهتون میده.
👍8 2👏1 1
سوال جالبی از من پرسیده شد جهت افزایش دانش شما عزیزان به اشتراک گذاشتیم ❤️
🤔 سوال توسط amirmohammad Fathollahi پرسیده شد:
من برای api gateway دنبال best practice هستم با ocelot
هرچی ویدیو میبینم صرفا در حد اینه route کنه
ولی راجع به معماری و هندل کردن چندین پروژه حرفی نزدن
اگه کسی منبع خوب یا سمپل کد میشناسه معرفی کنه ممنون میشم
توی معماریش چه کار هایی میکنن چه چیز هایی رو بهش میسپرن
آیا صرفا فقط برای reverse ازش استفاده میکنن یا rate limiting و authentication هم بهش میسپرن
بیشتر سوالم راجع به معماریش هست
💡 جواب:
در واقع API Gateway رو یا باید خودمون پیاده سازی کنیم یا از ابزارهایی مثل Kong استفاده کنیم.
اگر خودمون پیاده سازی کنیم طبیعتاً دسترسی کامل به همه چیز داریم ولی Kong مثلا بهمون یک Dashboardهم میده و شاید در یک سری جاها به اندازه یک API Gateway اختصاصی دست آدم باز نباشه.
حالا وقتی میخواهی خودت پیاده کنی Per Environment باید Config های Routing خودترو داشته باشی یعنی روی Develop با Production باید Configهاشون فرق داشته باشه چونکه آدرس ها در Develop Local و Production قطعا متفاوت هست.
یکی از Best Practiceهایی که معمولا در API Gateway ها در نظر میگیرند Code Less میکنندش یعنی هیچ کدی داخلش نمیگذارند و واقعاً شبیه Gateway عمل میکنه، بدون هیچ Business Logic خاصی.
درباره Rate limit باید بهتون بگم که Trade-off زیاد دارد!
یک موضوع infrastructure ای هست یعنی در لایه Application پیاده نمیشه چون Bottleneck برنامه میشه و اگر مشکل داشته باشه میتونه برنامه بندازه یا کند کنه همچنین میتونه single point of failure باشه.
پیچیدگی Rate Limit زمانی هست که چندین Instance از برنامه ما بالا باشه به همین دلیل Application Layer جای خوبی نیست براش اما اگر برنامه شما اینقدر کوچک هست که یک Instance فقط از API Gateway دارد، بنظرم دوباره فکر کنید آیا واقعاً به microservice نیاز داشتید یا نه!
حالا فرض میکنیم که شما به API Gateway نیاز داشتید و Rate Limit هم قرار هست پیاده کنید بنظر من بهتره در لایه Application خودتون پیاده سازی بشه و اگر واقعاً یک چیز نیاز دارید که خیلی Global باشه و زیرساخت ندارید مثل تیم DevOps بنظرم API Gateway جای خوبی هست
اما در کیس Authentication خیلی Trade-off نداریم!
کنترل رو میسپارن به خود Application ها، همانطور که گفتم خیلی سعی میشه API Gatewayها Code Less باشن فرض کنیم سرویس A با مدل AModel احراز هویت میشه و سرویس B با مدل BModel و این میتونه در API Gateway پیچیدگی ایجاد کنه و از نظر Separation of Concerns باید API Gateway یک Gateway بمونه واقعاً
به این دلیل که Authentication میتونه خیلی پیچیدگی ایجاد کنه من حداقل ندیدم جایی احراز هویت رو روی Gateway پیاده کنند، ولی این کار نشدنی نیست.
در بعضی از مدل های احراز هویت نیاز هست که Token برای سرویس اصلی که Authentication رو پیاده سازی کرده ارسال بشه و اگر ما در API Gateway احراز هویت رو پیاده سازی کرده باشیم این میتونه باعث بشه API Gateway خودش گلوگاه باشه که درخواستها رو کند کنه و وقتی کندی در سیستم میبینیم نمیدانیم سرویس واقعاً مشکل دارد یا API Gateway
اگر نظری دارین در کامنت ها برام بنویسید👇
Channel: @hasanxdev
من برای api gateway دنبال best practice هستم با ocelot
هرچی ویدیو میبینم صرفا در حد اینه route کنه
ولی راجع به معماری و هندل کردن چندین پروژه حرفی نزدن
اگه کسی منبع خوب یا سمپل کد میشناسه معرفی کنه ممنون میشم
توی معماریش چه کار هایی میکنن چه چیز هایی رو بهش میسپرن
آیا صرفا فقط برای reverse ازش استفاده میکنن یا rate limiting و authentication هم بهش میسپرن
بیشتر سوالم راجع به معماریش هست
در واقع API Gateway رو یا باید خودمون پیاده سازی کنیم یا از ابزارهایی مثل Kong استفاده کنیم.
اگر خودمون پیاده سازی کنیم طبیعتاً دسترسی کامل به همه چیز داریم ولی Kong مثلا بهمون یک Dashboardهم میده و شاید در یک سری جاها به اندازه یک API Gateway اختصاصی دست آدم باز نباشه.
حالا وقتی میخواهی خودت پیاده کنی Per Environment باید Config های Routing خودترو داشته باشی یعنی روی Develop با Production باید Configهاشون فرق داشته باشه چونکه آدرس ها در Develop Local و Production قطعا متفاوت هست.
یکی از Best Practiceهایی که معمولا در API Gateway ها در نظر میگیرند Code Less میکنندش یعنی هیچ کدی داخلش نمیگذارند و واقعاً شبیه Gateway عمل میکنه، بدون هیچ Business Logic خاصی.
درباره Rate limit باید بهتون بگم که Trade-off زیاد دارد!
یک موضوع infrastructure ای هست یعنی در لایه Application پیاده نمیشه چون Bottleneck برنامه میشه و اگر مشکل داشته باشه میتونه برنامه بندازه یا کند کنه همچنین میتونه single point of failure باشه.
پیچیدگی Rate Limit زمانی هست که چندین Instance از برنامه ما بالا باشه به همین دلیل Application Layer جای خوبی نیست براش اما اگر برنامه شما اینقدر کوچک هست که یک Instance فقط از API Gateway دارد، بنظرم دوباره فکر کنید آیا واقعاً به microservice نیاز داشتید یا نه!
حالا فرض میکنیم که شما به API Gateway نیاز داشتید و Rate Limit هم قرار هست پیاده کنید بنظر من بهتره در لایه Application خودتون پیاده سازی بشه و اگر واقعاً یک چیز نیاز دارید که خیلی Global باشه و زیرساخت ندارید مثل تیم DevOps بنظرم API Gateway جای خوبی هست
اما در کیس Authentication خیلی Trade-off نداریم!
کنترل رو میسپارن به خود Application ها، همانطور که گفتم خیلی سعی میشه API Gatewayها Code Less باشن فرض کنیم سرویس A با مدل AModel احراز هویت میشه و سرویس B با مدل BModel و این میتونه در API Gateway پیچیدگی ایجاد کنه و از نظر Separation of Concerns باید API Gateway یک Gateway بمونه واقعاً
به این دلیل که Authentication میتونه خیلی پیچیدگی ایجاد کنه من حداقل ندیدم جایی احراز هویت رو روی Gateway پیاده کنند، ولی این کار نشدنی نیست.
در بعضی از مدل های احراز هویت نیاز هست که Token برای سرویس اصلی که Authentication رو پیاده سازی کرده ارسال بشه و اگر ما در API Gateway احراز هویت رو پیاده سازی کرده باشیم این میتونه باعث بشه API Gateway خودش گلوگاه باشه که درخواستها رو کند کنه و وقتی کندی در سیستم میبینیم نمیدانیم سرویس واقعاً مشکل دارد یا API Gateway
اگر نظری دارین در کامنت ها برام بنویسید
Channel: @hasanxdev
Please open Telegram to view this post
VIEW IN TELEGRAM
Code With HSN
رودمپ تست نویسی قسمت دوم، با QA Lead اکالا 🔬 این ویدئو رو ببین و کتاب تست نویسی رایگان بگیر 📖 توی قسمت دوم از پلی لیست تستنویسی، میریم سراغ ادامهی رودمپ؛ این بار تمرکز روی تستهای non-functional، و کلی تست دیگه که شاید کمتر دربارهشون شنیده باشی، مثل…
فقط امروز تا 12 شب وقت دارید ویدئو رو کامل ببینید و در قرعه کشی شرکت کنید هم یاد بگیرید هم کتاب جایزه ببرین 🥳
فردا شب قرعه کشی انجام میشه با توجه به اینکه تا الان 10 نفر کامل ویدئو رو دیدن شانس شما توی برنده شدن خیلی بالاس
لینک ویدئو: https://youtu.be/61tdLL5sy8I
فردا شب قرعه کشی انجام میشه با توجه به اینکه تا الان 10 نفر کامل ویدئو رو دیدن شانس شما توی برنده شدن خیلی بالاس
لینک ویدئو: https://youtu.be/61tdLL5sy8I
Please open Telegram to view this post
VIEW IN TELEGRAM
Code With HSN
تقریبا توی 4 روز 28 تا Stars گرفتیم ⭐️ یه تعدادش خودتون بودین دمتون گرم ❤️ ← راستی Readme رو حتما بخونید کش پیاده کردیم به کمک DI و این باعث شد از Mediator Source Generator نسخه Stable هم سریع تر بشیم (نسخه 3 preview خیلی عقب بود از سرعت ما) 😎👋🏻 🔗 پروژه:…
ویدئو بعدی مون نسخه جدید DispatchR که Stream روهم ساپورت میکنه
-206 خط پاک کردم و +1162 خط اضافه شد
وابستگی به ZLinq روهم حذف کردم😎
اون جایی که MediatR ZeroAllocation شده باگه بهش توجه نکنید
بریم برای رکورد...
PR: https://github.com/hasanxdev/DispatchR/pull/7/files
-206 خط پاک کردم و +1162 خط اضافه شد
وابستگی به ZLinq روهم حذف کردم
اون جایی که MediatR ZeroAllocation شده باگه بهش توجه نکنید
بریم برای رکورد...
PR: https://github.com/hasanxdev/DispatchR/pull/7/files
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Code With HSN
فقط امروز تا 12 شب وقت دارید ویدئو رو کامل ببینید و در قرعه کشی شرکت کنید هم یاد بگیرید هم کتاب جایزه ببرین 🥳 فردا شب قرعه کشی انجام میشه با توجه به اینکه تا الان 10 نفر کامل ویدئو رو دیدن شانس شما توی برنده شدن خیلی بالاس لینک ویدئو: https://youtu.be/61tdLL5sy8I
ازمن خواستند که تمدیدش کنم، گفتن وقت نکردن ببینن تا 12 ظهر جمعه هم جوین بشین قبوله ❤️
Code With HSN
بچها میخوام یک لایو بزارم و بریم داخلش راجب DispatchR صحبت کنیم و تسک بدم بهتون PR بفرستید روی DispatchR مهم نیست اگر مشکل داشته باشه اگر کند باشه مرج میکنیم بعدا بهبودش میدیم حداقل ها باید توش رعایت بشه کیا پایه هستن؟ کی بزاریم؟ توی کامنت ها بیاین صحبت کنیم
سلام بچها صبحتون بخیر، میخواستم دیشب یا امشب لایو بزارم ولی محتوای کافی آماده نکرده بودم که ارائه خوبی داشته باشیم (همزمان روی ویدئو جدید دارم کار میکنم وقت نمیشه) هفته بعدی درباره Kafka باهم گپ میزنیم یک ارائه آماده خواهم کرد و باهاتون به اشتراک میزارم. 🍻
منتظر اطلاع رسانی های بعدی باشید.
منتظر اطلاع رسانی های بعدی باشید.
👍18 5 3
چالش ❓
فرض کنید برنامه شما 100 مگابایت رم داره، و قراره دیتایی به حجم 1 ترابایت رو پردازش کنید، در این چالش زمان مهم نیست مهم اینه بتونیم پردازش کنیم
جوابتون رو توی کامنت ها به صورت spoiler بفرستید😀
فرض کنید برنامه شما 100 مگابایت رم داره، و قراره دیتایی به حجم 1 ترابایت رو پردازش کنید، در این چالش زمان مهم نیست مهم اینه بتونیم پردازش کنیم
جوابتون رو توی کامنت ها به صورت spoiler بفرستید
Anonymous Poll
24%
غیر ممکنه ❌
41%
تاحالا انجام دادم ✔️
35%
توی توضیحات با اسپویلر مینویسم 😁
Code With HSN
ویدئو بعدی مون نسخه جدید DispatchR که Stream روهم ساپورت میکنه -206 خط پاک کردم و +1162 خط اضافه شد وابستگی به ZLinq روهم حذف کردم 😎 اون جایی که MediatR ZeroAllocation شده باگه بهش توجه نکنید بریم برای رکورد... PR: https://github.com/hasanxdev/DispatchR/pull/7/files
DispatchR
ویژگی های جدید:
1. وابسته نبودن به z linq
2. ساپورت CreateStream
در Runtime با پرفورمنس قابل رقابت با Mediator source generator
توضیحات جدید ببینید حتما:
https://github.com/hasanxdev/DispatchR
v1.1.0 is out now! ✅ویژگی های جدید:
1. وابسته نبودن به z linq
2. ساپورت CreateStream
در Runtime با پرفورمنس قابل رقابت با Mediator source generator
توضیحات جدید ببینید حتما:
https://github.com/hasanxdev/DispatchR
GitHub
GitHub - hasanxdev/DispatchR: Fast, zero-alloc alternative to MediatR for .NET – minimal, blazing fast, and DI-friendly.
Fast, zero-alloc alternative to MediatR for .NET – minimal, blazing fast, and DI-friendly. - hasanxdev/DispatchR
👍5 1
Code With HSN
چالش ❓
فرض کنید برنامه شما 100 مگابایت رم داره، و قراره دیتایی به حجم 1 ترابایت رو پردازش کنید، در این چالش زمان مهم نیست مهم اینه بتونیم پردازش کنیم
جوابتون رو توی کامنت ها به صورت spoiler بفرستید😀
فرض کنید برنامه شما 100 مگابایت رم داره، و قراره دیتایی به حجم 1 ترابایت رو پردازش کنید، در این چالش زمان مهم نیست مهم اینه بتونیم پردازش کنیم
جوابتون رو توی کامنت ها به صورت spoiler بفرستید
چطوری یک فایل یک ترابایتی رو پردازش کنیم؟⚡️
🔥 در این قسمت قراره باهم بریم سراغ یه موضوع خیلی مهم:
اگر به رشد سیستم فکر نکنیم چی میشه؟ چه بلایی سرمون میاد؟
بهونهی این بحث، معرفی نسخه جدید پکیجم به اسم DispatchR هست، که با هدف بهبود عملکرد نسبت به MediatR طراحی شده.
اما این فقط یه معرفی ساده نیست! تو این ویدیو قراره هم آموزش ببینید، هم کد بزنیم، هم سورس بخونیم، هم بنچمارک بگیریم! 💥
اگر به بهینهسازی در DotNet علاقه دارید، حتما این ویدیو را ببینید!
🎥 لینک ویدئو: https://youtu.be/kjKzGcE9F6Y
🔗 لینک دیسپچآر: https://github.com/hasanxdev/DispatchR
پلی لیست: Mediator Pattern
🔥 در این قسمت قراره باهم بریم سراغ یه موضوع خیلی مهم:
اگر به رشد سیستم فکر نکنیم چی میشه؟ چه بلایی سرمون میاد؟
بهونهی این بحث، معرفی نسخه جدید پکیجم به اسم DispatchR هست، که با هدف بهبود عملکرد نسبت به MediatR طراحی شده.
اما این فقط یه معرفی ساده نیست! تو این ویدیو قراره هم آموزش ببینید، هم کد بزنیم، هم سورس بخونیم، هم بنچمارک بگیریم! 💥
اگر به بهینهسازی در DotNet علاقه دارید، حتما این ویدیو را ببینید!
🎥 لینک ویدئو: https://youtu.be/kjKzGcE9F6Y
🔗 لینک دیسپچآر: https://github.com/hasanxdev/DispatchR
پلی لیست: Mediator Pattern
👍16 6 2
فکر نمیکردم به این زودی از DispatchR توی پروژه هاتون استفاده کنید دمتون گرم خیلی بهبودش میدیم باهم ⭐️
استپ بعدی INotification هست، داوطلب اگه داریم استارت بزنه و انجامش بده 🤩
https://www.linkedin.com/feed/update/urn:li:activity:7330347038464688128/
استپ بعدی INotification هست، داوطلب اگه داریم استارت بزنه و انجامش بده 🤩
https://www.linkedin.com/feed/update/urn:li:activity:7330347038464688128/