کانال توسعه دهندگان سی شارپ
154 subscribers
32 photos
5 videos
6 files
87 links
اینجا از تجربیاتم توی برنامه نویسی می نویسم🙌
یک عدد دات نت کار
گیت هاب من:
https://github.com/hassanrafatjoo
Download Telegram
منتظر باشید به زودی AOT یا Ahead of Time رو در کانال توضیح میدم که امکان جالب و بسیار جذابی هست

گاهی وقتا آدم نکته ای های ریزی رو یاد بگیره خیلی براش کاربردیه

همین امروز این دو نکته رو موقع باز کردن پروژه جدید یاد گرفتم😁
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
قبل از این که شروع کنم به توضیح دادن AOT باید یه بحث دیگه رو توضیح بدم

همونطوری که میدونید در سی شارپ زمانی که کدهایی رو می نویسیم تبدیل یک ابزار به اسم CLR یا Common Language Runtime به کدهای قابل فهم برای ماشین تبدیل میشه

در واقع یک واسط این جا وجود داره که کدها رو باید به باینری تبدیل کنه

حالا یک ابزار دیگه هست که با مثال معرفی میکنم

فرض کن یه فیلم (برنامه دات‌نت) داری که با یه زبان خاص (IL یا MSIL) ساخته شده.
حالا:

CLR مثل یه سیستم پخش‌کننده (Player) هست: مسئول اجرا، مدیریت حافظه، امنیت، نخ‌ها و ...

JIT مثل قسمتی از Player هست که فیلم رو لحظه‌ای ترجمه می‌کنه به زبان قابل فهم پردازنده (ماشین).



مفهوم JIT جدید بود نه؟


حالا توی دات نت اینا وظایف مشخصی دارن

ابزار CLR کارش : اجرای برنامه،مدیریت حافظه،مدیریت خطاها،مدیریت Thread ها و...

اما JIT کارش یه چیزه و اونم تبدیل کدها به زمان ماشین هست

یا بهتر بشه گفت JIT بخشی از CLR هست که وظیفه تبدیل رو به عهده داره
اما یه نکته ای این وسط وجود داره

زمانی که ما داریم یه پروژه رو بیلد میکنیم طبق چیزی که در CLR وجود داره باید کد نوشته شده به زبان ماشین ترجمه شه که یه مرحله اضافه تر هست و این مرحله اضافه تر باعث میشه تا سرعت در بار اول کندتر و در مراحل بعد سریع تر باشه

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

اما این موضوع در AOT یا Ahead of Time خیلی کمتر هستش یا با سرعت بسیار زیادی انجام میشه
کلمه AOT مخفف Ahead of Time هست یا کامپایل شدن پیش از اجرا

ینی قبل از این که برنامه شما بخواد اجرا شه کامپایل انجام میشه که این موضوع باعث افزایش سرعت اجرا و عملکرد بهینه میشه

در این حالت کدی که ما نوشتیم مستقیما تبدیل به کد قابل فهم برای سیستم و باینری میشه

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

از دیگر مزیت های استفاده از AOT اینه که نیاز به نصب دات نت روی سیستم مقصد وجود داره و به صورت کاملا بومی یا native اجرا صورت میگیره

اما از معایبش هم اینه که حجم و خروجی برنامه ما خیلی بیشتر میشه

از AOT میتونیم توی پروژه های کنسولی، Blazor Wasm یا Blazor Web Assembly استفاده کنیم
چطوری میتونیم این قابلیت رو به پروژه اضافه کنیم؟

زمان ایجاد پروژه گزینه ای برای فعالسازی AOT وجود داره اما اگر پروژه رو از قبل ساختید میتونید روی اسم پروژه در Solution Explorer کلیک راست کنید و روی Edit Project File کلیک کنید

و توی تگ Property Group این تگ رو قرار بدید:

<PublishAot>true</PublishAot>
توی سی شارپ اگر آدم میخواد به جایی برسه صبر زیادی لازمه 😉
چون این مسیر نیازه شما خوب بلد باشی مباحث پایه رو تا توی مباحث پیچیده تر راحت بتونی کارتو انجام بدی
Please open Telegram to view this post
VIEW IN TELEGRAM
دستورات پیش پردازنده چی هستن ؟

توی سی شارپ احتمالا چیزهایی مثل #region یا #endregion رو دیدید ولی براتون سوال شده این ها چی هستن؟

برای خوانایی بهتر کد میایم از این ها استفاده میکنیم یا استفاده دیگه اون دسته بندی کردن کدها هست


