بارد یک چتبات LLM است که توسط هوش مصنوعی گوگل توسعه یافته است. این مدل بر روی مجموعه دادههای بزرگی از متون و کدها آموزش دیده است و قادر است متن تولید کند. زبانها را به هم ترجمه کند و انواع مختلفی از محتوای خلاقانه و پاسخ به سوالات تولید کند.
بارد هنوز در حال توسعه است، اما پتانسیل تبدیل شدن به یک ابزار قدرتمند برای ارتباط، خلاقیت و یادگیری را دارد.
در حال حاضر بارد قادر به درک زبان نیست و نمی توانید با زبان فارسی با آن ارتباط برقرار کنید.
بنا به گفته بسیاری گوگل در بازی هوش مصنوعی عقب است و پر کردن این فاصله در دنیایی که هر روز با شتاب بیشتری به سمت توسعه هوش مصنوعی میرود سخت به نظر میرسد.
می توانید از طریق آدرس زیر از بارد استفاده کنید:
https://bard.google.com
بارد هنوز در حال توسعه است، اما پتانسیل تبدیل شدن به یک ابزار قدرتمند برای ارتباط، خلاقیت و یادگیری را دارد.
در حال حاضر بارد قادر به درک زبان نیست و نمی توانید با زبان فارسی با آن ارتباط برقرار کنید.
بنا به گفته بسیاری گوگل در بازی هوش مصنوعی عقب است و پر کردن این فاصله در دنیایی که هر روز با شتاب بیشتری به سمت توسعه هوش مصنوعی میرود سخت به نظر میرسد.
می توانید از طریق آدرس زیر از بارد استفاده کنید:
https://bard.google.com
چرا Type-Safety در CLR مهم است؟
یکی از قابلیت های اصلی که Common Language Runtime در دات نت فراهم می کند Type-Safety است.
امنیت نوع یا Type-Safety تضمین میکند که متغیرها در خطوط برنامه دارای نوع متغیر همسان یا سازگار باهم باشند. در این حالت CLR در صورت عدم مطابقت بین نوع متغیرها از اجرای برنامه جلوگیری میکند تا با این روش درستی اجرای برنامه را تضمین کند.
امنیت نوع با جلوگیری از دسترسی غیرمجاز یا تغییر خانه های حافظه، به امنیت حافظه کمک میکند. در CLR، همه اشیاء به نوع خود مرتبط میشوند و در زمان اجرا صحت نوع چک میشود. این کار از خطاهای متداول برنامهنویسی مانند سرریز بافر، استثناء null و عدم تطابق نوع جلوگیری میکند. هر کدام از این موارد میتواند به آسیبپذیریهای امنیتی، کرشها یا رفتار غیرقابل پیشبینی ختم شود.
مثلا درحملات type confusion کد مخرب سعی میکند با بهرهبرداری از اشیاء با نوع ضعیف یا نادرست داده های برنامه را دستکاری کند و رفتار آن را تغییر دهد.
با اجرای صحت نوع در CLR امکان این نوع آسیبپذیریهایی در زبانهای دات نت کمتر میشود.
یکی از قابلیت های اصلی که Common Language Runtime در دات نت فراهم می کند Type-Safety است.
امنیت نوع یا Type-Safety تضمین میکند که متغیرها در خطوط برنامه دارای نوع متغیر همسان یا سازگار باهم باشند. در این حالت CLR در صورت عدم مطابقت بین نوع متغیرها از اجرای برنامه جلوگیری میکند تا با این روش درستی اجرای برنامه را تضمین کند.
امنیت نوع با جلوگیری از دسترسی غیرمجاز یا تغییر خانه های حافظه، به امنیت حافظه کمک میکند. در CLR، همه اشیاء به نوع خود مرتبط میشوند و در زمان اجرا صحت نوع چک میشود. این کار از خطاهای متداول برنامهنویسی مانند سرریز بافر، استثناء null و عدم تطابق نوع جلوگیری میکند. هر کدام از این موارد میتواند به آسیبپذیریهای امنیتی، کرشها یا رفتار غیرقابل پیشبینی ختم شود.
مثلا درحملات type confusion کد مخرب سعی میکند با بهرهبرداری از اشیاء با نوع ضعیف یا نادرست داده های برنامه را دستکاری کند و رفتار آن را تغییر دهد.
با اجرای صحت نوع در CLR امکان این نوع آسیبپذیریهایی در زبانهای دات نت کمتر میشود.
چرا به آن x86 میگویند؟
اصطلاح "x86" از روش نامگذاری استفاده شده برای میکروپرسسورهای اینتل بدست آمده است. میکروپرسسور اینتل 8086 در سال ۱۹۷۸ عرضه شد و اولین میکروپرسسور ۱۶ بیتی در معماری x86 اینتل بود. نسلهای بعدی پردازندهها، از جمله اینتل 80286 و اینتل 80386 و ... ، همچنان از روش نامگذاری "۸۶" استفاده میکردند.
با گذر زمان، اصطلاح "x86" به یک روش معمول برای اشاره به خانوادهای از پردازندهها که سازگار با اینتل 8086 اصلی بودند، تبدیل شد. هرچند که معماری از ۱۶ بیتی فراتر رفته و شامل نسخههای ۳۲ بیتی (IA-32) و ۶۴ بیتی (x86-64) شده است، اصطلاح "x86" به عنوان اختصاری برای این خانواده از پردازندهها و معماریهای مرتبط با آن همچنان به کار میرود.
اصطلاح "x86" اغلب به طور خاص به نسخه ۳۲ بیتی معماری x86 اشاره دارد. نسخه ۶۴ بیتی این معماری که با نام AMD64 توسط AMD معرفی شد و سپس توسط اینتل با نام Intel 64 پذیرفته شد، به طور معمول به عنوان "x86-64" یا "x64" شناخته میشود.
اصطلاح "x86" از روش نامگذاری استفاده شده برای میکروپرسسورهای اینتل بدست آمده است. میکروپرسسور اینتل 8086 در سال ۱۹۷۸ عرضه شد و اولین میکروپرسسور ۱۶ بیتی در معماری x86 اینتل بود. نسلهای بعدی پردازندهها، از جمله اینتل 80286 و اینتل 80386 و ... ، همچنان از روش نامگذاری "۸۶" استفاده میکردند.
با گذر زمان، اصطلاح "x86" به یک روش معمول برای اشاره به خانوادهای از پردازندهها که سازگار با اینتل 8086 اصلی بودند، تبدیل شد. هرچند که معماری از ۱۶ بیتی فراتر رفته و شامل نسخههای ۳۲ بیتی (IA-32) و ۶۴ بیتی (x86-64) شده است، اصطلاح "x86" به عنوان اختصاری برای این خانواده از پردازندهها و معماریهای مرتبط با آن همچنان به کار میرود.
اصطلاح "x86" اغلب به طور خاص به نسخه ۳۲ بیتی معماری x86 اشاره دارد. نسخه ۶۴ بیتی این معماری که با نام AMD64 توسط AMD معرفی شد و سپس توسط اینتل با نام Intel 64 پذیرفته شد، به طور معمول به عنوان "x86-64" یا "x64" شناخته میشود.
آدرس فایل در دات نت برای سازگاری با لینوکس و داکر
فریم ورک دات نت cross-platform است و می توانید سایت یا اپ خود را در لینوکس یا در داکر مبنتنی بر لینوکس اجرا کنید. نکته مهم توجه به آدرسی دهی فایلها است که بین ویندوز و لینوکس فرق دارد و می تواند بعد از انتشار روی سرور لینوکس برای شما دردسر ساز شود.
1- از
هیچوقت آدرس فایل ها را با
2- از آدرس دهی نسبی استفاده کنید:
موقعیت فایل را بر اساس محل قرار گرفتن اپلیکیشن مشخص کنید و از آدرس دهی مطلق که به درایو یا مسیر مشخصی روی سیستم عامل اشاره می کند استفاده نکنید. در
3- برای دسترسی به آدرس فولدرهای خاص از Enviroment Variables استفاده کنید:
با کمک Environment.SpecialFolder می توانید به مسیر فولدهایی
فریم ورک دات نت cross-platform است و می توانید سایت یا اپ خود را در لینوکس یا در داکر مبنتنی بر لینوکس اجرا کنید. نکته مهم توجه به آدرسی دهی فایلها است که بین ویندوز و لینوکس فرق دارد و می تواند بعد از انتشار روی سرور لینوکس برای شما دردسر ساز شود.
1- از
Path.Combine
استفاده کنید :هیچوقت آدرس فایل ها را با
+
ترکیب نکنید. آدرس دهی در ویندوز با \
و در لینوکس با /
انجام میشود و تابع Combine در فضای نامی System.IO
می تواند بر اساس سیستم عامل جاری جدا کننده درست را در مسیر فایل قرار دهد. 2- از آدرس دهی نسبی استفاده کنید:
موقعیت فایل را بر اساس محل قرار گرفتن اپلیکیشن مشخص کنید و از آدرس دهی مطلق که به درایو یا مسیر مشخصی روی سیستم عامل اشاره می کند استفاده نکنید. در
ASP.NET Core
می توانید از اینترفیس IWebHostEnvironment استفاده کنید.3- برای دسترسی به آدرس فولدرهای خاص از Enviroment Variables استفاده کنید:
با کمک Environment.SpecialFolder می توانید به مسیر فولدهایی
MyDocuments
یا ApplicationData
در سیستم عامل ویندوز و لینوکس دسترسی داشته باشید.
چرا از File-Scoped Namespace استفاده کنیم؟
از
با کمک این قابلیت می توانید فضای نامی را بدون
این قابلیت با حذف یک مرحله فاصله گذاری از نویز تصویری کدنویسی کم می کند و خواندن آن را ساده تر می کند.
بهتر است در کد نویسی از این قابلیت به صورت پیش فرض استفاده کنید و بعد از آپدیت به دات نت 6 کلاس های خود را به این حالت بروز رسانی کنید.
می توانید با Options در Visual Studio برای کلاسهای جدید گزینه پیش فرض را به File-Scoped تغییر دهید.
از
#C
نسخه 10 قابلیت تعریف فضای نامی در فایل اضافه شده است. با کمک این قابلیت می توانید فضای نامی را بدون
{ ... }
و فقط با نوشتن یک خط در بالای فایل تعریف کنید. این قابلیت با حذف یک مرحله فاصله گذاری از نویز تصویری کدنویسی کم می کند و خواندن آن را ساده تر می کند.
بهتر است در کد نویسی از این قابلیت به صورت پیش فرض استفاده کنید و بعد از آپدیت به دات نت 6 کلاس های خود را به این حالت بروز رسانی کنید.
می توانید با Options در Visual Studio برای کلاسهای جدید گزینه پیش فرض را به File-Scoped تغییر دهید.
قابلیت Alias any type در سی شارپ 12
قابلیت Alias یا قرار دادن اسم مستعار برای using ها از نسخه اول سی شارپ وجود داشته است. اما از نسخه 12 این قابلیت شامل Type ها هم میشود.
می توانید برای هر Type یک Alias تعریف کنید تا کد شما بیشتر بیانگر کاری باشد که انجام میدهد. مثلا اگر یک int در واقع شمارنده است یا یک String در واقع یک آدرس است می توانید با استفاده از using این موضوع را مشخص کنید.
#Build2023
قابلیت Alias یا قرار دادن اسم مستعار برای using ها از نسخه اول سی شارپ وجود داشته است. اما از نسخه 12 این قابلیت شامل Type ها هم میشود.
می توانید برای هر Type یک Alias تعریف کنید تا کد شما بیشتر بیانگر کاری باشد که انجام میدهد. مثلا اگر یک int در واقع شمارنده است یا یک String در واقع یک آدرس است می توانید با استفاده از using این موضوع را مشخص کنید.
#Build2023
قابلیت Collection Literals در سی شارپ 12
برای پر کردن ورودی کالکشن ها می توانید بجای استفاده از تایپ اصلی مانند:
در نسخه های قبلی
با قابلیت جدیدتر Collection Literals کد خوانا تر می شود و دیگر حتی نیاز به نوشتن عبارت new نیست.
#Build2023
برای پر کردن ورودی کالکشن ها می توانید بجای استفاده از تایپ اصلی مانند:
new List<int> {1,5,7}از عبارت
[1,5,7]
استفاده کنید.در نسخه های قبلی
#C
می توانستید از نوشتن تایپ صرف نظر کنید مثلا بنویسید:new() {1,5,7}و کامپایلر سی شارپ می توانست با دنبال کردن مسیر اجرا برنامه خودش تشخیص دهد که چه چیزی قرار است new شود. این قابلیت امکان می داد که کد راحت تر قابل تغییر باشد. مثلا اگر بعدا بجای List می خواستید از یک آرایه استفاده کنید لازم نبود هر جا از متد استفاده شده است تغییر کند.
با قابلیت جدیدتر Collection Literals کد خوانا تر می شود و دیگر حتی نیاز به نوشتن عبارت new نیست.
#Build2023
ویژگی deconstruct در
https://youtu.be/wk8z4TvL5ns
https://www.aparat.com/v/hZ1Ia
#C
میتواند زمانی استفاده شود که میخواهید اجزا یا پراپرتی های یک شی را درون متغیرهای جداگانه استخراج کنید.https://youtu.be/wk8z4TvL5ns
https://www.aparat.com/v/hZ1Ia
محبوبترین زبان های برنامه نویسی در نظر سنجی Stackoverflow 2023
جاوا و سی شارپ همچنان بالاتر از زبانهایی مانند Go و Rust و PHP قرار دارند.
محبوبترین زبان در بین توسعه دهندگان جونیور پایتون است.
بیشترین رشد در این آمار مربوط به زبان Lua میشود که نسبت به سال قبل 7 پله بالاتر آمده است.
#Stackoverflow2023
جاوا و سی شارپ همچنان بالاتر از زبانهایی مانند Go و Rust و PHP قرار دارند.
محبوبترین زبان در بین توسعه دهندگان جونیور پایتون است.
بیشترین رشد در این آمار مربوط به زبان Lua میشود که نسبت به سال قبل 7 پله بالاتر آمده است.
#Stackoverflow2023
از بین 57 هزار نفری که در این نظر سنجی شرکت کردند 19 درصد فریم ورک
فریم ورک ASP NET Core همچنان بالاتر از Spring و WordPress و Laravel قرار دارد.
فریم ورک Next.js نسبت به سال قبل 5 پله سعود کرده است.
#stackoverflow2023
ASP NET Core
را به عنوان فریم ورک وب محبوب خود انتخاب کرده اند.فریم ورک ASP NET Core همچنان بالاتر از Spring و WordPress و Laravel قرار دارد.
فریم ورک Next.js نسبت به سال قبل 5 پله سعود کرده است.
#stackoverflow2023
زبان های مورد تحسین و مطلوب
در نظر سنجی جدید بجای Wanted & Dreaded از مفهوم Admired و Desired استفاده شده است.
میزان علاقه افراد به استفاده از یک تکنولوژی پرسیده میشود(Desired) و با افرادی که از آن تکنولوژی در سال گذشته کار کرده اند و مایل هستند سال بعد هم با آن کار کنند (Admired)مقایسه میشود.
هر چقدر طول این خط کوتاهتر باشد نشان میدهد افرادی که با آن تکونولوژی کار کرده اند علاقه زیادی به استفاده از تکنولوژی در آینده ندارند. در واقع بیشتر Hype بوده تا اینکه در عمل مطلوب باشد.
تکنولوژی هایی که خط بلندتری دارند مانند
#stackoverflow2023
در نظر سنجی جدید بجای Wanted & Dreaded از مفهوم Admired و Desired استفاده شده است.
میزان علاقه افراد به استفاده از یک تکنولوژی پرسیده میشود(Desired) و با افرادی که از آن تکنولوژی در سال گذشته کار کرده اند و مایل هستند سال بعد هم با آن کار کنند (Admired)مقایسه میشود.
هر چقدر طول این خط کوتاهتر باشد نشان میدهد افرادی که با آن تکونولوژی کار کرده اند علاقه زیادی به استفاده از تکنولوژی در آینده ندارند. در واقع بیشتر Hype بوده تا اینکه در عمل مطلوب باشد.
تکنولوژی هایی که خط بلندتری دارند مانند
Rust
و #C
نشان می دهد که افراد پس از استفاده از آنها همچنان علاقمند به ادامه کار با آنها هستند و انتظارات آنها را برآورده کرده است.#stackoverflow2023
فروش ویژه تابستانه کدهک
با آغاز فصل تابستان می توانید به مدت 3 روز همه دوره های کدهک را با 25 درصد تخفیف تهیه کنید.
کد تخفیف: sum402
برای تهیه دوره ها می توانید به سایت کدهک سر بزنید.
https://codehaks.com/Shop
جهت پشتیبانی یا کسب اطلاعات بیشتر از طریق شماره 09380146555 یا آیدی @codehak در تلگرام تماس بگیرید.
با آغاز فصل تابستان می توانید به مدت 3 روز همه دوره های کدهک را با 25 درصد تخفیف تهیه کنید.
کد تخفیف: sum402
برای تهیه دوره ها می توانید به سایت کدهک سر بزنید.
https://codehaks.com/Shop
جهت پشتیبانی یا کسب اطلاعات بیشتر از طریق شماره 09380146555 یا آیدی @codehak در تلگرام تماس بگیرید.
Forwarded from کدهک
فصل گمشده در معماری تمیز
بررسی و مقایسه انواع روش های طراحی ساختار پروژه در دات نت
https://youtu.be/oP5w9eiPhEw
بررسی و مقایسه انواع روش های طراحی ساختار پروژه در دات نت
https://youtu.be/oP5w9eiPhEw
عبارت های لامبدا در سی شارپ متدهای بی نامی هستند که به جای delegate و Expression Tree قرار میگیرند و کد نویسی در سی شارپ را ساده تر می کنند.
https://youtu.be/ZqBT_kC7mOI
https://youtu.be/ZqBT_kC7mOI
بررسی ساختار درونی کالکشنها و ساخت یک کالکشن اختصاصی در دات نت.
https://www.aparat.com/v/Xr0OU
https://youtu.be/1oJ15J94dRg
https://www.aparat.com/v/Xr0OU
https://youtu.be/1oJ15J94dRg
حلقه foreach چطور آیتمهای یک آرایه را خوانش می کند؟
➡️ https://aparat.com/v/VJO6k
➡️ https://youtu.be/zmqwwDVe_10
➡️ https://aparat.com/v/VJO6k
➡️ https://youtu.be/zmqwwDVe_10
در این ویدیو به آموزش انواع کالکشن ها در دات نت می پردازیم. آرایه ها و لیست ها را با هم مقایسه می کنیم. می بینیم IEnumerable و IList و ICollection چه شباهت ها و تفاوت هایی دارند و کاربرد مناسب هر کدام چیست.
https://youtu.be/_s08TMRl4UM
https://youtu.be/_s08TMRl4UM
دوره رایگان آموزش مبانی
در این دوره به مباحث پایه ای فریم ورک
سپس کار با میان افزارها و نحوه عمل سرور Kestrel آموزش داده میشود و در ادامه نحوه کار با Configuration و Environment را بررسی می کنیم و در انتها به Logging و نحوه مدیریت خطا می پردازیم.
https://codehaks.com/Course/C101
ASP.NET Core
قبل از اینکه کار با MVC را شروع کنید لازم است درباره ساختار درونی فریم ورک ASP.NET Core
بدانید. در این دوره به مباحث پایه ای فریم ورک
ASP.NET Core
می پردازیم. از ساختار پروژه وب شروع می کنیم و به توضیح نحوه کار سیستم تزریق وابستگی می پردازیم. سپس کار با میان افزارها و نحوه عمل سرور Kestrel آموزش داده میشود و در ادامه نحوه کار با Configuration و Environment را بررسی می کنیم و در انتها به Logging و نحوه مدیریت خطا می پردازیم.
https://codehaks.com/Course/C101