کانال توسعه دهندگان سی شارپ
154 subscribers
32 photos
5 videos
6 files
87 links
اینجا از تجربیاتم توی برنامه نویسی می نویسم🙌
یک عدد دات نت کار
گیت هاب من:
https://github.com/hassanrafatjoo
Download Telegram
فن برنامه نویسی نباشید متخصص باشید
محمد همتی
🎙 پادکست: فن برنامه نویسی نباشید متخصص باشید

مراحل تبدیل فن به متخصص برنامه نویسی

فن برنامه نویسی کیه؟


‼️ اشتباه بزرگی که اکثر افراد انجام میدن و فن برنامه نویسی میشن.
اکثر کسایی که سمت برنامه نویسی میان فن هستن که همین موضوع باعث میشه که ...

🔥🔥🔥🔥🔥🔥🔥🔥
🎙 #محمد_همتی
#️⃣ #پادکست_صوتی #برنامه_نویسی

⬇️ لینک دانلود پادکست بدون نیاز به فیلترشکن (سرعت بالا)

⭐️ @sourceiran
1
کانال توسعه دهندگان سی شارپ
محمد همتی – فن برنامه نویسی نباشید متخصص باشید
به شدت یکی از پادکست هایی بود که نیازه آدم گوش بده تا گاهی وقتا مسیر رو اشتباه طی نکنه
👏1
🌟اگر موقع آموزش دیدن خیلی حواستون پرت میشه و خصوصا سمت گوشی میرید

دو تا ابزار معرفی میکنم( هر چند خب میشه اونا رو غیرفعال یا حذف کرد ولی دیگه برمیگرده به این که ما چقدر برای خودمون ارزش قائل هستیم که غیرفعال یا حذفش نکنیم)


🟡برنامه Quality Time یه برنامه واقعا فوق العاده هست که علاوه بر این که به شما نشون میده روزانه چند ساعت از گوشی و از برنامه های مختلف استفاده کردید میتونید بیاید و زمان تعیین کنید که در اون زمان دست به گوشی نزنید و در این حالت در طی اون مدت شما عملا نمیتونید ازش استفاده کنید( ولی زمانش قابل توقف هست)


ابزار دوم یه افزونه برای گوگل کروم هست که اسمش 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
کانال توسعه دهندگان سی شارپ
🌟اگر موقع آموزش دیدن خیلی حواستون پرت میشه و خصوصا سمت گوشی میرید دو تا ابزار معرفی میکنم( هر چند خب میشه اونا رو غیرفعال یا حذف کرد ولی دیگه برمیگرده به این که ما چقدر برای خودمون ارزش قائل هستیم که غیرفعال یا حذفش نکنیم) 🟡برنامه Quality Time یه برنامه…
این دو تا ابزار به شدت روی تمرکزم تاثیر گذاشتن.هر چقدر زمان بیشتری برای برنامه اولی تعیین کنید خودتون هم راحت ترید. به صورت پیشفرض خودش 25 دقیقه در نظر میگیره ولی شما میتونید هر زمانی رو مشخص کنید حتی 24 ساعت😂
اگر هم میرید توی یوتیوب و ویدیوهای پیشنهادی،ویدیوهای کوتاه،ویدیوهای صفحه اصلی یوتیوب تون و حواستون پرت میشه میتونید از این افزونه استفاده کنید:
https://chromewebstore.google.com/detail/unhook-remove-youtube-rec/khncfooichmfjbepaaaebmommgaepoid

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

زمان اجرای پروژه تیک گزینه

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 وجود داره باید کد نوشته شده به زبان ماشین ترجمه شه که یه مرحله اضافه تر هست و این مرحله اضافه تر باعث میشه تا سرعت در بار اول کندتر و در مراحل بعد سریع تر باشه

همچنین در 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-توی محل کار یا موقع بحث کردن در یه گروه بر اساس سند و منبع حرف بزنیم و از نظرهای تعصبی طور خودداری کنیم. آفتی که خود من هم دچارش بودم و دارم بهتر میکنم
این که فلان زبان خوبه یا نه بستگی داره که در چه کاری بخوای استفاده کنی. همه این زبان ها ابزار هستن و ای چه بسا تو مخالف یه زبان دیگه هستی و همون میتونه کارت رو راه بندازه اما به خاطر یک طرفه گرفتن قضیه از یادگیری باز میمونی
۳-نگه داشتن خشم و عصبانیت

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

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

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

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

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

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

حواسمون خیلییییییی به این مورد باشه