یادداشت های یه برنامه نویس
275 subscribers
39 photos
3 videos
3 files
80 links
این کانال برای در میان گذاشتن یادداشت ها و تجربیات جالب در مورد برنامه نویسی هست امیدوارم دوست داشته باشین.

@one_programmer

https://t.me/one_programmer

ادمین @EngMohsen

Linkedin:https://www.linkedin.com/in/mohsen-rajabi72
Download Telegram
@one_programmer

کش کردن اتوماتیک خروجی متد ها
حتما براتون پیش اومده که نیاز بوده خروجی متدی رو کش بکنید، وقتی اینکار رو کردید. داخل بیزینس متد تون کد کش کردن رو نوشتید. اینکار خیلی شاید درست نباشه که کش کردن کنار بیزینس متد نوشته باشه. و اینکه برای برای بقیه متد ها هم باید این کد رو کپی کنید.
راه حل اینکار استفاده از attribute ها هست. شما میتونید به روش aop خروجی هر متدی که نیاز دارید رو کش کنید. لینک repository که برای اینکار توسعه دادم رو میزارم. در این repo یک interceport تعریف شده که قبل از اجرا متد اجرا می شود. فقط متد هایی که به CacheMethod مزین شده باشند. کلید کش را با استفاده از اسم متد و ورودی ها ساخته و اتوماتیک کش میکند. مقادیر کش شده با استفاده از MessagePack ساخته شده و با lz4 فشرده شده است که حجم کش را بسیار کم میکند و خیلی سریع عمل میکند.
کد:
https://github.com/EngRajabi/Cache.Aspect

مقاله:
https://medium.com/@mohsen_rajabi/asp-core-automating-cache-with-aspect-programing-autofac-dynamic-proxy-8e6b84df44e4

@one_programmer
👏1
@one_programmer
سلام به دنیا Source Generator ها در Net. !!! 😊😊
قابلیت Source Generation تازه به .net اضافه شده. این قابلیت کمک میکنه توسعه دهنده ها در زمان Compile یکسری کد تولید کنن و در dll پروژه قرار بدن.
این مزیت اینکار چی هست
- میشه یه سری کد که در زمان اجرا تولید میشن رو به این شکل به زمان Compile آورد و پرفورمنس وحشتناکی رو تجربه کرد
- حذف refelection ها. میشه یه سری کار reflection که در زمان اجرا انجام میشن و کند هم هستند رو به زمان Compile اورد

ماکروسافت یکسری از فیچر های جدیدش رو با Source Generator نوشته. مثل system.text.json (التبه باید سنتکس خاصی ازش استفاده کنید)

حالا من یه پکیچ نوشتم با Source Generator برای کار با enum ها. حتما براتون پیش اومده که attribute داشته باشید بالا enum یا بخواهید tostring انجام بدید. این پکیچ همه اینکار ها رو زمان Compile براتون انجام میده و بازدهی بالا 20 برابر داره. اگر بخواهید attribute بالا enum ها رو واکشی کنید، این بازدهی به 480/000 هزار برابر میرسه. باور نکنید !!!
لینک پروژه و بنچمارک:

https://github.com/EngRajabi/Enum.Source.Generator

@one_programmer
🔥3
@one_programmer

چگونه یک پروژه Net. با ساختار حرفه ایی را در سال 2023 شروع کنیم

در این مقاله در مورد این صحبت میکنیم که چطوری در سال 2023 میتونیم یک پروژه ی حرفه ایی و ساختار یافته رو شروع کنیم.
چگونه میتونیم اصول Clean Code‌ رو در پروژه مون Automate کنیم ؟
چگونه میتونیم با ابزار ها کد های پیچیده رو تشخیص بدیم ؟
چگونه میتونیم در پروژه های بزرگ دست خط یکسان داشته باشیم ؟
ساختار استاندارد چیست ؟
ماکروسافت توی این زمینه چی میگه ؟
توسعه دهندگان ماکروسافت چی پیشنهاد میدن ؟
چه ابزار هایی برای Automate کردن ریویو کد و کمتر کردن باگ وجود داره ؟ آیا متریکی برای کد پیچیده وجود داره ؟

جواب همه سوال ها رو در مقاله زیر خلاصه کردم. امیدوارم مفید باشه.

مقاله: https://medium.com/@mohsen_rajabi/how-to-start-a-net-project-in-2023-96bdb615a98d

@one_programmer
👍9
@one_programmer

قسمت دوم مقاله "چگونه یک پروژه Net. با ساختار حرفه ایی را در سال 2024 شروع کنیم" منتشر شد.

How to Start an Advanced .NET Project in 2024 Part II

در ضمن قسمت قبل رو آپدیت کردم اگه جدیدا مطالعه نکردید نگاه بکنید
در قسمت قبل این موارد رو مطرح کردیم:
در این مقاله در مورد این صحبت میکنیم که چطوری در سال 2024 میتونیم یک پروژه ی حرفه ایی و ساختار یافته رو شروع کنیم.
چگونه میتونیم اصول Clean Code‌ رو در پروژه مون Automate کنیم ؟
چگونه میتونیم با ابزار ها کد های پیچیده رو تشخیص بدیم ؟
چگونه میتونیم در پروژه های بزرگ دست خط یکسان داشته باشیم ؟
ساختار استاندارد چیست ؟
ماکروسافت توی این زمینه چی میگه ؟
توسعه دهندگان ماکروسافت چی پیشنهاد میدن ؟
چه ابزار هایی برای Automate کردن ریویو کد و کمتر کردن باگ وجود داره ؟ آیا متریکی برای کد پیچیده وجود داره ؟
-------------
در قسمت دوم اومدیم پا رو فراتر گذاشتیم و دیدیم که چطوری میتونیم کاری بکنیم
- کد ها قبل اینکه کامیت بشن تمیز و مرتب بشن و indent ها درست باشه حتی فاصله ها و namespace ها مرتب باشه
- چطوری متن کامیت مسیج رو چک کنیم که طبق استاندارد باشه و سعی بکنیم توسعه دهندگان رو مجبور بکنیم متن استاندارد و معنی دارن وارد کنند

جواب همه سوال ها رو در مقاله زیر خلاصه کردم. امیدوارم مفید باشه.

مقاله: https://medium.com/@mohsen_rajabi/how-to-start-an-advanced-net-project-in-2024-part-ii-2736da39b301

@one_programmer
👍11