Code With HSN – Telegram
Code With HSN
886 subscribers
72 photos
22 videos
1 file
90 links
من حسنم و اینجا تجربیاتم رو مینویسم براتون تا کمکتون کنم سنیور های واقعی باشین ❤️

یوتیوب من:
https://youtube.com/@hasanxdev
لینکدین:
https://linkedin.com/in/hasanxdev
گیت هابم:
https://github.com/hasanxdev

#CSharp
#EFCore
#ASPNETCore
#Programming
Download Telegram
Code With HSN
دیشب تا ساعت ۳ صبح براتون CQRS Normal، Regular و Premium رو رکورد کردم. به CQRS Deluxe که رسیدم، دیگه واقعاً نکشیدم! 😅 فقط سه قسمت دیگه مونده که رکورد کنم و بعد میرم سراغ ادیت و آماده کردن برای Share کردن ایشالا امشب تمومه. مرسی از حمایت بی‌نظیر ۱۰۶ نفرتون!…
چرا باید CQS را بشناسید؟ ساده‌سازی پروژه‌های کوچک بدون پیچیدگی اضافی!
آیا تا به حال به این فکر کرده‌اید که چرا برخی پروژه‌های کوچک بی‌دلیل پیچیده می‌شوند؟ 🤔 اینجاست که CQS (Command Query Separation) وارد می‌شود تا برای پروژه های کوچیک پیچیدگی های CQRS را وارد نکند!

در این ویدیو یاد می‌گیریم که چگونه با شناخت این اصل ساده، از پیچیدگی‌های غیرضروری جلوگیری کنیم. CQS که در سال 1988 توسط برتراند مایر معرفی شد، یکی از اصول مهم طراحی نرم‌افزار است که به خوانایی، ساده‌سازی منطق و بهبود تست‌پذیری کدها کمک می‌کند.

مفهوم CQS چیست؟
چه زمانی باید از آن استفاده کنیم؟
چگونه آن را به‌درستی پیاده‌سازی کنیم؟
تبدیل یک پروژه CRUD ساده به CQS

اگر می‌خواهید پروژه‌های خود را بهینه‌تر کنید و معماری نرم‌افزار بهتری داشته باشید، این ویدیو را از دست ندهید!

👈 لینک ویدیو: https://youtu.be/KYoZvEi-Pq4
📢 کانال تلگرام: t.me/hasanxdev

#CQS #CQRS #برنامه‌نویسی #CSharp #نرم‌افزار #معماری_نرم‌افزار #CodeWithHSN #برتراند_مایر
4🤩1🍾1
پترن CQRS Regular: الگوی کامل یا چالشی بی‌پایان؟ 🤔 بعد از بررسی معایب و اشتباهات رایج، حالا وقتش رسیده که به قلب CQRS Regular برسیم! ❤️ این ویدیو نه درباره انتقاد، بلکه درباره قدرت واقعی این الگو است. اگر فکر می‌کنید قبلاً همه چیز را درباره CQRS شنیده‌اید، باید این ویدیو و ویدیوهای بعدی را ببینید! 🎥

🔍 اگر ویدیوهای قبلی را دیده‌اید، آماده یک تغییر دیدگاه باشید! زیرا در این ویدیو CQRS Regular را پیاده‌سازی می‌کنیم که برای پروژه‌های نسبتا پیچیده مناسب است و از پیچیدگی کد جلوگیری می‌کند. ⚙️

در این ویدیو یاد خواهید گرفت:
چگونه CQRS Regular را پیاده‌سازی کنید؟
کی پیاده‌سازی کنید؟
چه محدودیت‌هایی در سطح معماری برنامه اعمال می‌کنید؟ 🚧
به چه قابلیت‌های جدیدی به نسبت CQS می‌رسید؟ 🚀

📲 لینک ویدیو: https://youtu.be/nbt3sNdPWQA
📲 کانال تلگرام: @hasanxdev

پلی لیست این دوره: https://www.youtube.com/playlist?list=PLGiSgN3ODieI7a1HeMHyC6ylluc2jhvDS

