روند رو به رشد علم دادهها و بهکارگیری آن در صنایع مختلف باعث شده تا شرکتها به شکل جدیتری روی مقوله استخراج و پردازشها دادهها متمرکز شوند. با اینحال، یکی از موضوعات مهمی که باید در این زمینه به آن دقت کنید، زبان برنامهنویسی هدف است. در این مقاله با برترین زبانهای برنامهنویسی مورد استفاده در علم دادهها آشنا میشویم.
دادهها در یک دهه گذشته ارزش بسیار زیادی پیدا کردهاند. هر شرکت بزرگی دادههای ارزشمند زیادی دارد که برای تحلیل آنها نیازمند استخدام یک دانشمند داده خوب و خبره است تا بتواند به مزیتهای رقابتی قابل توجهی دست پیدا کند. با توجه به اینکه دنیای فناوری اطلاعات دستخوش تغییرات زیادی شده که رکن اصلی تمامی آنها دادهها است، از اینرو، تفاضا برای دانشمندان داده در حال افزایش است.
اگر میخواهید دانشمند داده شوید، اولین نکتهای که باید به آن دقت کنید، یادگیری زبانهای برنامهنویسی کارآمد در این زمینه است. به همین دلیل اجازه دهید در ادامه با محبوبترین زبانها که قابلیتهای خوبی در ارتباط با علم دادهها (Data Science) ارائه میکنند، آشنا شویم.
1. پایتون
امروزه پایتون پرکاربردترین زبان برنامهنویسی است و تقریبا تمامی سایتهای بزرگ مثل PYPL و TIOBE به این نکته اذعان دارند. پایتون یکی از قدرتمندترین و منعطفترین زبانهای موجود است و در علم داده نیز بسیار مورد استفاده قرار میگیرد. دلیل اصلی آن، ترکیب نحوی آسان و زیبا، همراه با مجموعه بزرگی از کتابخانههای شخص ثالث است. یکی از دلایل مهم در این زمینه یکپارچگی خوب پایتون با ابزار Jupyter است که به شکل گستردهای در علم دادهها استفاده میشود. با نوتبوکهای Jupyter، میتوانید به سرعت نتایج کدهایی که تایپ میکنید را مشاهده کنید، دادهها را مصورسازی کنید و اسناد کد خود را از طریق بلوکهای علامتگذاریشده ایجاد کنید. لازم به توضیح است که ژوپیتر قابلیتهایی فراتر از کار با پایتون دارد، اما رایجترین ترکیب در این زمینه پایتون و ژوپیتر است.
2. آر
R یک زبان برنامهنویسی منبع باز است که برای اولین بار در سال 1993 معرفی شد و برای محاسبات آماری، تجزیه و تحلیل دادهها و یادگیری ماشین استفاده میشود. طبق مطالعاتی که سایت Stack Overflow انجام داده، محبوبیت R در طول چند سال گذشته افزایش یافته است. اگرچه R به طور گسترده توسط محققان استفاده میشود، اما امروزه توسط شرکتهای بزرگ فناوری مانند گوگل، فیسبوک و توییتر در ارتباط با تجزیه و تحلیل دادهها و آمار استفاده میشود.
R، درست مانند پایتون، یک زبان تفسیر شده است، بنابراین میتوانید کد خود را بدون نیاز به کامپایلر اجرا کنید. در عین حال، R چندسکویی است و بنابراین لازم نیست نگران سیستم عاملی باشید که هماهنگ با آن باشد.
R به اندازهای محبوب است که ویرایشگرها و محیطهای توسعه یکپارچه زیادی برای آن طراحی شدهاند، اما برای سالها متمادی است که RStudio محبوبترین IDE برای توسعه R است.
شما میتوانید از آر برای کارهایی فراتر از محاسبات آماری استفاده کنید. با استفاده از R، به مجموعه عظیمی از کتابخانهها دسترسی دارید که به شما امکان میدهند برنامههای کاربردی متنوعی بسازید. به عنوان مثال، با بسته Shiny، میتوانید اپلیکیشنهای وب مبتنی بر اصول زیباییشناسی را با استفاده از آر توسعه دهید.
3. جولیا
جولیا گلچینی از بهترین قابلیتهای کاربردی زبانهایی مثل Python، Ruby، Lisp و R را در قالب یک زبان برنامهنویسی تقریبا جدید ارائه میکند. جولیا سرعت C را همراه با نمادهای ریاضی کاربردی Matlab در اختیار برنامهنویسان قرار میدهد.
میتوانیم به جولیا به عنوان تلاش بلندپروازانه برای ایجاد یک زبان به اندازه خوب برای برنامهنویسی همهمنظوره و در عین حال شگفتانگیز در ارتباط با رشتههای خاص علوم رایانه، مانند یادگیری ماشین، دادهکاوی، محاسبات توزیعشده و موازی اشاره کنیم.
یکی از مزایای اصلی جولیا سرعت آن است که با زبانهایی مانند C، Rust، Lua و Go قابل مقایسه است. این به این دلیل است که کدهای این زبان توسط کامپایلر JIT کامپایل میشوند. در چند سال گذشته، جولیا به طور چشمگیری مورد توجه توسعهدهندگان قرار گرفته است.
از مهمترین دلایل محبوبیت جولیا در علم داده به موارد زیر باید اشاره کرد:
یادگیری این زبان برای ریاضیدانان ساده است. از ترکیب نحوی مشابه فرمولهای ریاضی که توسط غیر برنامهنویسان استفاده میشود پشتیبانی میکند.
از مدیریت خودکار حافظه با کنترل دستی روی فناوری Garbage collection استفاده میکند.
بهینه شده برای یادگیری ماشین و مباحث آماری است.
Dynamic typing است، به طوری که تصور میکنید در حال کار با یک زبان برنامهنویسی هستید.
چندین کتابخانه برای تعامل با دادهها (DataFrames.jl، JuliaGraphs، و غیره) در اختیار برنامهنویسان قرار میدهد.
جامعه فعالی از توسعهدهندگان از جولیا پشتیبانی میکنند.
اگر میخواهید زبانی با پشتیبانی از علم داده، سهولت استفاده از پایتون و سرعت C داشته باشید، جولیا زبان انتخابی شما است.
4. اسکالا
اسکالا (Scala) یک زبان رنامه نویسی سطح بالا است که برای اولین بار در سال 2004 معرفی شد و در JVM (ماشین مجازی جاوا) یا با جاوا اسکریپت در مرورگرها اجرا میشود.
اسکالا برای بهبود برخی از جنبههایی که برنامهنویسان جاوا از آنها خسته شده یا آنها را عاملی محدودکننده در برنامهنویسی میدانند پدید آمد. در میان این پیشرفتها، ما ادغام برنامهنویسی تابعی را به غیر از پارادایم شیگرایی در این زبان مشاهده میکنیم. این یک نکته مثبت است که اسکالا در مقایسه با پایتون یا حتی خود جاوا زبان سریعتری است.
بسیاری از دانشمندان داده اسکالا را در مجموعه ابزار خود گنجاندهاند، زیرا هنگام صحبت در مورد تجزیه و تحلیل مجموعههای داده بزرگ، بسیار ارزشمند است.
طبق نظرسنجی سال 2021 سایت Stack Overflow ، اسکالا هفتمین زبان پردرآمد در جهان است، اما مهم است به این نکته اشاره کنیم که اسکالا در مقایسه با زبانهای دیگر هنوز در این حوزه مورد توجه شرکتهای بزرگ قرار ندارد.
از آنجایی که Scala بر روی JVM اجرا میشود، به تعداد زیادی کتابخانه موجود و برخی بستهها در ارتباط با کار روی کلان دادهها، ریاضیات، پایگاههای داده و به طور کلی علوم کامپیوتر دسترسی دارد. اگر در گذشته با زبان برنامهنویسی جاوا کار میکردید، Scala میتواند جایگزین مناسبی در این زمینه و برای کار با علم دادهها باشد.
5. جاوا (Java)
جاوا یکی از پرکاربردترین و محبوبترین زبانهای برنامهنویسی چند دهه اخیر به شمار میرود. یک زبان برنامهنویسی همه منظوره است که تقریباً در هر موقعیت قابل تصوری قابل استفاده است.
در نتیجه علم داده نیز از این قاعده مستثنا نیست. اگرچه جاوا در درجه اول در ارتباط با ساخت برنامههای موبایل و وب استفاده میشود، اما به دلیل پایگاه کاربری قوی آن، در کنار سایر فریمورکهای محبوب مانند Hadoop یا Spark برای انجام تجزیه و تحلیل کلان دادهها استفاده میشود. به ویژه آنکه توانایی توسعه برنامههای چندریسمانی را نیز دارد.
در پایان، بیش از صحبت در مورد جاوا به عنوان بهترین و مناسبترین گزینه برای علم داده، باید توجه داشته باشید که با توجه به تعداد توسعهدهندگان جاوا و شرکتهایی که قبلاً از این زبان برنامهنویسی برای ساخت برنامههای کاربردی استفاده کنند، در بیشتر موارد اگر با مشکلی روبرو شوید، این توسعهدهندگان قادر به پشتیبانی از شما هستند.
با این اوصاف، جاوا در بسیاری از زمینههای علم داده، مانند مدیریت پایگاه داده، یادگیری ماشین و.... قابل استفاده است. اگر سابقه کار با زبان برنامهنویسی جاوا را دارید، در یادگیری کتابخانههای مرتبط با این زبان برای کار با عمل دادهها با مشکل خاصی روبرو نمیشوید. علاوه بر این، فراموش نکنید کار با جاوا در این زمینه کاملاً متفاوت با R یا Julia است.
6. متلب (MATLAB)
متلب یک زبان برنامهنویسی اختصاصی است که توسط میلیونها مهندس و دانشمند برای محاسبات ریاضی و آماری استفاده میشود. دانشمندان داده عمدتاً از این زبان برای تجزیه و تحلیل دادهها و یادگیری ماشین استفاده میکنند. بهترین نکته در ارتباط با متلب این است که همه چیز را در یک فضای کاری واحد در اختیار دارید.
متلب بیشتر توسط دانشگاهها و دانشگاهیان استفاده میشود، اما هنوز یک انتخاب عالی برای ایجاد یک پایه عمیق بر روی مفاهیم علم داده است.
تنها نقطه ضعف متلب این است که یک نرمافزار غیررایگان است، بنابراین اگر در دانشگاهی ثبت نام کرده باشید یا قبلاً از آن در محل کار خود استفاده کردهاید، باید برای استفاده از آن در خانه هزینه خرید لایسنس را پرداخت کنید.
7. سی پلاس پلاس (++C)
برای تکمیل این لیست، به زبان برنامه نویسی سیپلاسپلاس نیاز داریم. درست است که سیپلاسپلاس بیشتر برای ساخت برنامهها و سیستمهای عامل استفاده میشود، اما در زمینههای دیگری مثل علم دادهها توانایی زیادی دارد.
در حالت کلی، دانشمندان داده زبانهای با کاربرد و اشکالزدایی آسان مثل پایتون یا R را ترجیح میدهند، زیرا نمیخواهند وقت خود را صرف رفع برخی باگهای عجیب سی پلاس پلاس کنند.
با این حال، سی پلاس پلاس نقش مهمی در علم داده دارد، زیرا بسیاری از کتابخانههای مورد استفاده در زبانهای دیگر توسط این زبان نوشته شدهاند. ایجاد یک مدل یادگیری ماشینی نیازمند تلاش محاسباتی است، بنابراین استفاده از یک زبان کارآمد مانند مثل سی پلاس پلاس منطقی است.
اگر میخواهید با توسعه کتابخانه برای زبانهای دیگر در صنعت علم داده شرکت کنید، سی پلاس پلاس ممکن است انتخاب مناسبی باشد.
کلام آخر
در این پست، بهترین زبانهای برنامهنویسی مورد استفاده برای علم داده را بررسی کردیم. این رشته به طور انفجاری در حال رشد است و امروز بهترین زمان برای ورود حرفهای به این حوزه به عنوان یک دانشمند داده هستید.
اگر تازه به این وادی قدم گذاشتهاید، توصیه میکنم با پایتون یا R شروع کنید. هنگامی که تجربهای در دنیای واقعی ایجاد پروژهها به دست آوردید، میتوانید با یادگیری زبانهای دیگر مانند جولیا یا اسکالا، مجموعه ابزار خود را گسترش دهید.
شماره 1- SolarWinds CPU Load Monitor
بهترین گزینه برای نظارت و نمودارگذاری بار همزمان روی چندین روتر سیسکو.
SolarWinds CPU Load Monitor همراه با مجموعه ابزارEngineer ارائه می شود. شبکه های تجاری در معرض ویروس های زیادی هستند و این می تواند باعث افزایش بار ترافیک وCPU در روترها شود. با کمک این ابزار می توان بار همزمان چندین مسیریاب سیسکو را کنترل و نمودار کرد. به این ترتیب می توانید از مشکلات جلوتر باشید.
امکانات:
SolarWinds CPU Load Monitor به شما اجازه می دهد آستانه هشدار و هشدار را به طور مستقل برای هر دستگاه تنظیم کنید.
امکان کنترل و نمودار کردن بار همزمان بارگیری چندین روتر سیسکو را فراهم می کند.
از IPv6 و SNMP v3 پشتیبانی می کند.
نوار زرد بار نشان دهنده این است که بار به آستانه هشدارمشخص شده توسط کاربر رسیده است و نوار قرمز یک سطح بحرانی را نشان می دهد.
مجموعه ابزارEngineer امکان دسترسی به بیش از 60 ابزار مدیریت شبکه را برای شما فراهم می کند.
مجموعه ابزارهای SolarWinds Engineer یک راه حل همه جانبه برای مدیریت شبکه است. گرچه ابزار گران قیمتی است اما گزینه های کارآمدی برای عیب یابی شبکه ارائه می کند که نمی توان آنها را نادیده گرفت.
وب سایت: SolarWinds CPU Load Monitor
سیستم کنترل و مانیتورینگ دمای اتاق سرور
HWMonitor-2
بهترین گزینه برای نظارت بر دما در لحظه
HWMonitor ابزاری برای کنترل ولتاژ، دما و سرعت فن است. رایج ترین تراشه های حسگر، اکثر IC های Winbond و … توسط این برنامه پشتیبانی می شوند. HWMonitor می تواند دمای پردازنده های هسته ای، هارد دیسک ها و GPU کارت گرافیک را بخواند. این ابزار دمای هارد را به کمک سیستم S.M.A.R.T می خواند.
HWMonitor Pro ویژگی های بیشتری را ارائه می دهد. همچنین، رابط کاربری آن بهبود یافته است.
امکانات:
HWMonitor Pro امکان کنترل از راه دور را فراهم می کند و به شما کمک می کند تا از طریق یک اتصال ساده TCP / IP حسگرهای یک یا چند رایانه شخصی یا دستگاه های Android را از راه دور بررسی کنید.
ارائه نمودار از دمای قطعات در طول زمان. می توانید این نمودارها را ذخیره، لود و مقایسه کنید.
پشتیبانی از سفارشی سازی رابط مانند برچسب های قابل ویرایش، افزودن حسگر در System Tray و انتخاب حالت نمایش بر اساس نوع سنسور.
این برنامه نظارت بر سخت افزار می تواند سنسورهای اصلی رایانه یعنی ولتاژ، دما و سرعت فن را نمایش دهد.
وب سایت: HWMonitor
شماره 3- Open Hardware Monitor
ابزاری رایگان برای کنترل دما، ولتاژ و سرعت فن.
Open Hardware Monitor نرم افزاری رایگان است که از سیستم های ویندوز و لینوکس پشتیبانی می کند. این نرم افزار را می توان در سیستم ویندوز با .NET Framework نسخه 2.0 به بالا و روی سیستم های لینوکس که دارای Mono با WinForms هستند، اجرا کرد. به این ترتیب نصب آن آسان تر خواهد بود، فقط کافی است archive را از حالت فشرده خارج کرده و پرونده .exe را اجرا کنید. کد منبع برنامه در GitHub میزبانی می شود.
امکانات:
Open Hardware Monitor می تواند حسگرهای دما، سرعت فن، ولتاژ، سرعت بار و ساعت کامپیوتر را کنترل کند.
اکثر تراشه های کنترلگر سخت افزار در حال حاضر توسط Open Hardware Monitor پشتیبانی می شوند.
در مورد مادربرد و واحد گرافیک اطلاعاتی ارائه می دهد.
دمای هارد دیسک SMART را نمایش می دهد.
وب سایت: Open Hardware Monitor
شماره 4- HWiNFO
مناسب برای دریافت اطلاعات دقیق در مورد اجزای سخت افزاری سیستم.
HWiNFO یک نرم افزار تشخیصی برای تجزیه و تحلیل جامع سخت افزار، نظارت و گزارش است. به کمک این نرم افزار اطلاعات سخت افزاری عمیقی را دریافت خواهید کرد.HWiNFO می تواند در زمان واقعی پارامترهای سیستم و سخت افزار مانند CPU ، GPU ، مادربرد اصلی، درایو، وسایل جانبی و غیره را بررسی کند. این نرم افزار رایگان است و از Windows و DOS پشتیبانی می کند.
امکانات:
HWiNFO می تواند گرمای بیش از حد، اضافه بار، افت عملکرد یا پیش بینی خرابی را تشخیص دهد.
ارائه گزارش دقیق سخت افزارهای موجود در رایانه.
پشتیبانی از نسخه های مختلف ویندوز
امکان شخصی سازی هشدار پارامترهای مختلف به دلخواه کاربر
HWiNFO در بررسی پارامترهای مختلف مربوط به سخت افزار به شما کمک می کند و همچنین اطلاعات جامع در مورد اجزای سخت افزاری در اختیار شما قرار می دهد. این نرم افزار می تواند در میدان تابشی میدانی برای نظارت بر سیستم های رایانه ای مورد استفاده قرار گیرد.
وب سایت: HWiNFO
شماره 5- Core Temp
بهترین ابزار رایگان برای ثبت و نمایش دما.
Core Temp ابزاری ساده، جمع و جور و قدرتمند است که می تواند دمای پردازنده و برخی اطلاعات مهم دیگر را کنترل کند. علاوه بر این از پردازنده های مبتنی بر سیستم عامل ویندوز و اینتل ،AMD و VIA x86 پشتیبانی می کند.
امکانات:
Core Temp دمای هر هسته را به صورت جداگانه به شما اطلاع می دهد.
امکان کنترل نوسانات دما در زمان واقعی با بارهای کاری مختلف وجود دارد.
یک برنامه تلفن همراه ویژه تلفن های اندرویدی و ویندوزی به شما ارائه می دهد تا بتوانید سیستم های خود را از راه دور نیز کنترل کنید.
امکان خاموش کردن خودکار رایانه جهت جلوگیری از آسیب رسیدن به قطعات
Core Temp مادربرد اگنوستیک است. بسیار قابل تنظیم، قابل توسعه و استفاده از آن آسان است. می تواند آمار مربوط به دما را ثبت و نمایش دهد. همچنین فضای زیادی روی هارد دیسک شما اشغال نخواهد کرد.
وب سایت: CoreTemp
افزایش سرعت cpu لپ تاپ +دانلود بهترین نرم افزار موجود
شماره 6- NZXT CAM Software
مناسب برای ردیابی جنبه های مختلف رایانه شما.
NZXT CAM نرم افزاری رایگان برای نظارت بر رایانه است. این راه حل سریع و کارآمد امکان کنترل جنبه های مختلف رایانه را به شما می دهد. همچنین اطلاعات کاملی در مورد رایانه از بار پردازنده گرفته تا مصرف پهنای باند ارائه می دهد.
امکانات:
NZXT CAM اطلاعات مربوط به برنامه هایی که از قسمت های مختلف دستگاه استفاده می کنند را ارائه می دهد.
این نرم افزار، اطلاعات جامع و کاملی از وضعیت دمای پردازنده، سرعت گردش فنها، وضعیت عملکرد کارت گرافیک، رم، هارد دیسک و … را ارائه می دهد.
این نرم افزار یک راه حل کامل برای پایش دمای قسمت های حیاتی و قطعات اصلی رایانه است. کاربرد ساده ای دارد و از AER Fan ، Lighting Strip ، Cable Comb و غیره پشتیبانی می کند.
وب سایت: NZXT CAM
شماره 7- Speccy
مناسب برای بررسی مجدد داده های بدست آمده در یک زمان خاص.
Speccy یک ابزار پیشرفته برای ارائه اطلاعات سیستم کامپیوتری شما است. یک برنامه سریع و سبک که می تواند اطلاعات پیشرفته سخت افزاری و نرم افزاری رایانه شما را فراهم کند. همچنین از به روزرسانی های نرم افزاری و نسخه حرفه ای پشتیبانی می کند. شما می توانید خلاصه ای از سخت افزار رایانه شخصی خود را مشاهده کنید. همچنین می توانید جنبه های دیگر را نیز بررسی کنید.
امکانات:
گزارش اطلاعات دقیق و جامع در مورد قطعات سخت افزاری مختلف.
نمایش دمای لحظه به لحظه اجزای حیاتی سیستم.
امکان ذخیره نتایج اسکن به صورت عکس فوری،XML یا فایل متنی. لازم به ذکر است که این ویژگی اشتراک گذاری نتایج را آسان تر می کند.
Speccy در سه نسخه رایگان، حرفه ای و بسته حرفه ای در دسترس است.
وب سایت: Speccy
۲۰ نرم افزار ضروری که بلافاصله بعد از نصب ویندوز باید روی سیستم نصب کنید!
شماره 8- Real Temp
مناسب برای پردازنده های اینتل.
C:\Users\MSA\Downloads\Real-Temp.png Real Temp ابزاری برای نظارت بر دمای پردازنده است و برای تمام پردازنده های Intel Single Core ، Dual Core ، QuadCore و Core i7 طراحی شده است. در هسته های این پردازنده ها سنسور حرارتی دیجیتال (DTS) وجود دارد. این سنسورها داده های دما را نسبت به TJMax گزارش می کنند. این برنامه داده های دمایی را با استفاده از دماسنج IR Fuke 62جمع آوری می کند.
امکانات:
Real Temp می تواند اطلاعات دمای تمام پردازنده های مبتنی بر Intel Core را نمایش دهد.
دمای واقعی هر هسته را کالیبره می کند.
امکان تتظیم دمای مجاز به صورت دستی در تنظیمات RealTemp وجود دارد.
حداقل و حداکثر دما و وضعیت سیستم را کنترل می کند.
یک زنگ هشدار و خاموش کردن در دمای بالا بر اساس دمای پردازنده گرافیکی یا NVIDIA GPU ارائه می هد.
Real Temp از پردازنده های پنتیوم 4 پشتیبانی نمی کند. نیازی به نصب ندارد. از سیستم عامل ویندوز (32 و 64 بیتی) پشتیبانی می کند. نیازی به تعمیر رجیستری نیست.
وب سایت: Real Temp
شماره 9- ManageEngine OpManager (برای سرورها و شبکه ها)
مناسب برای نظارت بر شبکه.
ManageEngine OpManager می تواند خطا و عملکرد سرورهای فیزیکی و مجازی، کنترل کننده دامنه، روتر ها، سوئیچ ها، ارتباط WAN، Firewall و دیگر تجهیزات زیر ساخت فناوری و اطلاعات را کنترل کند.
امکانات:
ManageEngine OpManager نمودارها، هشدارها و گزارشاتی را درباره عملکرد سرور و سخت افزار شبکه شما ارائه می دهد.
در صورت شناسایی خطای سخت افزاری، با کمک OpManager می توانید عیب یابی از راه دور را به صورت خودکار انجام دهید.
این نرم افزار می تواند سخت افزارهایی مانند سرورها، روترها، فایروال ها، دستگاه های ذخیره سازی و غیره را رصد کند و اطلاعات مربوط به وضعیت و در دسترس بودن را در زمان واقعی ارائه می دهد.
اطلاعاتی در مورد دما، سرعت فن، منبع تغذیه، سرعت ساعت پردازنده و غیره ارائه می کند.
ManageEngine OpManager یک نرم افزار نظارت بر شبکه است که استفاده از آن آسان است.
وب سایت: ManageEngine OpManager
شماره 10- SpeedFan
مناسب برای کاربران حرفه ای.
Speed Fan می تواند ولتاژ، سرعت فن و دما را کنترل کند. همچنین با دسترسی به اطلاعات S.M.A.R.T. می تواند دمای هارد دیسک را نمایش دهد . دیسک های SCSI توسط SpeedFan پشتیبانی می شوند. از سیستم عامل ویندوز پشتیبانی می کند. ویندوز 64 بیتی نیز توسط SpeedFan پشتیبانی می شود. به شما این امکان را می دهد که دمای مناسب فن ها را تشخیص دهید.
امکانات:
Speed Fan می تواند با دسترسی به سنسورهای دمای دیجیتال سرعت فن را تغییر می دهد.
از اکثر ویندوزها و نسخه های 32 و 64 بیتی پشتیبانی می کند.
محیط کاربری ساده
در حال حاضر بسیاری از سخت افزارهای جدید توسط SpeedFan پشتیبانی می شوند.
این نرم افزار به عنوان یک ابزار مفید برای کاربران حرفه ای و به صورت رایگان در دسترس است.
وب سایت: Speed Fan
شماره 11- AIDA64 Extreme
مناسب برای بررسی عملکرد سیستم عامل و نرم افزارها و سخت افزارهای موجود در رایانه شما.
AIDA64 Extreme ابزاری برای اطلاع رسانی سیستم است که اطلاعات دقیق سخت افزاری را به شما ارائه می دهد. این نرم افزار معیارهایی را برای اندازه گیری عملکرد کامپیوتر فراهم می کند و شامل یک موتور تشخیص سخت افزار می باشد. علاوه بر این موارد اطلاعاتی در مورد نرم افزار نصب شده و توابع تشخیصی نیز ارائه می دهد.
AIDA64 Extreme از اورکلاکینگ و سیستم عامل ویندوز (32 بیت / 64 بیت) و ویندوز سرور 2016 پشتیبانی می کند. همچنین حسگرها را در زمان واقعی کنترل می کند.
امکانات:
AIDA64 Extreme اطلاعات دقیقی درباره ولتاژ، دما و سرعت فن فراهم می کند.
چند ابزار برای اندازه گیری عملکرد سخت افزارهای فردی و کل سیستم ارائه می دهد.
از نمایشگرهای خارجی پشتیبانی می کند که به شما کمک می کنند داده های حیاتی سیستم را در انواع دستگاه های LCD / VFD مشاهده کنید.
AIDA64 Extreme دارای ویژگی های مختلفی مانند تست استرس، دقت، پنل حسگر، نرم افزار ممیزی و غیره است.
یک ابزار اطلاعاتی پیشرو در صنعت که در بین علاقه مندان به رایانه محبوب شده است. این ابزار در شناسایی و جلوگیری از مشکلات سخت افزاری به شما کمک خواهد کرد.
وب سایت: AIDA64 Extreme
نتیجه گیری
برای جلوگیری از وارد شدن آسیب های حرارتی به مادربرد و سایر دستگاه ها، دمای پردازنده باید کنترل شود. به این ترتیب می توانید آپ تایم (Uptime به مدت زمانی که طی آن یک ماشین به ویژه یک سیستم رایانهای در حال فعالیت و قابل دسترسی است گفته می شود) طولانی تری داشته باشید و عملکرد سیستم را کنترل کنید. در بالا انواع مختلفی از ابزارها که می توانند در نظارت و کنترل دمای پردازنده به شما کمک کنند را معرفی کردیم.
SolarWinds CPU Load Monitor، HWMonitor ، Open Hardware Monitor ، HWiNFO و Core Temp بهترین نرم افزارهای توصیه شده برای کنترل دمایCPU هستند.
فلومترهای کوریولیس
فلومتر کوریولیس یک فلومتر جرمی واقعی می باشدکه بر اساس اصول فزیکی تاثیرات چرخش زمین بر روی جرم کار می کند. این اثر را شتاب کوریولیس می نامند که باعث تولید نیروی کوریولیس می شود. خوب است بندانید که این نیروی کوریولیس است که باعث می شود گرداب های چرخشی به وجود آمده در آب، در نیم کره ی شمالی زمین، هم چهت با عقربه های ساعت، و در نیم کره ی جنوبی بر خلاف عقربه های ساعت باشد.
فلومترهای مغناطیسی
از فلومترهای مغناطیسی به طور گسترده ای برای اندازه گیری نرخ فلوی سیالات رسانا استفاده می شود. تکنولوژی های جدیدی که در ساخت این دستگاه ها به کار می رود، نصب این فلومترها را آسان کرده، و در اغلب موارد، به نسبت طرح های دیگر آن ها را مقرون به صرفه تر کرده است. یکی از مزایای این نوع از دستگاه های اندازه گیری این است که عملا هیچ مانعی را در مسیر سیال ایجاد نمی کنند. از اینرو، در فرآیند هایی که با مایعات حاوی مواد جامد و یا سیالات دارای ویسکوزیته بالا سر و کار داریم، استفاده از این فلومترها بسیار مناسب می باشد. مهم ترین کاربردهای این فلومتر ها عبارت است از، اندازه گیری فلو لجن در تصفیه خانه های فاضلاب، اندازه گیری فلو دوغاب ها در عملیات استحراج معدن، و اندازه گیری فلو فلزات مایع در فرآیند های صنعتی مختلف.
فلومتر اولتراسونیک
فلومتر های اولتراسونیک بر اساس اندازه گیری سرعت صوتی که از میان جریان فلوی درون یک لوله عبور می کند، کار می کنند. برخی از طرح های این فلومترها اجازه می دهد که عمل اندازه گیری از خارج لوله انجام شود، در حالی که در برخی دیگر لازم است که سنسور با جریان فلو در تماس باشد. به تین ترتیب، ممکن است سنسور توسط گیره و بست (clamp) بر روی لوله محکم بسته شده و یا اینکه در داخل یک قسمت از لوله نصب شده باشد.
فلومتر گردابی
فلومتر های گردابی (vortex flowmeters) یک نوع از فلومترهای نوسانی ( Oscillatory flowmeter) می باشند. این فلومتر ها از پدیده های فیزیکی ای استفاده می کنند که باعث ایجاد تغییرات گسسته در برخی پارامترها می شود، به طوری که این پارامتر ها تابعی از فلو عبوری از فلومتر می باشند
فلومتر توربینی
فلومتر توربینی، نرخ دبی را در یک لوله یا خط فرآیند از طریق روتور اندازه گیری میکند که به محض اینکه سیال از پره های آن عبور میکند میچرخد. سرعت چرخش، یک تابع مستقیم از سرعت جریان است و می توان آن را با برداشت مغناطیسی، سلول فتو الکتریک و یا تاکومتر اندازه گرفت.
فلومتر اختلاف فشار
برای اندازه گیری فلو از دستگاه های متنوعی استفاده می شود. فلومترهای اختلاف فشاری که گاهی آن را head-type می نامند، یکی از پرکاربردترین دستگاه های اندازه گیری فلو می باشند. این دستگاه ها عموما ساده، قابل اعتماد و بسیار دقیق هستند. در نتیجه، برای کاربردهای اندازه گیری فلو مایع و همچنین، اکثر کاربردهای گاز، اغلب از این نوع دستگاه ها استفادا می شود. در فلومترهای اختلاف فشاری با اندازه گیری افت فشار ایجاد شده بواسطه ی یک محدودیت (Constriction) قرار گرفته در مسیر جریان فلو، میزان نرخ فلو تعیین می شود، به طوری که اختلاف فشار ایجاد شده اندازه گیری شده و سپس نرخ فلو از این اختلاف فشار استنتاج می شود.
روتامتر
روتامترها را می توان در کاربردهای متنوعی مورد استفاده قرار داد و این دستگاه ها قادرند برای طیف وسیعی از مایعات و همچنین دوغاب ها و گاز ها به کار گرفته شوند. در واقع، روتامترها فلومترهای سطح متغیر می باشند. همانند دیگر دستگاه های اندازه گیری فلو، سنجش فلو توسط این دستگاه نیز بر اساس رابطه ی بین دو فاکتور شناخته شده صورت می گیرد که یکی از فاکتورهای ثابت بوده، و تغییرات فاکتور دیگر نشان دهنده ی تغییرات نرخ فلو می باشد. در روتامتر، سطح دهانه ی فلومتر همان فاکتور متغیر است که متناسب با نرخ فلو تغییر می کند.
برگرفته از سایت میرا کنترل https://miracontroller.com
برنامه های مدیریت دمای پردازشگر به شما کمک می کنند تا با جمع آوری داده ها از حسگرهای مختلف، دمای CPU را بررسی کنید. در یک محیط پیچیده فنی، منابع سخت افزاری مهم هستند و نظارت بر آنها می تواند کار زمان شما را افزایش دهد، عملکرد را بهبود ببخشند و خطرات سوختن و … را به حداقل برساند.
اکثر این نرم افزارها مقادیر خصوصیات فیزیکی خاص مانند دما و ولتاژ مربوط به اجزای فیزیکی مانند CPU ، باتری، فن، مادربرد و … را ارائه می کنند.
پردازنده ها گرمای زیادی را تحمل می کنند. پردازنده های جدید می توانند تا 103 درجه سانتیگراد را تحمل کنند- بدون اینکه CPU آسیب ببیند. اما طول عمر سایر اجزا به دلیل دمای بالا کوتاه خواهد شد.
شرکت Puget Systems آزمایشی را انجام داده و متوجه شده است که CPU ها می توانند فرکانس خود را با توجه به دما تنظیم کنند و در نتیجه در دمای بالا حداکثر عملکرد را نداشته باشند. تفاوت عملکردی بسیار کمی بین CPU در حال کار در 30 درجه سانتیگراد و 95 درجه سانتیگراد وجود دارد.
نمودار زیر فرکانس پردازنده را بر اساس خنک سازی به شما نشان می دهد. در این آزمایش، از کولر CPU Intel Core i7 4790 و Gelid Silent Spirit Rev.2 استفاده شده است.
گیمرها و طراحان گرافیک کاربران با عملکرد بالا هستند. این افراد معمولا قطعات کامپیوتر را تعویض می کنند تا سریع تر کار کند. در گذشته گیمرها کامپیوتر را برای اجرای روان بازی های آنلاین اورکلاک می کردند اما اورکلاک می تواند دمای پردازنده را افزایش دهد.
دلایل مختلفی می تواند منجر به افزایش دمای پردازنده شود از جمله گرد و غبار، سرعت فن یا اورکلاک. همچنین، حملات بدافزار نیز می تواند باعث افزایش دمای پرازند شود.
ویروس ها ، تروجان ها مانند (Backdoor ، Rootkit و غیره) و Worms (ایمیل، اینترنت، شبکه) انواع متداول عفونت های مخربی هستند که می توانند باعث افزایش دمای پردازنده شوند.
برخی از برنامه ها به CPU احتیاج بیشتری دارند. به عنوان مثال، برنامه های ویرایش ویدیو و گرافیک، بازی هایی با گرافیک با وضوح بالا، برنامه های رایت DVD و … . برنامه های شروع خودکار می توانند روی استفاده از پردازنده تأثیر بگذارند. بعضی اوقات مرورگرها نیز از قدرت پردازش CPU استفاده می کنند.
دمای پردازنده در حالت بیکار باید 45 تا 50 درجه سانتیگراد باشد. هنگامی که مشغول بازی، اجرای ویدیو، یا انجام کارهای سنگین دیگری هستید، بار بیشتری روی سیستم وجود دارد و دما می تواند حدود 70 تا 80 درجه سانتیگراد باشد. دمای بین 80 تا 100 درجه سانتیگراد دمای حداکثری است. در این دما، سرعت پردازنده کاهش می یابد.
در اینجا لیست اقداماتی که می توانید در شرایطی که دمای پردازنده بیش از 80 درجه سانتیگراد است انجام دهید را ارائه خواهیم کرد:
سخه 10 زبان برنامهنویسی سیشارپ همراه با نسخه 6 چارچوب داتنت منتشر شد. در نسخه جدید قابلیتهای کاربردی نسبتا مهمی در اختیار برنامهنویسان قرار گرفته و برخی قابلیتهای قبلی بهبود پیدا کردهاند تا خوانایی این زبان محبوب بازهم بیشتر از قبل شود. در این مقاله نگاهی اجمالی به مهمترین آنها خواهیم داشت.
760 4_0.gif
بررسی پارامتر تهی (Null Parameter Checking)
استثنا مرجع تهی (Null Reference Exception) یکی از خطاهای دردسرآفرین برنامههای کاربردی است. برنامهنویسان برای پیشگیری از بروز این خطا مجبور هستند ورودیهای متدها را بررسی کنند، اما ویژگی جدید این فرآیند را سادهتر و خوانایی کدها را بیشتر کرده است. در حال حاضر برای بررسی تهی (خالی بودن) یک پارامتر از ترکیب نحوی زیر استفاده میشود:
public MyFunction(int id, SomeClass newObject)
}
if (newObject == null)
{
throw new ArgumentNullException(“newObject”);
}
// Code Here
{
در متد بالا، یک شیء بهنام newObject از نوع SomeClass به پارامتر MyFunction تخصیص داده شده است. اگر شیء مذکور مقداردهی اولیه نشده باشد (تهی باشد) متد نباید کار کند. نسخه 10 سیشارپ این فرآیند ارزیابی را ساده کرده است. کافی است، دو کاراکتر !! به انتهای نام پارامتر اضافه کنید.
public MyFunction(int id, SomeClass newObject!!)
}
// Code Here
{
در قطعه کد بالا، بهشکل خودکار تهی بودن newObject بررسی میشود و اگر نتیجه ارزیابی مثبت باشد، خطای ArgumentNullException تولید میشود که امکان مدیریت بدون مشکل آن وجود دارد.
خاصیتهای اجباری (Required Properties)
برنامهنویسان مجرب از سازنده (Constructor) پیچیده در برنامههای خود استفاده نمیکنند و ترجیح میدهند از سازندههای ساده استفاده کنند. بهبیان دیگر، ترجیح میدهند مقادیر را بهشکل مستقیم به فیلدها ارجاع دهند. برنامهنویسان برای ساخت اشیاء از سازندههای سبکوزن همانند قطعه کد زیر استفاده میکنند:
var Myconstructor = new MyClass
{
Title = “Hi Everyone”
Category = “.NET»,
ReleaseDate = DateTime.Now()
}
با اینحال، گاهیاوقات باید خصلتها مقداردهی اولیه شوند، اما ممکن است توسعهدهندگان اینکار را فراموش کنند. در نسخه 10 سیشارپ کلمه کلیدی Required در ارتباط با خصلتها معرفی شد. در این حالت هنگام ساخت کلاس، میتوانیم یک فیلد اجباری تعریف کنیم که اگر هنگام نمونهسازی از کلاس، فیلد مذکور مقداردهی نشد، خطای زمان کامپایل ایجاد شود.
public class MyClass
}
public required string Title {get; init;}
public string Category {get; init;}
public DateTime ReleaseDate {get; init;}
{
ویژگی Global Using
بهطور معمول، برنامهنویسان در ابتدای سورسهایی که در سیشارپ مینویسند از دستور using استفاده میکنند که همراه با آن فضاینام (Namespace) قرار میگیرد. فضاهای نام پذیرای کلاسها، متدها و اشیاء دادهای هستند که برنامهنویسان برای نوشتن کدهای خود به آنها نیاز دارند. بهطور مثال، System، System.Linq، System.Collections.Generic و غیره تقریبا در همه پروژهها و فایلهایی که توسط زبان برنامهنویسی سیشارپ نوشته میشوند، وجود دارند. تیم توسعه داتنت و سیشارپ در نسخه 10 ویژگی Global Using را معرفی کرد. ویژگی فوق به برنامهنویسان اجازه میدهد برای وارد کردن (Import) یک فضاینام بهجای آنکه از دستور Using استفاده کنند از عبارت Global Using استفاده کنند. تفاوت دستور جدید با دستور قبلی چیست؟ اگر در یکی از فایلهای پروژه از Global Using استفاده کنید، نیازی نیست در فایلهای دیگر پروژه، دومرتبه از همان Using استفاده کنید. بهعبارت دقیقتر، دستور فوق قابلیت گسترشپذیری دارد و به دیگر فایلها تعمیم داده میشود.
برنامهنویسان میتوانند از Global Using در یکی از فایلهای اصلی پروژه مثل فایل Program.cs استفاده کنند تا ویژگی فوق به فایلهای دیگر تعمیم داده شود. اگر بهدنبال برنامهنویسی ساختیافته هستید، پیشنهاد میکنیم فایلی بهنام GlobalNamespace.cs در پروژه ایجاد کنید و تمام دستورات Using را در آن قرار دهید تا مجبور به تکرار دستورات نباشید.
global using System;
global using System.Linq;
global using System.Collections.Generic;
برنامهنویسان میتوانند بهطور همزمان از Using و Global using در یک فایل استفاده کنند. همچنین، میتوان از Global Using برای وارد کردن کلاسهای ایستا استفاده کرد. ترکیب نحوی اینکار بهشرح زیر است:
global using static System.Console;
ویژگی Implicit Using
پروژههایی که با داتنت نسخه 6 توسعه داده میشوند، مجهز به قابلیتی هستند که Implicit Using نام دارد. توسعهدهندگان میتوانند ویژگی فوق را فعال یا غیرفعال کنند. اگر قابلیت مذکور در پروژهای فعال باشد، بهشکل پیشفرض برخی Usingها را بر مبنای پروژه به آن اضافه میکند. بهطور مثال، در ارتباط با برنامههای کنسول، Usingهای زیر بهطور خودکار به تمامی فایلهای پروژه اضافه میشوند.
// <auto-generated/>
global using global::System;
global using global::System.Collections.Generic;
global using global::System.IO;
global using global::System.Linq;
global using global::System.Net.Http;
global using global::System.Threading;
global using global::System.Threading.Tasks;
همانگونه که مشاهده میکنید، ویژگی فوق کاملا کاربردی است. برنامهنویسان میتوانند از روشهای زیر برای فعالسازی ویژگی فوق استفاده کنند:
اگر به بخش Properties پروژه در Solution Explorer در ویژوال استودیو بروید، گزینهای بهنام Implicit global using را مشاهده میکنید که امکان فعال یا غیرفعال کردن آن با فعالسازی تیک Usingها وجود دارد.
دومین روش این است که فایل تنظیمات پروژه که فرمت فایلی .csproj نام دارد را باز کنید و مقدار برچسب ImplicitUsings را فعال (Enbale) کنید. برای غیرفعال کردن قابلیت فوق، کافی است مقدار برچسب مذکور را Disable تنظیم کنید.
<Project Sdk=”Microsoft.NET.Sdk”>
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net6.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
</Project>
اگر دوست دارید تا بدانید چه Usingهایی بهطور خودکار به پروژه اضافه شدهاند، پروژه را باز کنید و به مسیر Obj\Debug\Net6.0 بروید. در مسیر مذکور، فایلی بهنام GlobalUsings.g.cs را مشاهده میکنید که Usingها در آن قرار دارد. کامپایلر فایل مذکور را بهطور خودکار برای پروژههایی که روی داتنت 6 توسعه داده میشوند و قابلیت فوق در آنها فعال شده است، ایجاد میکند. اگر در نظر دارید، گزینههای دیگری به Usingهای پیشفرض اضافه کنید، باید برچسب زیر را به برچسبهای تنظیمات که .csproj نام دارد اضافه کنید.
<ItemGroup>
<Using Include=”System.Numerics” />
</ItemGroup>
در قطعه کد بالا فضاینام Numerics به موارد پیشفرض اضافه میشود.
رشتههای درونیابی ثابت
(Constant interpolated strings)
ویژگی مذکور، اجازه میدهد متغیرها و عبارتهای محاسباتی را به روشی شفافتر و خواناتر به رشتهها الحاق کرد. بهطور سنتی، برنامهنویسان از عملگر مثبت (+) یا متد Format کلاس String برای الحاق رشتهها استفاده میکنند. بهطور مثال، اگر در نظر داشته باشیم رشته جدید از طریق الحاق دو متغیر firstName و lastName ایجاد کنیم، باید کاری مشابه حالت زیر انجام دهیم:
var FirstName = “HamidReza”;
var LastName = “Taebi”;
var Firstattach = FirstName + “ “ + LastName;
var Secondattach = string.Format(“{0} {1}”, FirstName, LastName);
با ویژگی جدید Interpolated Strings کاراکتر $ را قبل از رشته جدید قرار میدهیم و داخل کروشه نام متغیر یا عملیات محاسباتی را درج میکنیم.
var OldMethod = $”{FirstName} {LastName}”;
همانگونه که مشاهده میکنید، ویژگی Interpolated Strings قالببندی رشتهها و خوانایی کدها را بهتر کرده و اجازه میدهد با کدنویسی کمتری فرآیند الحاق را انجام دهید. با اینحال، ویژگی فوق یک بهروزرسانی مهم دریافت کرده است. تا قبل از انتشار سیشارپ 10، برنامهنویسان نمیتوانستند از ویژگی Interpolated Strings استفاده کنند و مقدار بازگشتی را درون ثابتهای رشتهای قرار دهند و خروجی باید در یک متغیر درج میشد. از این پس، برنامهنویسان میتوانند مقدار بازگشتی Interpolated Strings را در یک ثابت رشتهای قرار دهند. ویژگی مذکور Constant Interpolated Strings نام دارد.
private const string Myfirstname = “HamidReza”;
private const string Mylastname = “Taebi”;
private const string NewMethod = $”{ Myfirstname } { Mylastname }”;
دقت کنید تنها ثابتهایی از نوع رشته از طریق روش فوق قابل الحاق به یکدیگر هستند و قرار دادن مقدار بازگشتی در یک ثابت رشتهای را امکانپذیر میکنند. ازاینرو، اگر تلاش کنید از تکنیک مذکور در ارتباط با نوعهای دیگر استفاده کنید با پیغام خطا روبرو میشوید.
تغییرات Lambda Expression در سیشارپ 10
یکی از کلمات کلیدی قدرتمند زبان برنامهنویسی سیشارپ، کلمه کلیدی var است. var به کامپایلر اجازه میدهد از روی مقادیر تخصیص داده شده به یک متغیر، نوع متغیر را تشخیص دهد و ضرورتی ندارد بهشکل صریح نوع متغیر را تعریف کنیم. تا قبل از انتشار نسخه 10، کامپایلر سیشارپ اگر با قطعه کدی شبیه به var MyDelegate = () => Console.WriteLine(“Hello”); روبرو میشد، بهدلیل اینکه توانایی تشخیص نوع Delegate را نداشت، پیغام خطا میداد. برنامهنویسان برای حل این مشکل مجبور بودند، نوع Delegate را مشخص کنند.
Action MyDelegate = () => Console.WriteLine(“Hello”);
در نسخه 10 ویژگی Inferred Delegate Type افزوده شده تا کامپایلر بتواند نوع Delegate را تشخیص دهد. دقت کنید عبارت سمت راست که Lambda Expression نام دارد باید برای کامپایر قابل فهم باشد. بهطور مثال، فرض کنید قصد استفاده از کلمه کلیدی var را دارید و از ترکیب نحوی مثل var multiple = x => x * x; استفاده میکنید. کامپایلر نمیتواند نوع x را تشخیص دهد، بنابراین پیغام خطایی تولید میکند. برای آنکه مشکل دستور فوق را برطرف کنیم، باید نوع x را دقیقا اعلام کنیم.
var multiple = (int x) => x * x;
موضوع مهم دیگری که باید به آن دقت کنید نوع خروجی Delegate است. اگر در نظر دارید Delegate بنویسید که دو نوع متفاوت را بازگرداند، کامپایلر نمیتواند نوع خروجی را تشخیص دهد و پیغام خطایی نشان میدهد. بهطور مثال، دستور زیر را در نظر بگیرید
var result = (int x) => x > 10 ? 40 : “forty”;
در دستور بالا، نوع خروجی بر مبنای مقدار x، از نوع صحیح یا رشتهای است. کامپایلر نمیتواند نوع خروجی را تشخیص دهد و پیغام خطایی نشان میدهد. در نسخه جدید، برنامهنویسان توانایی تعیین نوع خروجی Lambda Expression را دارند. برای اینکار، قبل از ورودیهای عبارت لامبدا، نوعی را تعیین میکنند که نوع خروجی عبارت لامبدا را مشخص میکند. حال اگر دستور بالا را بهشکل زیر بنویسیم مشکلی ایجاد نمیشود:
var result = object (int x) => x > 10 ? 40 : “forty”;
در دستور بالا، مشخص کردیم که نوع خروجی عبارت لامبدا از نوع Object است. نوع Object نشان میدهد که خروجی میتواند هر نوعی داشته باشد. در این حالت، دست کامپایلر برای تشخیص نوع خروجی Delegate باز است. به ویژگی مذکور «نوع بازگشتی لامبدا» (Lambda Return Type) گفته میشود.
تعریف خصلت روی عبارت لامبدا، ويژگی دیگر افزوده شده به عبارتهای لامبدا است. مانند متدهای عادی میتوان به عبارتهای لامبدا خصلت اضافه کرد که ویژگی مذکور «خصلت لامبدا» (Lambda Expression) نام دارد. بهطور مثال، فرض کنید در نظر داریم Attribute Obsolete را به عبارت لامبدا اضافه کنیم. ترکیب نحوی انجام اینکار بهصورت زیر است:
var result = [Obsolete] object (int x) => x > 10 ? 40 : “forty”;
اضافه شدن دو نوع جدید DateOnly و TimeOnly
DateTime از نوعهای قدیمی دنیای برنامهنویسی است که قدیمیها کاملا با آن آشنا هستند. همانگونه که اطلاع دارید، نوع DateTime اطلاعات زمان و تاریخ را نگهداری میکند. بهطور مثال، اگر دستور DateTime.Now را فراخوانی کنیم، تاریخ و زمان جاری را نشان میدهد. قبل از انتشار نسخه 10 سیشارپ، اگر تنها تاریخ یا زمان را نیاز داشتیم، باید بهصراحت نوع موردنظر را انتخاب میکردیم. در نسخه 10 دو نوع جدید DateOnly و TimeOnly اضافه شده تا تاریخ و زمان به شکل مجزا قابل استفاده باشند. ترکیب نحوی استفاده شده از نوعهای جدید بهصورت زیر است:
DateOnly Justdate = DateOnly.FromDateTime(DateTime.Now);
TimeOnly Justtime = TimeOnly.FromDateTime(DateTime.Now);
Console.WriteLine(Justdate);
Console.WriteLine(Justtime);
همانگونه که مشاهده میکنید، مقادیر تاریخ و زمان در دو شیء جدا نگهداری میشوند. در اینجا Justdate تنها تاریخ را نگهداری میکند و Justtime تنها زمان را نگهداری میکند. بزرگترین مزیتی که افزودن این دو نوع جدید برای برنامهنویسان دارد، هماهنگی بیشتر نوعهای تاریخ و زمان در SQL Server است، زیرا بهلحاظ دادهای شباهت بیشتری به هم دارند.
بهبود عملکرد struct
ساختارها در نگارش 10 سیشارپ تغییراتی داشتهاند. یکی از این تغییرات، تعریف سازنده بدون پارامتر در struct است. تا قبل از انتشار نسخه 10، امکان تعریف سازنده بدون پارامتر وجود نداشت و توسعهدهندگان مجبور بودند حداقل یک پارامتر برای یک struct تعریف کنند. ویژگی مذکور «سازندگان ساختار بدون پارامتر» (Parameterless Struct Constructors) نام دارد. برای آشنایی بهتر با مفهوم فوق به قطعه کد زیر دقت کنید:
struct Point
{
public Point()
{
X = 0;
Y = 0;
}
public double X { get; set; }
public double Y { get; set; }
}
همانگونه که مشاهده میکنید، ساختار Point یک سازنده بدون پارامتر دارد. دقت کنید که درون سازنده باید تمام خاصیتهای آنرا مقداردهی کنید، در غیر اینصورت با پیغام خطای زیر روبرو میشوید. در پیغام خطای زیر کامپایلر اعلام میدارد که Y مقداردهی اولیه نشده است.
Auto-implemented property ‘Point.Y’ must be fully assigned before control is returned to the caller.
قابلیت دیگری که همراه با نگارش 10 به ساختارها افزوده شده، struct field initializers نام دارد. ویژگی فوق اجازه میدهد هنگام تعریف خاصیت، آنرا مقداردهی کرد. توسعهدهندگان میتوانند از ترکیب زیر برای این منظور استفاده کنند:
public double X { get; set; } = 0;
راهحل فوق باعث میشود تا کامپایلر پیغام خطایی نشان ندهد، زیرا خاصیتهای ساختار همگی مقداردهی اولیه شدهاند. نکته ظریفی که هنگام استفاده از تکنیک فوق باید دقت کنید این است که انتهای دستور از سمیکالن (;) استفاده کنید.
قابلیت جالب دیگری که به ساختارها اضافه شده، With نام دارد. ویژگی مذکور اجازه میدهد یک کپی از شیء ساختهشده از ساختار تهیه کنید و در صورت نیاز برخی از خاصیتهای آنها را تغییر دهید.
var p1 = new Point(12, 13);
var p2 = p1 with { Y = 49 };
در قطعه کد بالا، شی p1 با مقادیر 12 برای X و 13 برای Y تعریف شده است. در خط دوم از کلمه کلیدی with برای ساخت یک کپی از p1 استفاده شده و در ادامه مقدار Y به 49 تغییر پیدا کرده است. در این حالت، شیء p2 با مقدار جدید ساخته میشود.
تغییرات مهم Property Pattern در نسخه 10
برای اولین بار در نسخه ۸ زبان سیشارپ، قابلیت Property Pattern معرفی شد. توسعهدهندگان میتوانستند از قابلیت فوق برای ارزیابی اشیاء با مقادیر خصلتهای مرتبط استفاده کنند که نقش مهمی در خوانایی و درک سادهتر کدها داشت. بهطور مثال، فرض کنید دو کلاس Person و Car دارید و در نظر دارید متدی بنویسید و این موضوع را بررسی کنید که آیا شخصی ماشینهای قرمز دارد یا خیر. برای انجام اینکار قطعه کدی مشابه زیر مینویسیم:
public class Person
{
public string Name { get; set; }
public Car? Car { get; set; }
}
public class Car
{
public string Color { get; set; }
}
static bool HasPersonRedCar(Person person) => person is { Car: { Color : “Red”} };
در ادامه یک شیء از کلاس Person ایجاد میکنیم و متد HasPersonRedCar را روی شیء جدید فراخوانی میکنیم.
var ali = new Person()
{
Name = “Alex”,
Car = new Car
{
Color = “Red”,
}
};
Console.WriteLine(HasPersonRedCar(Alex));
قطعه کد فوق مقدار true را باز میگرداند.
همانگونه که مشاهده میکنید، Car خاصیت شیء Person را بررسی میکند و اگر مقدار خاصیت Color برابر با Red باشد مقدار True را باز میگرداند، در غیر اینصورت مقدار False باز گردانده میشود. در مدل فوق، برای بررسی مقدار هر خاصیت مجبور هستیم یک جفت آکولاد باز و بسته بنویسیم. در نگارش 10 سیشارپ این قابلیت بهبود پیدا کرد تا نحوه نوشتن کدها سادهتر و خوانایی آنها بیشتر شود. بر مبنای اصطلاحات جدید، قطعه کد بالا را میتوان بهصورت زیر بازنویسی کرد:
static bool HasPersonRedCar(Person person) => person is { Car.Color : “Red” }
همانگونه که مشاهده میکنید آکولادهای پیرامون خاصیت Color حذف شده و از عملگر نقطه استفاده شده است.
برگرفته از سایت مجله شبکه
شرکت پیشران صنعت ویرا با اساس نامه اتوماسیون صنعتی و کنترل ابزار دقیق و ساخت تابلوهای برق فشار قوی و ضعیف از سال 92 تاسیس گشت و ازهمان ابتدا در حوزه کاربرد ابزار دقیق در bms و سپس تولید و ساخت آنها قدم نهاد و در ادامه مسیر توانست با اتکا به تجربیات چندین ساله و استخدام نیروهای متخصص برق عملا جزو شرکتهایی باشد که محصولات قابل اتکایی با عناوین مانیتورینگ شرایط محیطی اتاق سرور -کنترلرهای دمای دیتا سنتر -دیتالاگرهای سردخانه و انبار -هشدار دهنده های دمای یخچال و فریزر و شمارشگرهای نمایشگاهی و فروشگاهی و تابلوهای برق متنوع با کاربردهای مختلف روانه بازار نماید در حال حاضر سیستمهای کنترل دما و رطوبت اتاق سرور این شرکت تنها سیستم مبتنی بر سخت افزار صنعتی plc-hmi در ایران است.