Developer Advocate
Відкрити в Telegram
1 035
Підписники
Немає даних24 години
Немає даних7 днів
-130 днів
Архів дописів
1 035
Pro .NET Memory Management: For Better Code, Performance, and Scalability Second Edition 🔥
این کتاب، راهنمایی جامع برای درک عمیق مدیریت حافظه در .NET است و به شما کمک میکند نرمافزاری با عملکرد بهتر و مقیاسپذیری بیشتر بنویسید. اگرچه .NET به صورت خودکار حافظه را مدیریت میکند، اما دانستن جزئیات و اصول آن میتواند تأثیر زیادی در بهینهسازی و کارایی کد شما داشته باشد.
درباره کتاب:
این کتاب توسط تیم .NET مایکروسافت بررسی و تایید شده است و شامل سناریوهای کاربردی برای عیبیابی مشکلات پیچیده حافظه است. همچنین قوانین و تکنیکهای مهمی را معرفی میکند که به شما کمک میکنند از اشتباهات رایج جلوگیری کرده و کدی آگاه به مدیریت حافظه بنویسید.
چیزهایی که یاد میگیرید:
پایههای نظری مدیریت خودکار حافظه: درک مفاهیم اساسی پشت مدیریت حافظه در .NET.
بررسی عمیق مدیریت حافظه: از جمله پوشش دقیق نحوه عملکرد جمعآوری زباله (Garbage Collection یا GC).
توصیههای عملی: تکنیکهای کاربردی برای نوشتن کدی که به صورت بهینه با حافظه کار میکند.
استفاده از ابزارهای تشخیصی: آشنایی با ابزارهایی برای شناسایی و رفع مشکلات حافظه.
مدیریت پیشرفته حافظه: شامل استفاده از انواع Span و Memory برای بهبود عملکرد.
این کتاب برای چه کسانی مناسب است؟
توسعهدهندگان .NET: که به دنبال نوشتن کدهای سریعتر و بهینهتر هستند.
معماران نرمافزار: که میخواهند سیستمهایی مقاوم و مقیاسپذیر طراحی کنند.
مهندسان عملکرد: که بر روی بهینهسازی عملکرد سیستمها تمرکز دارند.
با مطالعه این کتاب، به ابزارها و دانشی دست مییابید که سالها تجربه نیاز دارد تا آنها را بدست آورید. این منبع ارزشمند به شما کمک میکند تا کدی بهتر و با مدیریت بهینهتر حافظه در .NET بنویسید، از Framework گرفته تا .NET 8.
@DeveloperAdvocate 🥑
1 035
Repost from Masoud Bahrami Channel
The real problem in software development isn't just a few bad habits or mistakes. It's when these bad habits become normal and accepted within the team. This can lead to a decline in code quality, missed deadlines, and a toxic work environment.
To prevent this, teams should focus on continuous improvement, open communication, and a commitment to quality.
1 035
Repost from OnHex
🔴 یک آسیب پذیری با شدت بحرانی و امتیاز 9.9 و با شناسه CVE-2024-42327 در Zabbix اصلاح شده. این آسیب پذیری از نوع SQLi هستش و امکان افزایش امتیاز و کنترل Zabbix رو به مهاجم میده.
آسیب پذیری در نقطه پایانی user.get API هستش. بصورت دقیتر در کلاس CUser در تابع addRelatedObjects رخ میده، این تابع توسط تابع CUser.get فراخوانی میشه.
برای اکسپلویت نیاز به یک کاربر با دسترسی به API هستش. مهم نیست ادمین باشه یا نه. این مورد بستگی به پیکربندی Zabbix متفاوته. مثلا بصورت پیش فرض رول User این دسترسی رو داره.
نسخه های آسیب پذیر و اصلاح شده:
6.0.0 - 6.0.31 / 6.0.32rc1
6.4.0 - 6.4.16 / 6.4.17rc1
7.0.0 / 7.0.1rc1
زبیکس یک نرمافزار قدرتمند و متنباز برای نظارت بر شبکهها، سرورها و سایر دستگاههای فناوری اطلاعات هستش.
#آسیب_پذیری_امنیتی #زبیکس
#Zabbix #SQLi
🆔 @onhex_ir
➡️ ALL Link
1 035
🙂
اصلاً مهم نیست چه لیبلی روی شما هست: CTO، CEO، Tech Lead، Senior، Mid، Junior.
یا حتی اینکه کجا کار کردید یا مشغول به کار توی کدوم شرکت هستید.
چیزی که اهمیت داره اینه که چقدر میتونید "ارزش" خلق کنید و چه کارهای فوقالعادهای انجام دادهاید.
پس زیاد درگیر عنوانها و لیبلهای دیگران نباشید، به عملکرد و تاثیرگذاریشون توجه کنید.
@DeveloperAdvocate 🥑
https://www.linkedin.com/feed/update/urn:li:activity:7267931265427722240/
1 035
درس رهبری با پپ: 👏
در دنیای نرمافزار، مشابه فوتبال، اشتباهات بخشی از مسیر رشد و یادگیری هستند. وقتی پروژهای با چالش مواجه میشود یا یک توسعهدهنده کدی را اشتباه مینویسد، مهمترین کار این است که از آن اشتباهات درس بگیریم و جلوتر برویم. دقیقاً مانند چیزی که پپ گواردیولا در تیم منچسترسیتی نشان داده است: او به جای اینکه بر اشتباهات فردی بازیکنانش تمرکز کند، از آنها حمایت کرده و فضایی فراهم میآورد که بازیکنان بدون ترس از اشتباه بتوانند پیشرفت کنند.
در دنیای نرمافزار، این طرز تفکر به چه معناست؟
رهبران نرمافزاری باید به تیمهای خود این اعتماد را بدهند که میتوانند آزمایش کنند و حتی اگر شکست خوردند، همچنان پشتیبانی میشوند. گواردیولا در یکی از مصاحبههایش گفته بود: "همه ما انسانیم و ممکن است اشتباه کنیم، این اشتباهات بخشی از فرایند یادگیری هستند." دقیقاً همین فلسفه در دنیای نرمافزار کاربرد دارد. وقتی برنامهنویسی یک باگ را پیدا میکند یا الگوریتمی که نوشته به درستی کار نمیکند، نباید از سرزنش و فشار زیاد استفاده کرد، بلکه باید به تیم یادآوری کرد که اینها فرصتهایی برای یادگیری و بهبود است.
کار تیمی در دنیای نرمافزار: کلید موفقیت پروژهها
در هر پروژه نرمافزاری، موفقیت تنها نتیجه کار یک نفر نیست، بلکه حاصل همکاری و تعامل بین اعضای تیم است. به همین دلیل است که پپ گواردیولا در یکی از مصاحبههایش گفته بود: "ما یک تیم هستیم و همه در موفقیتها و شکستها شریکیم." این نگرش در دنیای نرمافزار هم به شدت حائز اهمیت است. وقتی تیمی از توسعهدهندگان، طراحان و مدیران محصول بهطور هماهنگ و با حمایت متقابل همکاری میکنند، نتیجه بهتری به دست میآید. اگر مشکلی در پروژه پیش بیاید، به جای اینکه یک نفر را مقصر بدانیم، باید همه تیم وارد عمل شوند و با هم به حل مشکل بپردازند.
@DeveloperAdvocate 🥑
1 035
Repost from Arass Tech
پیرو نظرات محترم شما عزیزان تصمیم گرفتم هر 10 روز یکبار یه ووچر کد 100 دلاری برای استفاده و تست و تمرین رو پلتفرم Azure قرار بدم.
برای استفاده کارهای زیر رو به ترتیب انجام بدین
1- ساخت اکانت رایگان Azure از طریق Portal.Azure.com
2-ورود به ادرس microsoftazurepass.com و لاگین با اکانت Azure . فراموش نکنید توی این مرحله حتما VPN روشن باشه. در غیراینصورت ووچر کد میسوزه. برای استفاده های بعدی دیگه نیازی به VPN نیست.
3-بعد از وارد کردن ووچر کد صبر کنید تا شمارو به صفحه portal.azure.com هدایت کنه و صفحه رو نبندید.
فقط ممنون میشم هر کدوم از شما عزیزان که ووچر کد رو استفاده کردین اطلاع بدین که بقیه دوستان متوجه بشن و مجدد تلاش نکنن.
1 035
Facilitating Software Architecture 1st Edition
نقش معمار نرمافزار دیگه مثل گذشته ساده نیست. با پیچیدهتر شدن سیستمها و تیمهایی که اونها رو میسازن و توسعه میدن، دیگه یه نفر نمیتونه همه وظایف معماری رو بهتنهایی انجام بده. حجم کار اونقدر زیاد شده که به یه بحران رسیده.
اما یه راه بهتر وجود داره! اندرو هارمل-لا توی این کتاب توضیح میده که چطور معمارها و تیمهای توسعه میتونن با هم همکاری کنن و سیستمهای بهتر و بهینهتری بسازن. تکنیکهایی که یاد میگیری باعث میشه همه اعضای تیم بتونن در معماری مشارکت کنن و باهم بهترین سیستمها رو خلق کنن.
چیزی که از این کتاب یاد میگیری:
شناخت تغییرات جدید: با دنیای مدرن توسعه نرمافزار و چالشهاش آشنا میشی.
روش کار تیمی: یاد میگیری چطور معماری رو بهصورت گروهی و هماهنگ با توسعه انجام بدی.
تعامل موثر: چطور تصمیم بگیری، مشاوره بدی، بازخورد بگیری و معماری رو بهتر کنی.
مدیریت خطرات: یاد میگیری چطور مشکلات رو پیشبینی کنی و ازشون جلوگیری کنی.
روش مناسب برای تیم خودت: یه روش کاری میسازی که با مهارتهای تیم و فرهنگ سازمانت جور باشه.
اگه دنبال راههایی هستی که معماری نرمافزار رو سادهتر و تیمیتر کنی، این کتاب دقیقا همون چیزیه که بهش نیاز داری! 🚀
@DeveloperAdvocate 🥑
1 035
Async Rust: Unleashing the Power of Fearless Concurrency 1st Edition
اگه دنبال یه کتاب کاربردی برای یادگیری برنامهنویسی غیرهمزمان (Async) در زبان قدرتمند Rust هستی، این یکی دقیقا همون چیزیه که میخوای! Rust که به خاطر سرعت و امنیت حافظهاش معروفه، با قابلیتهای غیرهمزمان خودش حسابی میتونه توی پروژههای چندوظیفهای بهت کمک کنه.
این کتاب، نوشتهی مکسول فلیتون و کارولین مورتون، بهت نشون میده چطور از Rust Async برای حل مسائل پیچیده استفاده کنی. تازه، قراره با کتابخونهی محبوب Tokio هم کار کنی و یاد بگیری چطور ترافیک ورودی رو مدیریت کنی، بین رشتهها ارتباط برقرار کنی و با استفاده از الگوهای طراحی جذاب، راهحلهای هوشمندانه ارائه بدی.
از این کتاب چی یاد میگیری؟
- چطور Rust برنامهنویسی Async رو پیادهسازی میکنه
- ارتباط Coroutineها با Async در Rust
- پیادهسازی مدل Reactive Programming و سیستم Pub/Sub
- حل مسائل با الگوی بازیگرها (Actors)
- شخصیسازی Tokio برای مدیریت دقیقتر وظایف
- طراحی الگوهای Async در Rust
- ساخت یک سرور TCP غیرهمزمان فقط با کتابخانهی استاندارد Rust
- نحوهی انجام تست واحد (Unit Test) و تست انتها به انتها (End-to-End Test) برای سیستم Async
تا آخر این کتاب، میتونی یه سرور TCP غیرهمزمان از صفر بسازی، بدون نیاز به هیچ کتابخونهی خارجی. تازه یاد میگیری چطور کدت رو کامل و حرفهای تست کنی!
این کتاب مناسب کساییه که عاشق یادگیری عمیق هستن و میخوان Rust رو به سطح جدیدی ببرن. 💪
@DeveloperAdvocate 🥑
1 035
روشهای ارائهی نرمافزار همیشه در حال تغییرن تا سرعت رسیدن به بازار رو بالا ببرن، بدون اینکه به قابلاعتماد بودن و پایداری آسیب بزنن. تو این مسیر، تسلط به فرآیند توسعه از نسخهسازی تا استقرار در محیط واقعی و ساخت کدی که برای محیط تولید آماده باشه، حالا از همیشه مهمتره. در این میان، استقرار پیوسته (Continuous Deployment) یک قدم جلوتر میره و با خودکارسازی آخرین مرحلهی استقرار به محیط تولید، بازخورد سریعتر و عرضهی امنتر رو ممکن میکنه.
نویسندهی کتاب، *والنتینا سرویل*، که با سالها تجربه در همکاری با سازمانهای متوسط و بزرگ در شرکت Thoughtworks، این راهنما رو برای شما آماده کرده تا بتونین استقرارهایی امن و مطمئن رو بدون نیاز به کنترلهای دستی انجام بدین. تو این کتاب، چارچوبی رو یاد میگیرین که به کمکش میتونین طی کارهای روزانه، انتشارهای تدریجی و ایمن داشته باشین و به چالشهای استقرار پیوسته در سیستمهای پیچیده و توزیعشده پاسخ بدین. کتاب همچنین شامل مصاحبهها و مطالعات موردی از متخصصین این حوزه است.
این کتاب به شما کمک میکنه تا:
- نظارت، کارایی، خودکارسازی تست و امنیت رو هنگام تقسیمبندی کارها به بخشهای کوچکتر در نظر بگیرین.
- یه برنامهی روزانه توسعهای بچینین که استقرارهای فوری به تولید رو توش لحاظ کنه.
- بدون ایجاد مشکل در عملکرد، کارهای در حال توسعه رو بهصورت تدریجی به محیط تولید استقرار بدین.
- الگوهایی برای بازسازی عملکردهای زنده و تغییر لایههای داده استفاده کنین.
- ویژگیها رو با تنظیمات مختلف به صورت مرحلهای در محیط تولید تست و منتشر کنین.
@DeveloperAdvocate 🥑
1 035
Continuous Deployment: Enable Faster Feedback, Safer Releases, and More Reliable Software 1st Edition
@DeveloperAdvocate 🥑
1 035
تا چند وقت پیش، زیرساختها نقش اصلی رو توی اجرای نرمافزارهای داخلی سازمانها داشتند. اما حالا که شرکتهای ارائهدهندهی خدمات ابری مدیریت سختافزارها رو به دست گرفتن، کسبوکارها بالاخره میتونن توسعهدهندههاشون رو هم از مزایای چابکی و تمرکز روی نیازهای مشتری بهرهمند کنن. این روزها اضافه کردن مدیریت محصول به تیمهای زیرساختی حسابی محبوب شده.
اما وقتی زیرساخت هنوز لایهی عملیاتی شرکت محسوب میشه، چطور میشه این کار رو انجام داد؟
این کتاب راهنمایی عملی برای مهندسان، مدیران، مدیران محصول و رهبران فراهم کرده تا بتونن با تغییراتی که برای سازمانهای پلتفرممحور مدرن لازمه همراه بشن. تو این کتاب یاد میگیرین که مهندسی پلتفرم دقیقاً چیه (و چیه که نیست!) و چطور میتونه به توسعهدهندهها و تیمها ارزش و سود برسونه. در واقع، این کتاب بهتون کمک میکنه به پلتفرم به چشم یه محصول نگاه کنین و با چالشهای فنی و مدیریتی که ممکنه تو این مسیر پیش بیاد، آشنا بشین.
با خوندن این کتاب میتونید:
یه دیدگاه «پلتفرم بهعنوان محصول» و توسعهدهندهمحور تو ذهنتون شکل بدین
بفهمین تیمهای مهندسی پلتفرم چه کارهایی انجام میدن و چه کارهایی نه
قدمهای اولیه برای پذیرش مهندسی پلتفرم تو سازمانتون رو بردارین
متوجه بشین تبدیل شدن به مدیر محصول تو تیم پلتفرم چه مهارتهایی لازم داره
با چالشهای مقیاسپذیری پلتفرمها بیشتر آشنا بشین
فرآیندها رو خودکار کنین و زیرساختهای خودخدمت رو توسعه بدین تا توسعه سریعتر بشه و تجربهی توسعهدهندهها بهبود پیدا کنه
یه تیم پلتفرم بسازین، اعضا رو استخدام و مدیریت کنین و برای تیمتون حمایت لازم رو به دست بیارین
@DeveloperAdvocate 🥑
1 035
https://www.rabbitmq.com/blog/2023/03/02/quorum-queues-migration
Migrating from Mirrored Classic Queues to Quorum Queues
Classic Mirrored Queues were deprecated in 3.9, with a formal announcement posted on August 21, 2021. They will be removed entirely in 4.0
@DeveloperAdvocate 🥑