در صورت مفید بودن، لطفاً با دیگران Share کنید! 🔄
🎉2👌2
نظرتون چیه خلاصه کتاب های برنامه نویسی یا مهندسی کامپیوتر رکورد کنیم؟
بچها فیدبک هاتون در مسیر مون تاثیر میزاره باورندارین فیدبک قبلی هارو ببینید ❤️
Anonymous Poll
96%
خیلی عالیه
4%
نه، نظرمو توی کامنت ها مینویسم
🔥4
🤯🤯 یک چالش و سوال خیلی خفن، دو متد داریم به شرح زیر:
    public void MethodA()
{
int[,] tab = new int[N, M];
for (int i = 0; i < N; ++i)
{
for (int j = 0; j < M; ++j)
{
tab[i, j] = 1;
}
}
}


public void MethodB()
{
int[,] tab = new int[N, M];
for (int i = 0; i < N; ++i)
{
for (int j = 0; j < M; ++j)
{
tab[j, i] = 1;
}
}
}


کدوم سریع تر است چرا؟ توی کامنت ها بنویسید
🤔1
Code With HSN
🤯🤯 یک چالش و سوال خیلی خفن، دو متد داریم به شرح زیر: public void MethodA() { int[,] tab = new int[N, M]; for (int i = 0; i < N; ++i) { for (int j = 0; j < M; ++j) { tab[i, j] = 1; …
آیا واقعاً از RAM به درستی استفاده می‌کنیم؟ 💻 می‌دونستید چیدمان داده‌ها در RAM چقدر می‌تونه روی سرعت برنامه ما تاثیر بزاره؟! 🚀 بیاید با هم یه نگاه عمیق به DRAM بندازیم و ببینیم چطور چیدمان داده ها در DRAM می‌تونه عملکرد سیستم رو تغییر بده. 👀

💡قبل هرچیزی باید بدونیم یک بیت توی سخت افزار چطوری ذخیره میشه!

🤔 هر سلول DRAM که فقط یک bit (0 یا 1) درونش قرار میگیرد، ترکیب یک ترانزیستور و یک خازن است، پایه منفی خازن به برد و پایه مثبت به ورودی ترانزیستور وصل میشود حالا برای اینکه بتونیم دیتارو از خازن بکشیم بیرون باید پایه وسط ترانزیستور رو شارژ کنیم یعنی یک سیگنالی بهش بدیم تا اجازه بده دیتای ترانزیستور از پایه سوم خارج بشه و برنامه با یک سیگنال دیگه دیتارو بگیره و بخونه

✍🏻 به زبان ساده برای اینکه دیتا رو از رم بخونیم، نیاز داریم دو کار انجام بدیم، هرکدوم از این کارها مقداری طول میکشه که جمعا میشه زمان دسترسی پذیری به یک سلول حافظه! و اگر یکی از عوامل رو حذف کنیم سرعت بالاتر میرود 🤯

🌐 حافظه DRAM دیتارو به صورت ماتریکس درون خودش نگه میداره یعنی برای اینکه دیتا بگیری ازش باید یک row رو شارژ کنی و بعد برای اینکه دیتارو بگیری باید بری سراغ column هاش

این یعنی اگر در DRAM همه چیز در یک ROW میبود لازم نبود برای رسیدن به دیتا یک کار اضافه تر انجام بدیم 🥇

🖼در عکسی که پیوست کرده ام دقت کنید، متد A خیلی سعی بر این ندارد که row رو تغییر بده هر 5 هزارباری که حلقه داخلی اجرا میشه یک بار row هم عوض میشه و پردازنده کمتر منتظر رسیدن دیتا از RAM میمونه احتمالا میدونید که سرعت پردازنده ها 2-3 برابر RAM هست

حالا متد B رو نگاه کنید column ثابت است و مدام داریم row رو عوض میکنیم همونطور که بالاتر گفتم اگر row عوض بشه ما یک هزینه زمانی باید بپردازیم تا بتوانیم سطر بعدی رو شارژ کنیم درکنار این موضوع دیتایی که برای CPU ارسال میشه cache line رو جوری پر نمیکنه که پردازنده کمتر به RAM سر بزنه یک row رو میدیم به پردازنده ولی اون فقط روی یک column کار میکنه بعدش درخواست row جدید داره (بحثش مفصله.. در متد A یک row که ارسال میشد براش بقیه کارش روی column ها بود پس همه چیزو توی register خودش کش کرده بوده)

🤯 و حالا خروجی benchmark رو ببینید!! میبینید که متد A خیلی سریع تر از متد B بوده است!

جالب بود نه؟ like و share فراموش نشه ❤️🥇

قراره به زودی یک پلی لیست از خلاصه کتاب های مهندسی درست کنم و کلی راجبش گپ بزنیم اگه همراه نیستی در چنل تلگرام و یوتیوبم جوین شو

عکس پیوست: https://news.1rj.ru/str/hasanxdev_files/4
پست مرتبط در لینکدین: https://www.linkedin.com/feed/update/urn:li:activity:7270711302363254784/
یوتیوب: https://youtube.com/@hasanxdev
تلگرام: https://news.1rj.ru/str/hasanxdev
👍4🔥2👏21
Code With HSN
یک عزیزی در لینکدین سوال پرسیدن که کاربرد دیگه ای هم داره چون از آرایه دو بعدی تقریبا هیچ وقت استفاده نکردم، سوال خوبی بود من اینجا میزارم که به دانش شما عزیزان هم اضافه بشه
کد موردنظر:
var summary = BenchmarkRunner.Run<ListPerformanceTest>();

public class ListPerformanceTest
{
private List<List<int>> list;

public ListPerformanceTest()
{
list = new List<List<int>>(5000);
for (int i = 0; i < 5000; i++)
{
var innerList = new List<int>(5000);
for (int j = 0; j < 5000; j++)
{
innerList.Add(0);
}
list.Add(innerList);
}
}

[Benchmark]
public void RowMajorAccess()
{
for (int i = 0; i < 5000; i++)
{
for (int j = 0; j < 5000; j++)
{
list[i][j] = i + j;
}
}
}

[Benchmark]
public void ColumnMajorAccess()
{
for (int j = 0; j < 5000; j++)
{
for (int i = 0; i < 5000; i++)
{
list[i][j] = i + j;
}
}
}
}
👍2😍1
Code With HSN
نظرتون چیه خلاصه کتاب های برنامه نویسی یا مهندسی کامپیوتر رکورد کنیم؟
بچها فیدبک هاتون در مسیر مون تاثیر میزاره باورندارین فیدبک قبلی هارو ببینید ❤️
بالاخره تونستم Pro .NET Memory Management رو بسازمش...! 💡همیشه دنبال خلاصه‌های درست و کاربردی از کتاب‌های تخصصی بودم، که بتونم در تایم های خالیم ببینمشون ولی چیزی که می‌خواستم رو پیدا نمی‌کردم... تا اینکه تصمیم گرفتم خودم بسازمش! 📚 توی این ویدیو، خلاصه‌ای از فصل اول کتاب Pro .NET Memory Management رو به صورت واضح و کاربردی براتون آماده کردم. این کتاب به قدری مفاهیم عمیق و پایه‌ای رو توضیح می‌ده که یه لحظه یادم رفت چند ساله برنامه‌نویسم! 😅

🚀 از Heap و Stack بگیرید تا Mutator، Allocator و Garbage Collector؛ بیایید با هم ذهنیتمون رو بهبود بدیم و دنیای پرفورمنس اپلیکیشن‌ها رو از نو بررسی کنیم!

👈 لینک رو بزن و نظرت رو برام بنویس!
ویدیو: https://youtu.be/FMYtA0K3320
تلگرام: https://news.1rj.ru/str/hasanxdev

#ProNETMemoryManagement #DotNET #MemoryManagement #CSharp #TechContent #BookSummary #PerformanceTuning
🔥15🤩2
تا حالا فکر کردی وقتی یه پست اینستاگرام رو لایک می‌کنی، پشت صحنه چه اتفاقی می‌افته؟ 🤔 خب، اگر همیشه این سوال برات پیش اومده که چطور یه سیستم مثل اینستاگرام می‌تونه با حجم بالا از داده‌ها کنار بیاد و با یک کلیک ساده، تمام اطلاعات لایک‌ها رو ثبت کنه، این ویدیو رو از دست نده! توی این ویدیو قراره با هم CQRS Premium رو بررسی کنیم و نشون بدیم چطور این معماری باعث می‌شه که سیستم‌ها سریع‌تر و بهینه‌تر بشن! 🚀

در این ویدیو به این مباحث می‌پردازیم:

1- فرق بین Eventual Consistency و Strong Consistency رو بررسی میکنیم مزایا و معایب هرکدوم میسنجیم 📨
2- مقایسه CQRS Regular و CQRS Premium تا بفهمیم با این روش به چه مزیت های فوق العاده ای دست پیدا میکنیم. 🤓
3- چرا باید عملیات‌های خواندن و نوشتن رو از هم جدا کنیم و این کار چه تاثیری روی عملکرد سیستم می‌ذاره؟ 🔄
4- ترفندهایی برای scale کردن یک API یا یک قسمت مثل صفحه لیست محصولات (PLP) که کمک می‌کنه سیستم توی شرایط با حجم بالای درخواست‌ها همچنان سریع بمونه. 📊
5- چطور سیستم‌های مقیاس‌پذیر و توزیع‌شده بسازیم که با رشد تصاعدی داده‌ها همچنان به راحتی کار کنن؟ 💪
6- استفاده از CQRS Premium برای بهینه‌سازی زمان پاسخ‌دهی و افزایش کارایی سیستم‌ها 🚅

اگر به توسعه نرم‌افزار، معماری سیستم‌ها و مقیاس‌پذیری علاقه داری، این ویدیو رو حتماً ببین! و نظرت رو با من به اشتراک بذار 😊


لینک ویدیو: https://www.youtube.com/watch?v=YuKWFCPU6f8
کانال تلگرام: https://news.1rj.ru/str/hasanxdev
🔥10👍1
سلام شبتون بخیر 🌙، فکر میکنید فردا ساعت 9 صبح ویدیو چی داریم؟ 😎
9😁5
فصل دوم از کتاب Pro .NET Memory Management خلاصه شد💡
Low Memory Management | مدیریت حافظه در سطح پایین

در این فصل یاد می‌گیریم:
اصول مدیریت حافظه در سخت‌افزار و بهتون نشون میدم چطوری یک Bit درون سخت افزار قرار میگیره
باهم میبینیم CPU و RAM چطوری باهم کار میکنند چطوری CPU با سرعت کم RAM کنار آمده است
یک نمونه کد باهم میزنیم و میبینیم که طبق چیزایی که یاد گرفتیم چطوری میشه بهبودش داد
مفاهیم DDR رو بررسی میکنیم


این پلی لیست از خلاصه کتاب Pro .NET Memory Management برای همه کسانی که به بهبود کارایی سیستم‌های نرم‌افزاری علاقه‌مندند، یک منبع طلایی است.

📘 خلاصه این فصل رو در لینک زیر میتونید مشاهده کنید. اگر دوست دارید بیشتر بدونید یا نظرتون رو بگید، خوشحال می‌شم با هم صحبت کنیم!
📽 لینک ویدیو: برای دیدن ویدیو کلیک کنید
مدت ویدیو: حدودا 30 دقیقه
⏯️ پلی لیست: برای ورود کلیک کنید
🥇 کانال ما در تلگرام: برای ورود کلیک کنید

#MemoryManagement #PerformanceOptimization #ProgrammingTips #ProNetMemoryManagement #CodeWithHSN #TechBooks
🔥97👍1💯1
سلام به همه 👋🏻
فردا ویدیو داریم به نظرتون ویدیو چیه؟ 💭
قبلی هارو دیدین؟ 🤔
👍8😍3
چطور دیجی‌کالا با مدیریت میلیون‌ها تغییر موجودی در لحظه، همچنان بدون خطا کار می‌کند؟ 🚀🔥
در ویدیوی جدیدم از CQRS Deluxe پرده برداشتم و توضیح دادم که سیستم انبارداری چنین فروشگاه‌های بزرگی چطور طراحی می‌شود. 🏪📦

یکی از هیجان‌انگیزترین بخش‌های این ویدیو بررسی نقش Kafka در پیاده‌سازی Event Sourcing هست؛ جایی که Kafka به‌عنوان قلب سیستم، تمام تغییرات موجودی رو ثبت و مدیریت می‌کنه! 💡


📚 در این ویدیو یاد خواهید گرفت:
1. چطور CQRS Deluxe فراتر از مدل استاندارد CQRS عمل می‌کند. 🚀
2. چرا Kafka انتخاب فوق‌العاده‌ای برای Event Sourcing در سیستم‌های مقیاس‌پذیر است. ⚡️
3. نحوه طراحی Read Models پیشرفته و ارتباط آن‌ها با Kafka. 🛠
4. بهترین روش‌ها برای طراحی Command و Event Handlers در معماری‌های پیشرفته. 🔍


📽 لینک ویدیو: برای دیدن ویدیو کلیک کنید
مدت ویدیو: 30 دقیقه
⏯️ پلی لیست: برای ورود کلیک کنید
🥇 کانال ما در تلگرام: برای ورود کلیک کنید

🌟 اگر از محتوا لذت بردید، حتماً لایک کنید، کامنت بذارید و کانال رو دنبال کنید تا با حمایت شما این مسیر رو ادامه بدم! 💪❤️
12👍3🔥1🎉1🏆1👀1
This media is not supported in your browser
VIEW IN TELEGRAM
ببینین آقا از چنل عقب نمونید 😁❤️
9😁1🐳1🆒1👾1
آقا زحمت میکشیم فردا صبح منتظر باشید 😁❤️
قبلی هارو دیدین؟

https://youtube.com/shorts/SNrkczYCfgc?si=zhLcKcNF2cuA2d-s
10👍3🔥2😍1
خلاصه کتاب Pro .NET Memory Management فصل سوم منتشر شد

در این ویدیو آموزشی، یاد می‌گیرید که چطور حافظه را به‌طور دقیق اندازه‌گیری کنید و از آن برای بهینه‌سازی سیستم‌هایتان استفاده کنید. 📊

🎯 آنچه در این ویدیو خواهید آموخت:
📏 اهمیت اندازه‌گیری حافظه و تاثیر آن بر عملکرد
⏱️ کی و چرا باید به بهینه‌سازی حافظه فکر کنیم؟
🔍 بررسی تفاوت‌های Tracing و Sampling
📊 تحلیل Trace واقعی و استخراج اطلاعات کلیدی از آن
🛠 آشنایی با مفاهیم مهمی مثل Monitoring, MemoryDump, Tracing
📈 بررسی تخصصی نمودارها: Histogram, Median, Percentile و مفهوم Latency vs Throughput
و در نهایت، درک زمان مناسب برای کاهش Latency یا استفاده از پردازش موازی.
🔍 یک قدم فراتر از کتاب: در پایان، موارد تئوری را با اجرای عملی در یک ویدیوی دیگر ترکیب خواهیم کرد!

منتظر بازخوردهای ارزشمندتون هستم! 🌟

این پلی لیست از خلاصه کتاب Pro .NET Memory Management برای همه کسانی که به بهبود کارایی سیستم‌های نرم‌افزاری علاقه‌مندند، یک منبع طلایی است.

📘 اگر دوست دارید بیشتر بدونید یا نظرتون رو بگید، خوشحال می‌شم در کامنت ها با هم صحبت کنیم!

مدت ویدیو: حدودا 30 دقیقه
🎥 لینک ویدیو: مشاهده ویدیو
⏯️ پلی لیست: مشاهده پلی لیست
🚀 چنل تلگرام: ورود به چنل تلگرام
🔥113👍1
سلام بچها شبتون بخیر 👋🏻
تاحالا به دوچرخه برقی توی ترافیک فکر کردید؟ 🤔 حدودا 4 ماهه که با دوچرخه برقی میرم سرکار بجای 40 دقیقه توی 15 دقیقه میرسم!، دوست دارین از تجربم ولاگ درست کنم؟

https://youtube.com/shorts/n2bjcJgARaI?si=TFMe0itLilnGPvHD
👍17🔥1