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
🤯🤯 یک چالش و سوال خیلی خفن، دو متد داریم به شرح زیر:
    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
چطور Failover Test Database روی اکالا رفتیم و SQL رو انداختیم بدون از دست دادن حتی یک سفارش پرداخت شده!
🔥 چند وقت پیش داشتیم Failover تست می‌کردیم. دیتابیس رو تو پیک فروش عمداً از دسترس خارج کردیم تا ببینیم سیستم چه واکنشی نشون می‌ده. فکر کن! یه عالمه سفارش در حال پرداخت بود. اما با طراحی‌ای که کرده بودیم، همه چیز طوری پیش رفت که وقتی دیتابیس برگشت، انگار هیچ اتفاقی نیفتاده بود!، و همه چیز بدون استرس برگشت سر جاش.

راز موفقیتمون چی بود؟ سیستم Resilient! یعنی سیستمی که اگه هر بلایی سرش بیاد، تاجای ممکن رو پا می‌مونه و کارش رو می‌کنه.

برخی از ویژگی هایی که بهش رسیدیم:
Fault Detection: سیستم سریع مشکلات رو شناسایی می‌کنه. 🔍⚠️
Self-Healing: خودش رو از نو راه می‌اندازه. 🔄🛠
Fault Isolation: یه مشکل پیش بیاد، نمی‌ذاره کل سیستم خراب بشه. 🚪🛡

اگه دوست داری توام یادبگیری چطوری این رو پیاده کردیم این ویدیو رو از دست نده.
🎥 لینک ویدیو: مشاهده ویدیو
⌛️زمان ویدیو: حدودا 30 دقیقه
پلی لیست: مشاهده پلی لیست
🔥122👍2👏1
سلام عزیزان 👋🏻، دارم روی یک ویدیو کار میکنم که نشون بدم دیجی کالا چطوری خلاصه نظرات توسط هوش مصنوعی رو برای محصولاتش رو نشون میده امیدوارم که نتیجه بده ❤️
نظر شما چیه؟ 🤔
19👍3🔥2
Media is too big
VIEW IN TELEGRAM
چطور شبیه دیجیکالا فیچر خلاصه کامنت‌ها توسط هوش مصنوعی رو ساختیم؟!🤯

تا حالا فکر کردید دیجیکالا چطور کامنت‌های کاربران رو خلاصه می‌کنه؟ ما با یک پروژه عملی و جذاب، مهندسی معکوس این فیچر رو انجام دادیم و تونستیم کاری کنیم که هوش مصنوعی کامنت‌های مربوط به یک ProductId خاص رو خلاصه کنه! 😎

در این ویدیو، یک فیچر واقعی به نام "خلاصه دیدگاه‌ها" رو بررسی و پیاده‌سازی می‌کنیم. داستان اینطوریه که در Prompt به هوش مصنوعی می‌گیم: "برای ProductId N، کامنت‌ها رو جمع‌آوری کن و خلاصه‌شون رو به ما بده." AI هم خودش میره دیتای مربوطه رو از سرویس‌های ما دریافت می‌کنه، تحلیلش می‌کنه و یک خروجی خلاصه و حرفه‌ای تحویلمون میده. 😍

💡 چه مباحثی رو پوشش دادیم؟
1. استفاده از Semantic Kernel برای ارتباط با مدل‌های زبانی بزرگ (LLM)
2. راه‌اندازی Ollama در Docker
3. استفاده از Scalar بجای Swagger در .NET9

اگر به هوش مصنوعی، تکنولوژی‌های پیشرفته و پیاده‌سازی پروژه‌های واقعی علاقه دارید، این ویدیو حتماً شما رو هیجان‌زده می‌کنه! 🎥

این پستو برای دوستات هم بفرست ❤️
🔗 لینک ویدیو: مشاهده ویدیو
مدت زمان ویدیو: 40 دقیقه
🔥1161💯1
Media is too big
VIEW IN TELEGRAM
تا حالا فکر کردی Struct ها واقعاً کجاها به درد می‌خورن؟ 🤔 مثلاً می‌دونی که می‌تونیم ازشون توی DTO‌هامون استفاده کنیم، ولی اگه مراقب Boxing نباشیم، می‌رن توی Heap و دیگه تقریبا فرقی با Class ندارن! 😅

توی این ویدیو:
یاد می‌گیریم Struct کجا خوبه و چطور جلوی Boxing رو بگیریم
فرق‌های Value Type و Reference Type رو کشف می‌کنیم
با String‌ها عمیق‌تر آشنا می‌شیم و یاد می‌گیریم چطور حافظه کمتری مصرف کنن

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

اینو بفرست برای اون دوستت که عاشق بهینه سازی هست 🫂

لینک ها:
🎞 لینک ویدیو: مشاهده ویدیو
⏯️ پلی لیست: مشاهده کامل پلی لیست
🔥1451👏1
سلام بچها 👋🏻
چطورین؟ امیدوارم حالتون خوب باشه ❤️،
اکثر ما پسرا این روزا مشکل سربازی داریم و دیر یا زود قراره باهاش مواجه بشیم،
نظرتون چیه یک ویدیو درباره فرایند امریه گرفتن براتون رکورد کنم؟ موافق ها 👍🏻 بدید مخالف ها 👎🏻

💭 خودم یکی از پیچیده ترین امریه های تاریخ رو گرفتم درحدی که وسط پروسه امریه گرفتن کلا قانون اومد افراد دارای کارشناسی کلا لغو امریه هستند و باید برن سربازی من مونده بودم و برگه سفیدی که دستم بود نه راه برگشت داشتم نه راه رو به جلو از طرفی بخاطر امریه ساکن تهران شده بودم و کلی هزینه کرده بودم و قرار بود یک ماه بعد از این قانون برم سربازی...
👍305