اگه بنچمارک ها راجع به Adaptive GC حقیقت داشته باشه یه فیچر انقلابی رو خواهیم داشت که memory management رو برامون خیلی خیلی بهبود میده! ( بشخصه ازش خیلی استقبال میکنم چون مصرف مموری بالا توی high throughput رو به چشم دیدم)
.NET Fun
بررسی تمامی فیچر های جدید سی شارپ 13 در 18 دقیقه Join: @DotNetIsFun
به کلمه کلیدی field اشاره ای نشده چون هنوز جزو فیچرهای preview هست و توی سی شارپ ۱۳ نیست ( فیچر واقعا مزخرفی هم هست نمیدونم چرا اینقدر خواهان داشته)
پروژه Clean Architecture به دات نت 9 آپدیت شد و میتونید اون رو از طریق Nuget دریافت کنید.
علاوه بر آپدیت، کلی تغییر و بهبود توی این ورژن داشتیم که میتونید لیست کاملش رو توی لینک زیر ببینید:
https://github.com/babaktaremi/Clean-Architecture-Template/releases/tag/9.0.0
لینک خود ریپو:
https://github.com/babaktaremi/Clean-Architecture-Template
اگه مشکلی توی پروژه دیدید یا بهبودی رو در نظر دارید حتما PR بدید و مشارکت کنید و اگه از این پروژه خوشتون اومد با دادن ⭐️ حمایت کنید.
حمایت شما دلگرمی بزرگیه که به ساپورت و آپدیت این پروژه در کنار شما ادامه بدم.
Join: @DotNetIsFun
علاوه بر آپدیت، کلی تغییر و بهبود توی این ورژن داشتیم که میتونید لیست کاملش رو توی لینک زیر ببینید:
https://github.com/babaktaremi/Clean-Architecture-Template/releases/tag/9.0.0
لینک خود ریپو:
https://github.com/babaktaremi/Clean-Architecture-Template
اگه مشکلی توی پروژه دیدید یا بهبودی رو در نظر دارید حتما PR بدید و مشارکت کنید و اگه از این پروژه خوشتون اومد با دادن ⭐️ حمایت کنید.
حمایت شما دلگرمی بزرگیه که به ساپورت و آپدیت این پروژه در کنار شما ادامه بدم.
Join: @DotNetIsFun
از تک تک کلماتی که Stephen Toub توی ارائش راجع به بهبود های پرفورمنسی دات نت ۹ گفت میشه یک مقاله کامل در آورد. مگه میشه یه نفر اینقدر خفن باشه...
Join: @DotNetIsFun
Join: @DotNetIsFun
تفاوت رفتار GC در دات نت 8 و دات نت 9
توی دات نت 8 رفتار GC روی پرفورمنس و Throughput تمرکز داره و سعی میکنه زیاد توی Memory Management دخالت نکنه. ( تعداد دفعاتی که GC رخ داده صفر هست)
ولی توی دات نت 9 و با فعال شدن Adaptive GC میبینیم که تعداد دفعاتی که GC رخ داده بیشتر هست و مصرف مموری هم بسیار کمتر هست !
یکم تاثیر منفی روی Throughput داره ولی از اون طرف Gain ای که از مصرف کم مموری بدست میارید قطعا ارزشش رو داره
واقعا دم تیم دات نت گرم!
Join: @DotNetIsFun
توی دات نت 8 رفتار GC روی پرفورمنس و Throughput تمرکز داره و سعی میکنه زیاد توی Memory Management دخالت نکنه. ( تعداد دفعاتی که GC رخ داده صفر هست)
ولی توی دات نت 9 و با فعال شدن Adaptive GC میبینیم که تعداد دفعاتی که GC رخ داده بیشتر هست و مصرف مموری هم بسیار کمتر هست !
یکم تاثیر منفی روی Throughput داره ولی از اون طرف Gain ای که از مصرف کم مموری بدست میارید قطعا ارزشش رو داره
واقعا دم تیم دات نت گرم!
Join: @DotNetIsFun
تفاوت Memory Usage در دات نت 8 و دات نت 9 در Throughput یکسان
همونطور که میبینید با فعال شدن Adaptive GC مصرف مموری بسیار کمتر شده و GC تعداد دفعات بیشتری وارد عمل شده. نتیجه این بنچمارک بشخصه خیلی خوشحالم کرد!
Join: @DotNetIsFun
همونطور که میبینید با فعال شدن Adaptive GC مصرف مموری بسیار کمتر شده و GC تعداد دفعات بیشتری وارد عمل شده. نتیجه این بنچمارک بشخصه خیلی خوشحالم کرد!
Join: @DotNetIsFun
Forwarded from tech-afternoon (Amin Mesbahi)
✨ DORA چیه؟
فریمورک DORA که مختصر شدهی DevOps Research and Assessment است، یک فریمورک برای تحقیق و ارزیابیه که تمرکزش روی بهبود مستمر تحویل نرمافزار در سازمانهاست. هدف DORA کمک به تیمها و سازمانها برای بهبود عملکرد و شناسایی نقاط ضعف فرآیند توسعه و عملیاتشونه. DORA بر اساس گزارشهای سالانه مثل "Accelerate State of DevOps" و ۴ معیار کلیدی (DORA Metrics) شناخته میشه:
اول: Lead Time for Changes
زمان لازم برای انتقال تغییرات کد به محیط تولید.
دوم: Deployment Frequency
تعداد دفعات دیپلوی به محیط تولید.
سوم: Change Failure Rate
درصد دیپلویهای ناموفق که باعث مشکلات در محیط تولید میشه.
چهارم: Time to Restore Service
زمان لازم برای رفع خرابی و بازگرداندن سیستم به حالت پایدار.
🧐 به چه درد میخوره؟
فریمورک DORA به تیمها کمک میکنه تا عملکرد خودشون رو ارزیابی کنن و با استفاده از «داده» تصمیم بگیرن که کدوم بخشها نیاز به بهبود دارن. گزارشهای DORA به سازمانها کمک میکنه تا با بررسی این معیارها، روند بهبود مستمر رو پیادهسازی کنن و بهترین عملکرد رو به دست بیارن.
⚙️ استفاده از DORA برای بهبود پایدار عملکرد مهندسی سازمانه، چند موضوع مهم:
🔹 چالش جمعآوری داده: به دست آوردن دادههای دقیق برای متریکهای DORA همیشه آسون نیست. ابزارهای اتوماتیک کمک میکنن، ولی هنوز هم تلاش زیادی برای ادغام این ابزارها در اکوسیستم سازمان نیاز هست.
🔹 اهمیت بازخورد: تیمها میتونن از گزارشهای DORA به عنوان بخشی از فرآیند بهبود مستمر استفاده کنن، مشابه یک ریتروسپکتیو تیمی که با تحلیل گزارشها به اقدامات جدید میرسن.
🔹 تأثیرات پیادهسازی درست DORA: پیادهسازی درست DORA خیلی به رهبری و نحوه حمایت از اون بستگی داره. اگر تیمها آزادی عمل داشته باشن تا بهبودهای خودشون رو انتخاب کنن، نتایج پایدارتری به دست میآد.
🔹تیمهای موفق از استانداردهای صنعتی الهام میگیرن: تبیین قابلیتهای DORA باعث میشه تا تیمها بهتر بتونن معیارها رو درک کنن و از "این نظر منه" و "نظر تو چیه" فاصله بگیرن و به یک استاندارد صنعتی مشترک برسن.
🧾 نکات جالب از گزارش DORA 2024
🔸 رشد استفاده از هوش مصنوعی: پذیرش هوش مصنوعی داره به شدت رشد میکنه و تیمها گزارش دادن که استفاده از AI باعث افزایش بهرهوری، کیفیت کد، و سرعت بررسیهای کد شده. با این حال، استفاده از AI تأثیر منفی کوچکی روی پایداری تحویل نرمافزار داشته.
🔸 مهندسی پلتفرم: گزارش اشاره کرده که تیمهای استفادهکننده از پلتفرمهای داخلی ۱۰ درصد بهرهوری بیشتری داشتن، ولی کاهش ۸ درصدی در throughput و ۱۴ درصدی در stability هم مشاهده شده.
🔸 تثبیت اولویتها: سازمانهایی که اولویتهای پایدار دارن، بهرهوری بیشتری دارن و سطح فرسودگی (burnout) کارکنان پایینتره.
❇️ خلاصه اینکه، روشمند و ساختاریافته در مورد فرایندهامون رفتار کنیم 😉
🔗 وبسایت DORA
🔗 گزارش سال ۲۰۲۴
فریمورک DORA که مختصر شدهی DevOps Research and Assessment است، یک فریمورک برای تحقیق و ارزیابیه که تمرکزش روی بهبود مستمر تحویل نرمافزار در سازمانهاست. هدف DORA کمک به تیمها و سازمانها برای بهبود عملکرد و شناسایی نقاط ضعف فرآیند توسعه و عملیاتشونه. DORA بر اساس گزارشهای سالانه مثل "Accelerate State of DevOps" و ۴ معیار کلیدی (DORA Metrics) شناخته میشه:
اول: Lead Time for Changes
زمان لازم برای انتقال تغییرات کد به محیط تولید.
دوم: Deployment Frequency
تعداد دفعات دیپلوی به محیط تولید.
سوم: Change Failure Rate
درصد دیپلویهای ناموفق که باعث مشکلات در محیط تولید میشه.
چهارم: Time to Restore Service
زمان لازم برای رفع خرابی و بازگرداندن سیستم به حالت پایدار.
🧐 به چه درد میخوره؟
فریمورک DORA به تیمها کمک میکنه تا عملکرد خودشون رو ارزیابی کنن و با استفاده از «داده» تصمیم بگیرن که کدوم بخشها نیاز به بهبود دارن. گزارشهای DORA به سازمانها کمک میکنه تا با بررسی این معیارها، روند بهبود مستمر رو پیادهسازی کنن و بهترین عملکرد رو به دست بیارن.
⚙️ استفاده از DORA برای بهبود پایدار عملکرد مهندسی سازمانه، چند موضوع مهم:
🔹 چالش جمعآوری داده: به دست آوردن دادههای دقیق برای متریکهای DORA همیشه آسون نیست. ابزارهای اتوماتیک کمک میکنن، ولی هنوز هم تلاش زیادی برای ادغام این ابزارها در اکوسیستم سازمان نیاز هست.
🔹 اهمیت بازخورد: تیمها میتونن از گزارشهای DORA به عنوان بخشی از فرآیند بهبود مستمر استفاده کنن، مشابه یک ریتروسپکتیو تیمی که با تحلیل گزارشها به اقدامات جدید میرسن.
🔹 تأثیرات پیادهسازی درست DORA: پیادهسازی درست DORA خیلی به رهبری و نحوه حمایت از اون بستگی داره. اگر تیمها آزادی عمل داشته باشن تا بهبودهای خودشون رو انتخاب کنن، نتایج پایدارتری به دست میآد.
🔹تیمهای موفق از استانداردهای صنعتی الهام میگیرن: تبیین قابلیتهای DORA باعث میشه تا تیمها بهتر بتونن معیارها رو درک کنن و از "این نظر منه" و "نظر تو چیه" فاصله بگیرن و به یک استاندارد صنعتی مشترک برسن.
🧾 نکات جالب از گزارش DORA 2024
🔸 رشد استفاده از هوش مصنوعی: پذیرش هوش مصنوعی داره به شدت رشد میکنه و تیمها گزارش دادن که استفاده از AI باعث افزایش بهرهوری، کیفیت کد، و سرعت بررسیهای کد شده. با این حال، استفاده از AI تأثیر منفی کوچکی روی پایداری تحویل نرمافزار داشته.
🔸 مهندسی پلتفرم: گزارش اشاره کرده که تیمهای استفادهکننده از پلتفرمهای داخلی ۱۰ درصد بهرهوری بیشتری داشتن، ولی کاهش ۸ درصدی در throughput و ۱۴ درصدی در stability هم مشاهده شده.
🔸 تثبیت اولویتها: سازمانهایی که اولویتهای پایدار دارن، بهرهوری بیشتری دارن و سطح فرسودگی (burnout) کارکنان پایینتره.
❇️ خلاصه اینکه، روشمند و ساختاریافته در مورد فرایندهامون رفتار کنیم 😉
🔗 وبسایت DORA
🔗 گزارش سال ۲۰۲۴
dora.dev
DORA | Get Better at Getting Better
DORA is a long running research program that seeks to understand the capabilities that drive software delivery and operations performance. DORA helps teams apply those capabilities, leading to better organizational performance.
Media is too big
VIEW IN TELEGRAM
توی این 40 دقیقه خیلی کارها کردیم:
- اول به بررسی اینکه چجوری میتونیم به وسیله Masstransit از کافکا استفاده کنیم پرداختیم
- سپس Aspire App Host و Aspire Service Defaults رو به پروژه اضافه کردیم و دیدیم که Aspire Service Defaults چه کانفیگ های خوبی رو برای متریک ها و Tracing به پروژه اضافه میکنه
- با استفاده از Aspire کل پروژه رو هاست کردیم و به سادگی آب خوردن کافکا و Kafka UI رو به اون اضافه کردیم
- به وسیله scalar UI با API هایی که نوشته بودیم ارتباط برقرار کردیم ( Scalar UI هنوز خیلی کار داره. یه باگش رو هم توی همین قسمت میبینید)
- پنل Kafka UI و تاپیک ها و مسیج هایی که با Masstransit ایجاد کرده بودیم رو بررسی کردیم
- در آخر هم Aspire Dashboard رو بررسی کردیم و Trace های Masstransit رو به Source Trace هایی که داشتیم اضافه کردیم.
تقریبا کامل Aspire رو شخم زدیم 😁 پیشنهاد میکنم که حتما این ویدیو رو نگاه کنید.
Join: @DotNetIsFun
- اول به بررسی اینکه چجوری میتونیم به وسیله Masstransit از کافکا استفاده کنیم پرداختیم
- سپس Aspire App Host و Aspire Service Defaults رو به پروژه اضافه کردیم و دیدیم که Aspire Service Defaults چه کانفیگ های خوبی رو برای متریک ها و Tracing به پروژه اضافه میکنه
- با استفاده از Aspire کل پروژه رو هاست کردیم و به سادگی آب خوردن کافکا و Kafka UI رو به اون اضافه کردیم
- به وسیله scalar UI با API هایی که نوشته بودیم ارتباط برقرار کردیم ( Scalar UI هنوز خیلی کار داره. یه باگش رو هم توی همین قسمت میبینید)
- پنل Kafka UI و تاپیک ها و مسیج هایی که با Masstransit ایجاد کرده بودیم رو بررسی کردیم
- در آخر هم Aspire Dashboard رو بررسی کردیم و Trace های Masstransit رو به Source Trace هایی که داشتیم اضافه کردیم.
تقریبا کامل Aspire رو شخم زدیم 😁 پیشنهاد میکنم که حتما این ویدیو رو نگاه کنید.
Join: @DotNetIsFun
.NET Fun
توی این 40 دقیقه خیلی کارها کردیم: - اول به بررسی اینکه چجوری میتونیم به وسیله Masstransit از کافکا استفاده کنیم پرداختیم - سپس Aspire App Host و Aspire Service Defaults رو به پروژه اضافه کردیم و دیدیم که Aspire Service Defaults چه کانفیگ های خوبی رو برای…
لینک ریپو این پروژه:
https://github.com/babaktaremi/Aspire-Kafka
https://github.com/babaktaremi/Aspire-Kafka
GitHub
GitHub - babaktaremi/Aspire-Kafka: A Sample Project Using .NET Aspire For Kafka And Kafka UI and Masstransit For Connecting To…
A Sample Project Using .NET Aspire For Kafka And Kafka UI and Masstransit For Connecting To Kafka - babaktaremi/Aspire-Kafka
رفهاب علاوه بر ویژگیهای جذابی که داره، یه امکان باحال اضافه کرده: میتونید لیستی از کتابهای مورد علاقتون بسازید. من هم یه لیست از کتابهایی که فکر میکنم هر برنامهنویس داتنتی حداقل یکبار باید بخونه، آماده کردم.
مطالعه این کتابها رو بهشدت توصیه میکنم:
مشاهده لیست در رفهاب
مطالعه این کتابها رو بهشدت توصیه میکنم:
مشاهده لیست در رفهاب
refhub.ir
انتخاب خبرهها بابک طارمی -> کتابهایی که هر توسعهدهنده داتنت باید بیش از یک بار بخواند!
RefHub - Reference Hub | Freedom of Knowledge
Forwarded from iCodeNext
🔥 Riter is not a pen, it's your mind.
🌀 خیلی وقته که من از ابزار های اینچنینی استفاده میکنم، اما خوب همیشه محدودیت هاش برام زیاد بود، و پکیجی هم که من استفاده میکردم دیگه آپدیت نمیشد. خوب گفتم از یه جایی شروع کنم، اولش اینقدر جدی نبود، بعد دیدم که خوب داره میره جلو. تقریبا هر چیزی بود رو کم کم دارم پیاده سازی میکنم. کلا حال میده، روی پروژه های الکی وقت بگذرونه آدم. هم یه چیزی یاد میگیره، تهشم اگه شد یه محصول که چه بهتر.
ممنون میشم اگه حالش رو داشتید، ازش استفاده کنید، و یا حتی پیشنهاد بدید، توسعه بدید.
بازم ممنونم بایت استار هایی که به پروژه میدید،(هر چند تعداد محدودی از افراد این کار رو میکنند، اما همیشه مشتی هستند) ❤️❤️❤️
بسیار بسیار ممنونم از تک تک افرادی که تست کردند و کلی فیدبک دادند. من 5 نفر اول رو منشن کردم، بقیه دوستان معذرت میخوام خیلی زیادن خداییش.
@NimaKaviyani @Saman_H2500 @StubbornGirlInfo @raminny @HassanRezaei3790
لینک پروژه:
https://github.com/mohammadKarimi/Riter
🌀 خیلی وقته که من از ابزار های اینچنینی استفاده میکنم، اما خوب همیشه محدودیت هاش برام زیاد بود، و پکیجی هم که من استفاده میکردم دیگه آپدیت نمیشد. خوب گفتم از یه جایی شروع کنم، اولش اینقدر جدی نبود، بعد دیدم که خوب داره میره جلو. تقریبا هر چیزی بود رو کم کم دارم پیاده سازی میکنم. کلا حال میده، روی پروژه های الکی وقت بگذرونه آدم. هم یه چیزی یاد میگیره، تهشم اگه شد یه محصول که چه بهتر.
ممنون میشم اگه حالش رو داشتید، ازش استفاده کنید، و یا حتی پیشنهاد بدید، توسعه بدید.
بازم ممنونم بایت استار هایی که به پروژه میدید،(هر چند تعداد محدودی از افراد این کار رو میکنند، اما همیشه مشتی هستند) ❤️❤️❤️
بسیار بسیار ممنونم از تک تک افرادی که تست کردند و کلی فیدبک دادند. من 5 نفر اول رو منشن کردم، بقیه دوستان معذرت میخوام خیلی زیادن خداییش.
@NimaKaviyani @Saman_H2500 @StubbornGirlInfo @raminny @HassanRezaei3790
لینک پروژه:
https://github.com/mohammadKarimi/Riter
iCodeNext
🔥 Riter is not a pen, it's your mind. 🌀 خیلی وقته که من از ابزار های اینچنینی استفاده میکنم، اما خوب همیشه محدودیت هاش برام زیاد بود، و پکیجی هم که من استفاده میکردم دیگه آپدیت نمیشد. خوب گفتم از یه جایی شروع کنم، اولش اینقدر جدی نبود، بعد دیدم که خوب داره…
ده لول از بقیه پروژه های مشابه ( مثل Epic Pen که قبلا استفاده میکردم ) بالاتر و بهتر و تمیز تره.
کارت درسته محمد جان❤️
کارت درسته محمد جان❤️
یکی از برنامه های مورد علاقه من EF Core Community Standup هستش. اولش رو با چی شروع کردن؟ از Memory Provider برای تست کردن کد استفاده نکنید و Test Container ها جایگزین بسیار بهتری هستند😁
join: @DotNetIsFun
join: @DotNetIsFun
.NET Fun
یکی از برنامه های مورد علاقه من EF Core Community Standup هستش. اولش رو با چی شروع کردن؟ از Memory Provider برای تست کردن کد استفاده نکنید و Test Container ها جایگزین بسیار بهتری هستند😁 join: @DotNetIsFun
یه فیچر خیلی خوب به مایگریشن ها اضافه شده که تاحالا بهش اشاره نشده بود و اونم Database Locking هست و باعث میشه اگه چنتا اینستنس از اپلیکیشن بخوان همزمان روی دیتابیس مایگریشن اعمال کنن ناخواسته دیتابیس رو کلا خراب نکنن و فقط یک اینستنس در لحظه migration رو اعمال کنه
Join: @DotNetIsFun
Join: @DotNetIsFun
سی شارپ از Go هم که ادعا خدایی توی concurrency داره چند برابر بهینه تر عمل کرده!
لینک مقاله:
https://hez2010.github.io/async-runtimes-benchmarks-2024/
Join : @DotNetIsFun
لینک مقاله:
https://hez2010.github.io/async-runtimes-benchmarks-2024/
Join : @DotNetIsFun
یه بنچمارک برای تست پرفورمنس بین الگوریتم های مختلف Hashing گرفتم . نتیجش جالب بود. به نظرم کلا سمت MD5 نرید
جایی که فقط میخواید Data Integrity و Content Identification داشته باشید و پرفورمنس هم براتون مهم هست XXHash گزینه جذابی میتونه باشه
Join: @DotNetIsFun
جایی که فقط میخواید Data Integrity و Content Identification داشته باشید و پرفورمنس هم براتون مهم هست XXHash گزینه جذابی میتونه باشه
Join: @DotNetIsFun
کارگزاری مفید 30 سالش شد ( باورم نمیشه که جایی دارم کار میکنم که قدمتش از سن من هم بیشتره!) . یه کار باحالی که مفید برای جشن 30 سالگیش کرده برگزاری یه جشنوارس که جایزه های خیلی خوبی هم داره. چک کردنش خالی از لطف نیست:
🔗🔗 لینک ورود 🔗🔗
join: @DotNetIsFun
🔗🔗 لینک ورود 🔗🔗
join: @DotNetIsFun