دستورات پیش پردازنده مثل این دو تا تاثیری در اجرا ندارن

مثال:

c#
#region محاسبه جمع دو عدد
int a = 5;
int b = 10;
int sum = a + b;
Console.WriteLine(sum);
#endregion
👍1
قبل از این توضیح این موارد نیازه چند تا موضوع بگم که خیلی زیاد دیدم و همه ما باید حواسمون باشه
قبلا راجع به اخلاق حرفه ای صحبت کردم که با جستجوی هشتگ #اخلاق_حرفه‌ای
میتونید دسترسی داشته باشید اما چند نکته دیگه هم نیاز بود که بگم:

1-اول از هر چیزی جستجو کردن مهارتی هست که اتفاقا به نظرم پیش نیاز شروع هر زبان برنامه نویسی هست

قبل از این که سوالی بپرسیم در یه گروه میتونیم همون رو جستجو کنیم یا این که مستقیم میتونیم از هوش مصنوعی بپرسیم تا به جوابی که مد نظرمون هست برسیم اینجوری مهارت جستجو کردن هم قوی تر میشه
2-توی محل کار یا موقع بحث کردن در یه گروه بر اساس سند و منبع حرف بزنیم و از نظرهای تعصبی طور خودداری کنیم. آفتی که خود من هم دچارش بودم و دارم بهتر میکنم
این که فلان زبان خوبه یا نه بستگی داره که در چه کاری بخوای استفاده کنی. همه این زبان ها ابزار هستن و ای چه بسا تو مخالف یه زبان دیگه هستی و همون میتونه کارت رو راه بندازه اما به خاطر یک طرفه گرفتن قضیه از یادگیری باز میمونی
۳-نگه داشتن خشم و عصبانیت

این خیلی مهمه. اگر یه نفر حرفی زد که اشتباه بود نیازی نیست با ادبیات تند باهاش حرف زده بشه این رو من خیلی دیدم طرف به زعم خودش سنیور هست ولی ذره ای اخلاق نداره انگار که ارث خانوادگیشون رو یکی خورده ازش سوال پرسیده میشه یا نظر مخالف راجع بهش داده میشه سریع گارد میگیره و میخواد همه رو به یک چشم بیینه

شنیدن نظر مخالف و بعد صحبت کردن یه مهارت واقعااااا ضروریه

به شخصه اصلا نمیتونم کنار چنین آدمی همکار باشم
۴- حتی اگر از کسی بیشتر بلدیم تحقیرش نکنیم

این واقعا نامردی هست که تو بیای چیزی که بلدی رو فرو کنی توی چشم بقیه. رفتار به شدت بدیه
تو خودت هم یه روزی در سطح پایین بودی حالا خودت رو خیلی بالا می بینی؟

گاهی وقتا یه جونیور چیزی رو متوجه میشه که یه سنیور هم تا حالا اونجوری به اون قضیه نگاه نکرده.یه راهکار خیلی ساده پیدا میکنه نیروی جونیور که پروژه خیلی از نظر عملکرد و سرعت بهتر میشه و نیازی به استفاده از ساختارهای عجیب غریب نیست
۵-حساب کار از دیگر مسائل تفکیک بشه

هر چیزی که اعصاب آدمو خورده میکنه دلیل نمیشه دق دلی رو سر بقیه خالی کرد. اینم زیاد دیدم طرف یه چیزی اون رو بهم ریخته حالا سر بقیه توی واقعیت یا توی گروه خالی میکنه خب این ببخشید عقده ای بودنه دیگه.چه معنی داره بری سر کار یا توی یه صحبت کردن تو حتما باید نیش و کنایه بزنی به طرف؟

حواسمون خیلییییییی به این مورد باشه
۶-حرمت و ادب رو نگه داریم

خارج از بحث کاری شما هر جور دوست داری کار انجام بده

اما توی بحث کار نگه داشتن حرمت طرف مقابل خیلی مهمه

احترام،احترام میاره و باعث اعتماد سازی میشه در طولانی مدت.

ساختن اعتماد خیلی زمان میبره اما خراب کردنش فقط چند ثانیه عصبانیت و خشمگین شدن بی دلیل هست که تموم اعتمادسازی و تصورات رو راجع به یه آدم از بین میبره
و اما مطالب آموزشی امروز
2
این ویدیو رو ببینید به زودی هم مطالب رو جمع بندی میکنم میزارم
WordPress is very bad
WordPress is very chert
WordPress is شت
👍2🙏1