دو تا ابزار معرفی میکنم( هر چند خب میشه اونا رو غیرفعال یا حذف کرد ولی دیگه برمیگرده به این که ما چقدر برای خودمون ارزش قائل هستیم که غیرفعال یا حذفش نکنیم)
ابزار دوم یه افزونه برای گوگل کروم هست که اسمش BlockSite-Site Blocker &Focous Mode هست و کارش اینه شما میتونید مشخص کنید که بهتون اجازه نده وارد یه سری سایت ها بشید
و یا برعکس اون فقط بتونید از یک سری سایت های خاص در حالت Focous Mode استفاده کنید
و همچنین این که یه سری از کلمات که میخواید جستجو کنید اجازه جستجوی اون کلمه رو بهتون نده
همچنین میتونید یک رمز برای دسترسی به سایت ها تعیین کنید
میتونید از طریق این لینک این افزونه روی گوگل کروم نصب کنید:
https://chromewebstore.google.com/detail/block-site-site-blocker-f/dpfofggmkhdbfcciajfdphofclabnogo
Please open Telegram to view this post
VIEW IN TELEGRAM
Google
Block Site: Site Blocker & Focus Mode - Chrome Web Store
Block sites, protect your time with site blocker! Website blocker and password protection help you stay focused.
کانال توسعه دهندگان سی شارپ
این دو تا ابزار به شدت روی تمرکزم تاثیر گذاشتن.هر چقدر زمان بیشتری برای برنامه اولی تعیین کنید خودتون هم راحت ترید. به صورت پیشفرض خودش 25 دقیقه در نظر میگیره ولی شما میتونید هر زمانی رو مشخص کنید حتی 24 ساعت😂
اگر هم میرید توی یوتیوب و ویدیوهای پیشنهادی،ویدیوهای کوتاه،ویدیوهای صفحه اصلی یوتیوب تون و حواستون پرت میشه میتونید از این افزونه استفاده کنید:
https://chromewebstore.google.com/detail/unhook-remove-youtube-rec/khncfooichmfjbepaaaebmommgaepoid
قابلیت های متعددی داره که احتمالا خیلی به کارتون بیاد
https://chromewebstore.google.com/detail/unhook-remove-youtube-rec/khncfooichmfjbepaaaebmommgaepoid
قابلیت های متعددی داره که احتمالا خیلی به کارتون بیاد
Google
Unhook - Remove YouTube Recommended & Shorts - Chrome Web Store
Hide YouTube related videos, shorts, comments, suggestions wall, homepage recommendations, trending, and other distractions.
اگر توی سی شارپ میخواید از ساختار قدیمی دات نت فریم ورک داخل نسخه های بالاتر دات نت استفاده کنید
زمان اجرای پروژه تیک گزینه
Do Not Use Top Level Statement
رو فعال کنید
قابلیت Top Level Statement قابلیتی هست که بهتون کمک میکنه تا نیازی نباشه که توی پروژه بخواید کلاس تعریف کنید یا از این دست کارها انجام بدید( برای فایل program.cs معمولا که قسمت اجرایی برنامه هست )
البته به این معنی نیست که شما نمیتونید کلاس های دیگری اضافه کنید
یا اگر بخوام بهتر بگم اگر شما توجه کرده باشی دیگه از دات نت 5 به بعد تا به الان که دات نت 9 هستیم دیگه خبری از using ها توی program.cs و نام کلاس نیستیم
دلیلش همین قابلیت هست که ما میتونیم توی پروژه های خودمون این کار رو انجام بدیم یا این که از ساختار سنتی استفاده کنیم
#نکته
زمان اجرای پروژه تیک گزینه
Do Not Use Top Level Statement
رو فعال کنید
قابلیت Top Level Statement قابلیتی هست که بهتون کمک میکنه تا نیازی نباشه که توی پروژه بخواید کلاس تعریف کنید یا از این دست کارها انجام بدید( برای فایل program.cs معمولا که قسمت اجرایی برنامه هست )
البته به این معنی نیست که شما نمیتونید کلاس های دیگری اضافه کنید
یا اگر بخوام بهتر بگم اگر شما توجه کرده باشی دیگه از دات نت 5 به بعد تا به الان که دات نت 9 هستیم دیگه خبری از using ها توی program.cs و نام کلاس نیستیم
دلیلش همین قابلیت هست که ما میتونیم توی پروژه های خودمون این کار رو انجام بدیم یا این که از ساختار سنتی استفاده کنیم
#نکته
منتظر باشید به زودی 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 یا Common Language Runtime به کدهای قابل فهم برای ماشین تبدیل میشه
در واقع یک واسط این جا وجود داره که کدها رو باید به باینری تبدیل کنه
حالا یک ابزار دیگه هست که با مثال معرفی میکنم
فرض کن یه فیلم (برنامه داتنت) داری که با یه زبان خاص (IL یا MSIL) ساخته شده.
حالا:
CLR مثل یه سیستم پخشکننده (Player) هست: مسئول اجرا، مدیریت حافظه، امنیت، نخها و ...
JIT مثل قسمتی از Player هست که فیلم رو لحظهای ترجمه میکنه به زبان قابل فهم پردازنده (ماشین).
مفهوم JIT جدید بود نه؟
حالا توی دات نت اینا وظایف مشخصی دارن
ابزار CLR کارش : اجرای برنامه،مدیریت حافظه،مدیریت خطاها،مدیریت Thread ها و...
اما JIT کارش یه چیزه و اونم تبدیل کدها به زمان ماشین هست
یا بهتر بشه گفت JIT بخشی از CLR هست که وظیفه تبدیل رو به عهده داره
اما یه نکته ای این وسط وجود داره
زمانی که ما داریم یه پروژه رو بیلد میکنیم طبق چیزی که در CLR وجود داره باید کد نوشته شده به زبان ماشین ترجمه شه که یه مرحله اضافه تر هست و این مرحله اضافه تر باعث میشه تا سرعت در بار اول کندتر و در مراحل بعد سریع تر باشه
همچنین در CLR کد در زمانی که ما روی استارت پروژه کلیک میکنیم تا پروژه رو بررسی کنیم دقیقا اونجا تبدیل اتفاق میوفته که اگر توجه کرده باشید چند ثانیه ای تاخیر داره توی اجرا
اما این موضوع در AOT یا Ahead of Time خیلی کمتر هستش یا با سرعت بسیار زیادی انجام میشه
زمانی که ما داریم یه پروژه رو بیلد میکنیم طبق چیزی که در CLR وجود داره باید کد نوشته شده به زبان ماشین ترجمه شه که یه مرحله اضافه تر هست و این مرحله اضافه تر باعث میشه تا سرعت در بار اول کندتر و در مراحل بعد سریع تر باشه
همچنین در CLR کد در زمانی که ما روی استارت پروژه کلیک میکنیم تا پروژه رو بررسی کنیم دقیقا اونجا تبدیل اتفاق میوفته که اگر توجه کرده باشید چند ثانیه ای تاخیر داره توی اجرا
اما این موضوع در AOT یا Ahead of Time خیلی کمتر هستش یا با سرعت بسیار زیادی انجام میشه
کلمه AOT مخفف Ahead of Time هست یا کامپایل شدن پیش از اجرا
ینی قبل از این که برنامه شما بخواد اجرا شه کامپایل انجام میشه که این موضوع باعث افزایش سرعت اجرا و عملکرد بهینه میشه
در این حالت کدی که ما نوشتیم مستقیما تبدیل به کد قابل فهم برای سیستم و باینری میشه
همچنین در AOT میتونیم مشخص کنیم که روی چه سیستم عاملی قصد داریم خروجی بگیریم و بر اساس اون میتونیم روی سیستم های مورد نظر برنامه رو اجرا کنیم
از دیگر مزیت های استفاده از AOT اینه که نیاز به نصب دات نت روی سیستم مقصد وجود داره و به صورت کاملا بومی یا native اجرا صورت میگیره
اما از معایبش هم اینه که حجم و خروجی برنامه ما خیلی بیشتر میشه
از AOT میتونیم توی پروژه های کنسولی، Blazor Wasm یا Blazor Web Assembly استفاده کنیم
ینی قبل از این که برنامه شما بخواد اجرا شه کامپایل انجام میشه که این موضوع باعث افزایش سرعت اجرا و عملکرد بهینه میشه
در این حالت کدی که ما نوشتیم مستقیما تبدیل به کد قابل فهم برای سیستم و باینری میشه
همچنین در AOT میتونیم مشخص کنیم که روی چه سیستم عاملی قصد داریم خروجی بگیریم و بر اساس اون میتونیم روی سیستم های مورد نظر برنامه رو اجرا کنیم
از دیگر مزیت های استفاده از AOT اینه که نیاز به نصب دات نت روی سیستم مقصد وجود داره و به صورت کاملا بومی یا native اجرا صورت میگیره
اما از معایبش هم اینه که حجم و خروجی برنامه ما خیلی بیشتر میشه
از AOT میتونیم توی پروژه های کنسولی، Blazor Wasm یا Blazor Web Assembly استفاده کنیم
چطوری میتونیم این قابلیت رو به پروژه اضافه کنیم؟
زمان ایجاد پروژه گزینه ای برای فعالسازی AOT وجود داره اما اگر پروژه رو از قبل ساختید میتونید روی اسم پروژه در Solution Explorer کلیک راست کنید و روی Edit Project File کلیک کنید
و توی تگ Property Group این تگ رو قرار بدید:
زمان ایجاد پروژه گزینه ای برای فعالسازی AOT وجود داره اما اگر پروژه رو از قبل ساختید میتونید روی اسم پروژه در Solution Explorer کلیک راست کنید و روی Edit Project File کلیک کنید
و توی تگ Property Group این تگ رو قرار بدید:
<PublishAot>true</PublishAot>
توی سی شارپ اگر آدم میخواد به جایی برسه صبر زیادی لازمه 😉
چون این مسیر نیازه شما خوب بلد باشی مباحث پایه رو تا توی مباحث پیچیده تر راحت بتونی کارتو انجام بدی
چون این مسیر نیازه شما خوب بلد باشی مباحث پایه رو تا توی مباحث پیچیده تر راحت بتونی کارتو انجام بدی
Please open Telegram to view this post
VIEW IN TELEGRAM
دستورات پیش پردازنده چی هستن ؟
توی سی شارپ احتمالا چیزهایی مثل #region یا #endregion رو دیدید ولی براتون سوال شده این ها چی هستن؟
برای خوانایی بهتر کد میایم از این ها استفاده میکنیم یا استفاده دیگه اون دسته بندی کردن کدها هست
دستورات پیش پردازنده مثل این دو تا تاثیری در اجرا ندارن
مثال:
توی سی شارپ احتمالا چیزهایی مثل #region یا #endregion رو دیدید ولی براتون سوال شده این ها چی هستن؟
برای خوانایی بهتر کد میایم از این ها استفاده میکنیم یا استفاده دیگه اون دسته بندی کردن کدها هست
دستورات پیش پردازنده مثل این دو تا تاثیری در اجرا ندارن
مثال:
c#
#region محاسبه جمع دو عدد
int a = 5;
int b = 10;
int sum = a + b;
Console.WriteLine(sum);
#endregion
👍1
کانال توسعه دهندگان سی شارپ
دستورات پیش پردازنده چی هستن ؟ توی سی شارپ احتمالا چیزهایی مثل #region یا #endregion رو دیدید ولی براتون سوال شده این ها چی هستن؟ برای خوانایی بهتر کد میایم از این ها استفاده میکنیم یا استفاده دیگه اون دسته بندی کردن کدها هست دستورات پیش پردازنده مثل این…
به زودی چند تا دیگه هم معرفی میکنم که تاثیر کاملا مستقیم در روند اجرای برنامه دارند
❤1
قبل از این توضیح این موارد نیازه چند تا موضوع بگم که خیلی زیاد دیدم و همه ما باید حواسمون باشه
قبلا راجع به اخلاق حرفه ای صحبت کردم که با جستجوی هشتگ #اخلاق_حرفهای
میتونید دسترسی داشته باشید اما چند نکته دیگه هم نیاز بود که بگم:
1-اول از هر چیزی جستجو کردن مهارتی هست که اتفاقا به نظرم پیش نیاز شروع هر زبان برنامه نویسی هست
قبل از این که سوالی بپرسیم در یه گروه میتونیم همون رو جستجو کنیم یا این که مستقیم میتونیم از هوش مصنوعی بپرسیم تا به جوابی که مد نظرمون هست برسیم اینجوری مهارت جستجو کردن هم قوی تر میشه
میتونید دسترسی داشته باشید اما چند نکته دیگه هم نیاز بود که بگم:
1-اول از هر چیزی جستجو کردن مهارتی هست که اتفاقا به نظرم پیش نیاز شروع هر زبان برنامه نویسی هست
قبل از این که سوالی بپرسیم در یه گروه میتونیم همون رو جستجو کنیم یا این که مستقیم میتونیم از هوش مصنوعی بپرسیم تا به جوابی که مد نظرمون هست برسیم اینجوری مهارت جستجو کردن هم قوی تر میشه
2-توی محل کار یا موقع بحث کردن در یه گروه بر اساس سند و منبع حرف بزنیم و از نظرهای تعصبی طور خودداری کنیم. آفتی که خود من هم دچارش بودم و دارم بهتر میکنم
این که فلان زبان خوبه یا نه بستگی داره که در چه کاری بخوای استفاده کنی. همه این زبان ها ابزار هستن و ای چه بسا تو مخالف یه زبان دیگه هستی و همون میتونه کارت رو راه بندازه اما به خاطر یک طرفه گرفتن قضیه از یادگیری باز میمونی
این که فلان زبان خوبه یا نه بستگی داره که در چه کاری بخوای استفاده کنی. همه این زبان ها ابزار هستن و ای چه بسا تو مخالف یه زبان دیگه هستی و همون میتونه کارت رو راه بندازه اما به خاطر یک طرفه گرفتن قضیه از یادگیری باز میمونی
۳-نگه داشتن خشم و عصبانیت
این خیلی مهمه. اگر یه نفر حرفی زد که اشتباه بود نیازی نیست با ادبیات تند باهاش حرف زده بشه این رو من خیلی دیدم طرف به زعم خودش سنیور هست ولی ذره ای اخلاق نداره انگار که ارث خانوادگیشون رو یکی خورده ازش سوال پرسیده میشه یا نظر مخالف راجع بهش داده میشه سریع گارد میگیره و میخواد همه رو به یک چشم بیینه
شنیدن نظر مخالف و بعد صحبت کردن یه مهارت واقعااااا ضروریه
به شخصه اصلا نمیتونم کنار چنین آدمی همکار باشم
این خیلی مهمه. اگر یه نفر حرفی زد که اشتباه بود نیازی نیست با ادبیات تند باهاش حرف زده بشه این رو من خیلی دیدم طرف به زعم خودش سنیور هست ولی ذره ای اخلاق نداره انگار که ارث خانوادگیشون رو یکی خورده ازش سوال پرسیده میشه یا نظر مخالف راجع بهش داده میشه سریع گارد میگیره و میخواد همه رو به یک چشم بیینه
شنیدن نظر مخالف و بعد صحبت کردن یه مهارت واقعااااا ضروریه
به شخصه اصلا نمیتونم کنار چنین آدمی همکار باشم
۴- حتی اگر از کسی بیشتر بلدیم تحقیرش نکنیم
این واقعا نامردی هست که تو بیای چیزی که بلدی رو فرو کنی توی چشم بقیه. رفتار به شدت بدیه
تو خودت هم یه روزی در سطح پایین بودی حالا خودت رو خیلی بالا می بینی؟
گاهی وقتا یه جونیور چیزی رو متوجه میشه که یه سنیور هم تا حالا اونجوری به اون قضیه نگاه نکرده.یه راهکار خیلی ساده پیدا میکنه نیروی جونیور که پروژه خیلی از نظر عملکرد و سرعت بهتر میشه و نیازی به استفاده از ساختارهای عجیب غریب نیست
این واقعا نامردی هست که تو بیای چیزی که بلدی رو فرو کنی توی چشم بقیه. رفتار به شدت بدیه
تو خودت هم یه روزی در سطح پایین بودی حالا خودت رو خیلی بالا می بینی؟
گاهی وقتا یه جونیور چیزی رو متوجه میشه که یه سنیور هم تا حالا اونجوری به اون قضیه نگاه نکرده.یه راهکار خیلی ساده پیدا میکنه نیروی جونیور که پروژه خیلی از نظر عملکرد و سرعت بهتر میشه و نیازی به استفاده از ساختارهای عجیب غریب نیست
۵-حساب کار از دیگر مسائل تفکیک بشه
هر چیزی که اعصاب آدمو خورده میکنه دلیل نمیشه دق دلی رو سر بقیه خالی کرد. اینم زیاد دیدم طرف یه چیزی اون رو بهم ریخته حالا سر بقیه توی واقعیت یا توی گروه خالی میکنه خب این ببخشید عقده ای بودنه دیگه.چه معنی داره بری سر کار یا توی یه صحبت کردن تو حتما باید نیش و کنایه بزنی به طرف؟
حواسمون خیلییییییی به این مورد باشه
هر چیزی که اعصاب آدمو خورده میکنه دلیل نمیشه دق دلی رو سر بقیه خالی کرد. اینم زیاد دیدم طرف یه چیزی اون رو بهم ریخته حالا سر بقیه توی واقعیت یا توی گروه خالی میکنه خب این ببخشید عقده ای بودنه دیگه.چه معنی داره بری سر کار یا توی یه صحبت کردن تو حتما باید نیش و کنایه بزنی به طرف؟
حواسمون خیلییییییی به این مورد باشه
۶-حرمت و ادب رو نگه داریم
خارج از بحث کاری شما هر جور دوست داری کار انجام بده
اما توی بحث کار نگه داشتن حرمت طرف مقابل خیلی مهمه
احترام،احترام میاره و باعث اعتماد سازی میشه در طولانی مدت.
ساختن اعتماد خیلی زمان میبره اما خراب کردنش فقط چند ثانیه عصبانیت و خشمگین شدن بی دلیل هست که تموم اعتمادسازی و تصورات رو راجع به یه آدم از بین میبره
خارج از بحث کاری شما هر جور دوست داری کار انجام بده
اما توی بحث کار نگه داشتن حرمت طرف مقابل خیلی مهمه
احترام،احترام میاره و باعث اعتماد سازی میشه در طولانی مدت.
ساختن اعتماد خیلی زمان میبره اما خراب کردنش فقط چند ثانیه عصبانیت و خشمگین شدن بی دلیل هست که تموم اعتمادسازی و تصورات رو راجع به یه آدم از بین میبره