#Quasar
#Vuejs
🔰Quasar
🔸 ویو جی اس یک لایبری برای ساخت رابط کاربری میباشد.
به خودیه خود، ویو جی اس UI Element اختصاصی ای که بتوانیم از آن استفاده کنیم ندارد.
به همین دلیل تعداد زیادی UI framework برای آن ساخته شده است تا از آنها استفاده کنیم.
🔹Quasar
🔸 کوییزار (kwei·zaar) یک Material Design 2 با پرفورمنس بالا که تمامی جوانب فرانت اند را پوشش میدهد برای ویو جی اس میباشد.
وبه کمک آن که تحت لایسنس MIT میباشد و و استفاده از آن ساده بوده و به نوعی مکمل ویو جی اس میباشد.
و میتوانید مجموعه ای از اپ های ریسپانسیو با حداقل کد و کانفیگوریشن تولید کنید.
داکیومنت کوییزار را در اینجا بررسی کنید.
مجموعه ای از UI Component ها و layout المنت ها به همراه helper ها.
🔸 برای استفاده از کوییزار سه روش وجود دارد.
▫️UMD / Standalone
در این روش با اضافه کردن استایل ها و اسکریپت های مورد نیاز از طریق CDN امکان استفاده خواهید داشت.
▫️Quasar CLI
نکته قوت این فریم تلقی میشود و همچنین توصیه میشود که از این روش از کوییزار استفاده کنید.
و از آن میتوانید برای ساخت
▪️ SPAs (single-page apps/websites)
▪️ SSRs (server-side rendered apps/websites)
▪️ PWAs (progressive web apps)
▪️ mobile apps (through Cordova)
▪️Electron apps
استفاده کنید.
و اخرین روش
▫️Vue CLI 3 plugin
که توضیحات آنرا در اینجا میتوانید بررسی کنید
🔹Bootstrapping
🔸 برای ساخت یک Quasar App به کمک Quasar CLI ابتدا باید از نصب بودن نود جی اس ورژن حداقل 8 و npm نسخه حداقل 5 بروی سیستمان مطمئن شوید.
مراحل نصب و استارت پروژه را در لینک قبلی میتوانید دنبال کنید.
🔹About Quasar
🔸 مقصود کلی از این فرم وورک مجموعه ای همه منظوره از کامپوننت ها برای ساختن اپ های مدرن از ساده تا پیشرفته میباشد.
تمامی این کامپوننت ها بروی ویو جی اس ساخته شده و امکان ساخت کامپوننت سفارشی نیز وجود دارد.
همچنین در هنگام توسعه و استفاده از این فریم اگر با مشکلی مواجه شدید سوالات خود را در این فروم و Discord میتوانید بپرسید یا پیدا کنید.
@fullstackDevs
#Vuejs
🔰Quasar
🔸 ویو جی اس یک لایبری برای ساخت رابط کاربری میباشد.
به خودیه خود، ویو جی اس UI Element اختصاصی ای که بتوانیم از آن استفاده کنیم ندارد.
به همین دلیل تعداد زیادی UI framework برای آن ساخته شده است تا از آنها استفاده کنیم.
🔹Quasar
🔸 کوییزار (kwei·zaar) یک Material Design 2 با پرفورمنس بالا که تمامی جوانب فرانت اند را پوشش میدهد برای ویو جی اس میباشد.
وبه کمک آن که تحت لایسنس MIT میباشد و و استفاده از آن ساده بوده و به نوعی مکمل ویو جی اس میباشد.
و میتوانید مجموعه ای از اپ های ریسپانسیو با حداقل کد و کانفیگوریشن تولید کنید.
داکیومنت کوییزار را در اینجا بررسی کنید.
مجموعه ای از UI Component ها و layout المنت ها به همراه helper ها.
🔸 برای استفاده از کوییزار سه روش وجود دارد.
▫️UMD / Standalone
در این روش با اضافه کردن استایل ها و اسکریپت های مورد نیاز از طریق CDN امکان استفاده خواهید داشت.
▫️Quasar CLI
نکته قوت این فریم تلقی میشود و همچنین توصیه میشود که از این روش از کوییزار استفاده کنید.
و از آن میتوانید برای ساخت
▪️ SPAs (single-page apps/websites)
▪️ SSRs (server-side rendered apps/websites)
▪️ PWAs (progressive web apps)
▪️ mobile apps (through Cordova)
▪️Electron apps
استفاده کنید.
و اخرین روش
▫️Vue CLI 3 plugin
که توضیحات آنرا در اینجا میتوانید بررسی کنید
🔹Bootstrapping
🔸 برای ساخت یک Quasar App به کمک Quasar CLI ابتدا باید از نصب بودن نود جی اس ورژن حداقل 8 و npm نسخه حداقل 5 بروی سیستمان مطمئن شوید.
مراحل نصب و استارت پروژه را در لینک قبلی میتوانید دنبال کنید.
🔹About Quasar
🔸 مقصود کلی از این فرم وورک مجموعه ای همه منظوره از کامپوننت ها برای ساختن اپ های مدرن از ساده تا پیشرفته میباشد.
تمامی این کامپوننت ها بروی ویو جی اس ساخته شده و امکان ساخت کامپوننت سفارشی نیز وجود دارد.
همچنین در هنگام توسعه و استفاده از این فریم اگر با مشکلی مواجه شدید سوالات خود را در این فروم و Discord میتوانید بپرسید یا پیدا کنید.
@fullstackDevs
Quasar Framework
Quasar Framework - Build high-performance VueJS user interfaces in record time
Developer-oriented, front-end framework with VueJS components for best-in-class high-performance, responsive websites, PWA, SSR, Mobile and Desktop apps, all from the same codebase. Sensible people choose Vue. Productive people choose Quasar. Be both.
#ElectronJs
فقط برای اطلاع دوستانی که با این چارچوب قدرتمند کار نمی کنند.
سادهتر از آن چیزی است که فکر میکنید
اگر می توانید یک وب سایت بسازید، پس می توانید یک برنامه ی دسکتاپی هم بسازید. الکترون چارچوبی برای ساخت برنامه های بومی با استفاده از فناوری هایی مثل جاوا اسکریپت، HTML و CSS است. بخش های دشوار توسط الکترون انجام می شوند، بنابراین شما می توانید بر روی مرکز برنامه تان تمرکز کنید.
🌀 برنامه دسک تاپ کراس پلت فرم با فناوری وب مانند Javascript ، HTML و Css بسازید از این چارچوب لذت ببرید :)
🔹با داشتن یک کد واحد برای همه سیستم عامل های بزرگ ، باعث صرفه جویی در وقت زیادی می شود و گزینه های بیشتری برای توسعه فراهم می کند.
🔸 از موتور کروم برای نمایش UI استفاده کنید
🔹با Angular یا React
www.electronjs.org
@fullStackDevs
فقط برای اطلاع دوستانی که با این چارچوب قدرتمند کار نمی کنند.
سادهتر از آن چیزی است که فکر میکنید
اگر می توانید یک وب سایت بسازید، پس می توانید یک برنامه ی دسکتاپی هم بسازید. الکترون چارچوبی برای ساخت برنامه های بومی با استفاده از فناوری هایی مثل جاوا اسکریپت، HTML و CSS است. بخش های دشوار توسط الکترون انجام می شوند، بنابراین شما می توانید بر روی مرکز برنامه تان تمرکز کنید.
🌀 برنامه دسک تاپ کراس پلت فرم با فناوری وب مانند Javascript ، HTML و Css بسازید از این چارچوب لذت ببرید :)
🔹با داشتن یک کد واحد برای همه سیستم عامل های بزرگ ، باعث صرفه جویی در وقت زیادی می شود و گزینه های بیشتری برای توسعه فراهم می کند.
🔸 از موتور کروم برای نمایش UI استفاده کنید
🔹با Angular یا React
www.electronjs.org
@fullStackDevs
#GoogleDocs
توی Google Docs به راحتی بدون نصب هیچ نرم افزاری صدای شما تبدیل به متن میشه؟
کافیه برید توی منوی tools و گزینه voice typing رو انتخاب کنید. از زبان فارسی هم پشتیبانی میکنه و میتونید زبان فارسی رو انتخاب کنید و با voice رکورد کردن مطالب که باید زمان بگذارید و تایپ کنید را در کسری از زمان تایپ شده داشته باشید.
شاید یک مقدار خطا هم داشته باشه که خب میشه اونا رو آخر کار اصلاح کرد
@fullStackDevs
توی Google Docs به راحتی بدون نصب هیچ نرم افزاری صدای شما تبدیل به متن میشه؟
کافیه برید توی منوی tools و گزینه voice typing رو انتخاب کنید. از زبان فارسی هم پشتیبانی میکنه و میتونید زبان فارسی رو انتخاب کنید و با voice رکورد کردن مطالب که باید زمان بگذارید و تایپ کنید را در کسری از زمان تایپ شده داشته باشید.
شاید یک مقدار خطا هم داشته باشه که خب میشه اونا رو آخر کار اصلاح کرد
@fullStackDevs
#Reactjs
#React17
#قسمت1
🔹بعد از انتشار نسخه 16 ری اکت و با اضافه شدن قابلیت Hooks بسیاری از توسعه دهنده های این کتابخانه به فکر بروزرسانی کدهایی که نوشته بودند، افتادند اگر چه که با کد های قدیمی هم اپلیکیشن هاشون کار میکرد ولی قابلیت Hooks و شخصی سازی و پرفورمنس فانکشنال کامپوننت ها (Functional Component ها ) اون ها رو برای بروزرسانی کد هاشون وسوسه میکرد .
🔸در یکی از صفحات داکیومنت ری اکت به مشکلاتی که کلاس کامپوننت ها (Class Component) داشتند اشاره شده که پیشنهاد میکنم از این لینک حتما مطالعه کنید .
📎 https://reactjs.org/docs/hooks-intro.html
🔹خیلی از مواردی که اون زمان برای توسعه دهنده های ری اکت اتفاق افتاده بود مثل گمراه شدن در استفاده از (this) یا لفظی که خود توسعه دهندگان ری اکت بهش اشاره کردند
(Classes confuse both people and machines)❕
🔸که کلاس کامپوننت ها هم توسعه دهنده ها و هم ماشین ها رو دچار گمراهی کرده بودند این ذهنیت رو در توسعه دهنده های ری اکت جا انداخت که اون ها علاوه بر اینکه میتونن نقش خیلی جدی تو فیچر های آینده ری اکت یا حل مشکلاتش داشته باشند ، میتونند همه تقصیر ها رو هم گردن ری اکت بندازن!
🔹حدودا 5 ماه از نسخه بروز شده ری اکت یعنی ری اکت 17 میگذره ، ری اکت همونجوری که در داکیومنت رسمی خودش گفته بود هیچ ویژگی جدیدی به ری اکت اضافه نکرده و بعد از دو و نیم سال آب پاکی ریخته رو دست توسعه دهندگانش!
البته کمی خواست در نسخه 17 ری اکت اونارو راضی نگه داره به طور مثال دیگ با قابلیت جدید JSX Transform نیاز نبود شما ابتدای هر خط ری اکت رو ایمپورت کنی و یا دیگ نیاز نبود مثل تغییر از ری اکت 15 به 16 کل کامپوننت هاتو فانکشنال کنی میتونستی دو نسخه از ری اکت همزمان روی یه اپلیکیشن داشته باشی و یکیش رو به حالت Lazy Load در اپلیکیشنت داشته باشی ! اما خود توسعه دهنده های ری اکت هم متوجه این موضوع شدند که بعد دو و نیم سال با توجه به اون انتشار طوفانی نسخه 16 ، طرفداران ری اکت نیاز به حداقل یه فیچر جذاب دارند و اونارو نمیشه با این فیچر هایی که ری اکت 17 داره راضی نگه داشت !
🔹بنظر شخصی من ری اکت در رقابت با فریم ورک هاش (در عین دوستی خیلی نزدیکی که با هم دارند ) داشت خیلی عقب میوفتاد ! قابلیتی مشابه JSX Transform خیلی وقت بود در Nextjs وجود داشت ! خیلیا ری اکت رو در نسخه 17 محکوم به کپی برداری از فریم ورکش کردند و بیشتر از اینکه دنبال فیچر جدید باشه سعی کرده بود فیچر های فریم ورک هاش رو اضافه کنه به خودش ! ولی خب اینا همه تنها دلیل کوچ توسعه دهنده های ری اکت به سمت نکست نبود ! اونا دغدغه های مهم تری داشتند که تو ری اکت نتونستند راحت بهش برسند ! خیلی از توسعه دهنده های ری اکت به دلیل اینکه تازه کار بودند اطلاعات خوبی از وب پک نداشتند یا کد های بهینه ای نمیزدند ، با Code Spiliting آشنا نبودند و فکر میکردند که سئو سایت های ری اکت یک امتیاز منفی براشون در رقابت با رقیبانشون بشمار میره ، البته این موارد همه ی دلایلی که اونارو مجبور به کوچ به نکست کرد نیست اما شاید میتونم بگم اگر یه قابلیت (SSR) به ری اکت اضافه میشد خیلی از این تبدیل های پر هزینه انجام نمیشد ! خیلی تونستن این کار رو با اضافه کردن Express js و به شکل دستی انجام بدن و خیلی اپلیکیشن های جالب و جذابی شد ولی متاسفانه بسیاری از ساید افکت هایی که ایجاد میشد و دانش متوسط تیم های توسعه شاید باعث میشد عطای این کار رو به لقاش ببخشند !
🔹 بالاخره بعد این مقدمه طولانی میرسیم سر اصل مطلب و اون هدیه کریسمسی تیم توسعه ری اکت به توسعه دهندگانشه ! و اون هم چیزی نیست جز Server Components ❕❕
ادامه در قسمت بعد...
@fullStackDevs
#React17
#قسمت1
🔹بعد از انتشار نسخه 16 ری اکت و با اضافه شدن قابلیت Hooks بسیاری از توسعه دهنده های این کتابخانه به فکر بروزرسانی کدهایی که نوشته بودند، افتادند اگر چه که با کد های قدیمی هم اپلیکیشن هاشون کار میکرد ولی قابلیت Hooks و شخصی سازی و پرفورمنس فانکشنال کامپوننت ها (Functional Component ها ) اون ها رو برای بروزرسانی کد هاشون وسوسه میکرد .
🔸در یکی از صفحات داکیومنت ری اکت به مشکلاتی که کلاس کامپوننت ها (Class Component) داشتند اشاره شده که پیشنهاد میکنم از این لینک حتما مطالعه کنید .
📎 https://reactjs.org/docs/hooks-intro.html
🔹خیلی از مواردی که اون زمان برای توسعه دهنده های ری اکت اتفاق افتاده بود مثل گمراه شدن در استفاده از (this) یا لفظی که خود توسعه دهندگان ری اکت بهش اشاره کردند
(Classes confuse both people and machines)❕
🔸که کلاس کامپوننت ها هم توسعه دهنده ها و هم ماشین ها رو دچار گمراهی کرده بودند این ذهنیت رو در توسعه دهنده های ری اکت جا انداخت که اون ها علاوه بر اینکه میتونن نقش خیلی جدی تو فیچر های آینده ری اکت یا حل مشکلاتش داشته باشند ، میتونند همه تقصیر ها رو هم گردن ری اکت بندازن!
🔹حدودا 5 ماه از نسخه بروز شده ری اکت یعنی ری اکت 17 میگذره ، ری اکت همونجوری که در داکیومنت رسمی خودش گفته بود هیچ ویژگی جدیدی به ری اکت اضافه نکرده و بعد از دو و نیم سال آب پاکی ریخته رو دست توسعه دهندگانش!
البته کمی خواست در نسخه 17 ری اکت اونارو راضی نگه داره به طور مثال دیگ با قابلیت جدید JSX Transform نیاز نبود شما ابتدای هر خط ری اکت رو ایمپورت کنی و یا دیگ نیاز نبود مثل تغییر از ری اکت 15 به 16 کل کامپوننت هاتو فانکشنال کنی میتونستی دو نسخه از ری اکت همزمان روی یه اپلیکیشن داشته باشی و یکیش رو به حالت Lazy Load در اپلیکیشنت داشته باشی ! اما خود توسعه دهنده های ری اکت هم متوجه این موضوع شدند که بعد دو و نیم سال با توجه به اون انتشار طوفانی نسخه 16 ، طرفداران ری اکت نیاز به حداقل یه فیچر جذاب دارند و اونارو نمیشه با این فیچر هایی که ری اکت 17 داره راضی نگه داشت !
🔹بنظر شخصی من ری اکت در رقابت با فریم ورک هاش (در عین دوستی خیلی نزدیکی که با هم دارند ) داشت خیلی عقب میوفتاد ! قابلیتی مشابه JSX Transform خیلی وقت بود در Nextjs وجود داشت ! خیلیا ری اکت رو در نسخه 17 محکوم به کپی برداری از فریم ورکش کردند و بیشتر از اینکه دنبال فیچر جدید باشه سعی کرده بود فیچر های فریم ورک هاش رو اضافه کنه به خودش ! ولی خب اینا همه تنها دلیل کوچ توسعه دهنده های ری اکت به سمت نکست نبود ! اونا دغدغه های مهم تری داشتند که تو ری اکت نتونستند راحت بهش برسند ! خیلی از توسعه دهنده های ری اکت به دلیل اینکه تازه کار بودند اطلاعات خوبی از وب پک نداشتند یا کد های بهینه ای نمیزدند ، با Code Spiliting آشنا نبودند و فکر میکردند که سئو سایت های ری اکت یک امتیاز منفی براشون در رقابت با رقیبانشون بشمار میره ، البته این موارد همه ی دلایلی که اونارو مجبور به کوچ به نکست کرد نیست اما شاید میتونم بگم اگر یه قابلیت (SSR) به ری اکت اضافه میشد خیلی از این تبدیل های پر هزینه انجام نمیشد ! خیلی تونستن این کار رو با اضافه کردن Express js و به شکل دستی انجام بدن و خیلی اپلیکیشن های جالب و جذابی شد ولی متاسفانه بسیاری از ساید افکت هایی که ایجاد میشد و دانش متوسط تیم های توسعه شاید باعث میشد عطای این کار رو به لقاش ببخشند !
🔹 بالاخره بعد این مقدمه طولانی میرسیم سر اصل مطلب و اون هدیه کریسمسی تیم توسعه ری اکت به توسعه دهندگانشه ! و اون هم چیزی نیست جز Server Components ❕❕
ادامه در قسمت بعد...
@fullStackDevs
نت فریدمن، مدیرعامل #گیتهاب خبر داده که دسترسی ایرانیان به این خونه مهم برنامهنویسان برمیگرده.
دلیلش این بود که یه کمپانی اروپایی، یکی از کارمنداش میره ایران. گیت هاب رو باز میکنه و کل اکانت کل کمپانی ساسپند میشه. بعد طرف توییت میکنه آبرو گیت هاب رو میبره میگه چرا کل بیزنس رو داون کردید. طرف بیزنس من اتحادیه اروپا بوده. وگرنه صدای مارو کسی به این زودی نمیشنید.
ولی مدیرعامل گیتهاب گفته خیلی وقته در پی مجوز هستیم.
@fullStackDevs
دلیلش این بود که یه کمپانی اروپایی، یکی از کارمنداش میره ایران. گیت هاب رو باز میکنه و کل اکانت کل کمپانی ساسپند میشه. بعد طرف توییت میکنه آبرو گیت هاب رو میبره میگه چرا کل بیزنس رو داون کردید. طرف بیزنس من اتحادیه اروپا بوده. وگرنه صدای مارو کسی به این زودی نمیشنید.
ولی مدیرعامل گیتهاب گفته خیلی وقته در پی مجوز هستیم.
@fullStackDevs
توییت اسکات هنسلمن برای موضوع دسترسی ایرانیان به گیت هاب به زبان فارسی خیلی جالب بود.
@fullStackDevs
@fullStackDevs
#جاوا_اسکریپت
با استفاده از متد console.table
میتونید آرایهای آبجکت ها رو در کنسول به جدول تبدیل کنید.
@fullStackDevs
با استفاده از متد console.table
میتونید آرایهای آبجکت ها رو در کنسول به جدول تبدیل کنید.
@fullStackDevs
#ASPNet_502
#Introduction
نسخه های NET 5.0.2 و .NET SDK 5.0.102 دیروز 12 January منتشر شد و برای بارگیری در دسترس هستند. آخرین نسخه 5.0 همیشه در نسخه های .NET 5.0 ذکر شده است.
1- شامل .NET Runtime و ASP.NET Core Runtime است
2- برای میزبانی برنامه های مستقل در سرورهای ویندوز. شامل ماژول اصلی ASP.NET برای IIS است و می تواند بدون نصب .NET Runtime به صورت جداگانه بر روی سرورها نصب شود.
دات نت اس دی کا (.NET SDK ) شامل یک NET Runtime به روز شده است. هنگام نصب SDK نیازی به بارگیری بسته های Runtime یا ASP.NET Core نیست. ادامه مطلب
این نسخه دارای رفع مشکلات امنیتی و غیر امنیتی است.
@fullStackDevs
#Introduction
نسخه های NET 5.0.2 و .NET SDK 5.0.102 دیروز 12 January منتشر شد و برای بارگیری در دسترس هستند. آخرین نسخه 5.0 همیشه در نسخه های .NET 5.0 ذکر شده است.
1- شامل .NET Runtime و ASP.NET Core Runtime است
2- برای میزبانی برنامه های مستقل در سرورهای ویندوز. شامل ماژول اصلی ASP.NET برای IIS است و می تواند بدون نصب .NET Runtime به صورت جداگانه بر روی سرورها نصب شود.
دات نت اس دی کا (.NET SDK ) شامل یک NET Runtime به روز شده است. هنگام نصب SDK نیازی به بارگیری بسته های Runtime یا ASP.NET Core نیست. ادامه مطلب
این نسخه دارای رفع مشکلات امنیتی و غیر امنیتی است.
@fullStackDevs
#cSharp9
اعمال واژههای کلیدی جدید and، or و not به سایر نوعها نیز وجود دارند
🔹 تا اینجا مثالهایی را که بررسی کردیم، در مورد بررسی نوع اشیاء بود. اما میتوان این واژههای کلیدی جدید در C# 9.0 را به هر نوع ممکنی نیز اعمال کرد. برای نمونه، مثال سادهی زیر را که در مورد بررسی اعداد است، درنظر بگیرید:
🔸یک مثال دیگر: متد زیر را در نظربگیرید که با استفاده از && و || متداول #C نوشته شدهاست:
اعمال واژههای کلیدی جدید and، or و not به سایر نوعها نیز وجود دارند
🔹 تا اینجا مثالهایی را که بررسی کردیم، در مورد بررسی نوع اشیاء بود. اما میتوان این واژههای کلیدی جدید در C# 9.0 را به هر نوع ممکنی نیز اعمال کرد. برای نمونه، مثال سادهی زیر را که در مورد بررسی اعداد است، درنظر بگیرید:
var number = new Random().Next(1, 10);✔️اکنون در C# 9.0 و با استفاده از امکانات جدید pattern matching آن میتوان شرط متداول فوق را به صورت زیر ساده کرد:
if (number > 2 && number < 8)
{
// to do
}
if (number is > 2 and < 8)در اینجا تنها یکبار نیاز به ذکر number است و از واژههای کلیدی is و and استفاده شدهاست.
{
// to do
}
🔸یک مثال دیگر: متد زیر را در نظربگیرید که با استفاده از && و || متداول #C نوشته شدهاست:
public static bool IsLetterOrSeparator(char c) =>✔️روش ارائهی C# 9.0 ای آن به صورت زیر است:
(c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || c == '.' || c == ',';
public static bool IsLetterOrSeparator(char c) =>@fullStackDevs
c is (>= 'a' and <= 'z') or (>= 'A' and <= 'Z') or '.' or ',';
#Reactjs
#React17
قسمت اول
#قسمت2
🔹بالخره بعد این مقدمه طولانی میرسیم سر اصل مطلب و اون هدیه کریسمسی تیم توسعه ری اکت به توسعه دهندگانشه ! و اون هم چیزی نیست جز Server Components !!
تیم توسعه ری اکت بعد از انتشار نسخه 17 و انتقاداتی که بهش وارد شد ، برگ آخرش رو برای روز های پایانی سال 2020 رو کرد !
و حالا این قابلیت چیه و به چه کاری میاد ⁉️
🔸اول از همه این مورد رو بدونید که این قابلیت در حال توسعه و تحقیق هست و هنوز به طور رسمی انتشار ندادنش و فعلا تنها چیزی که ازش داریم یه ویدیو و یه مخزن کد (ریپازیتوری) هست که پیشنهاد میکنم حتما ازش کلون بگیرید و با شکل و شمایل اتفاقاتی که داخلش میوفته آشنا بشید .
https://github.com/reactjs/server-components-demo
https://youtu.be/TQQPAU21ZUw
🔹این قابلیت به طور خلاصه RSC یا React Server Components نام داره ، در ویدیو معرفی که داخل سایت داکیومنت ری اکت هم هست ، یک کامپوننت به طور دمو ساخته شده و موارد و اتفاقات این ویژگی رو در اون بررسی میکنه ، پیشنهاد میکنم حتما اون ویدیو رو از دست ندین !
❇️ به طور خلاصه مواردی که این قابلیت قراره به ری اکت اضافه کنه این موارده :
🔹اجرای RSC فقط بروی سرور بدون بانل سایز ! (باندل سایز 0 ، دقیقا مشکلی که خیلیا با ری اکت داشتند باندل سایز های حجیم بود که باعث کند شدن اون کامپوننت و در نهایت کند شدن اپلیکیشنشون میشد )
🔹شما با RSC میتوانید مستقیما به دیتا های سمت سرور دسترسی داشته باشید به این شکل که شما میتونین مستقیما روی دیتابیس کوئوری بزنید یا با میکروسرویس ها یا فایل سیستم های روی سرورتون دسترسی داشته باشید ( فقط میتونم بگم فوق العادست ! )
🔹با RSC شما میتونین تعیین کنین که کدوم کامپوننت سمت کاربر رندر بشند و کاربر فقط اون مقدار از کدی که میخواد و مورد نیازشه رو فقط مشاهده کنه ( دقیقا مشابه قابلیت های Code Spiliting و Lazy loading که ری اکت در داکیومنتش بررسی کرده بود اما این بار سمت سرور (مثل نکست ) که خیلیا ازش استفاده میکردند )
🔹استیت های شما با ریلود یا ری رندر شدن کامپوننت های سمت سرور یا RSC تون از بین نمیرن و تخریب نمیشن !
🔹کسایی که از React Lazy استفاده میکردند همزمان با اون از قابلیت به نام Suspense استفاده میکردند به این نحو که در هر حال تا زمانی که اون کامپوننت لود بشه یا حتی اگر لود نشه و خطا بخوره اون Suspense کال میشه و شما میتونین اونرو برای خودتون شخصی سازی کنین یا مثلا میتونستین لودینگ برای کامپوننتون بزارین ! و حالا این قابلیت در RSC ها هم وجود داره و اون ها به شکل واحد های استریم مانند به UI شما تزریق میشن این قابلیت میتونه به توسعه دهنده های ری اکت کمک کنه اونا تیکه تیکه به یوزر دیتا رو نشون بدن تا پرفورمنس اپلیکیشن بالاتر بره ! همه این ها با قابلیتی هم اسم و مشابه Suspense انجام میگیره !
🔹توسعه دهنده های ری اکت میتونن کد هاشونو بین سمت سرور و سمت کاربر منتشر کنند به این نحو که شمه میتونین یه کامپوننت که برای نشون دادن یه متن ثابت یا استاتیک استفاده میشه رو سمت سرور بسازید بعد اون رو سمت کاربر داینامیک کنین اینجوری دیگ تنها زمانی که این وسط تلف میشه داینامیک شدن کامپوننته نه ساختنش ! و این میتونه کولاک کنه !
▪️Zero-Bundle-Size Components
🔸اتفاقی که تا اینجا و تا همین زمانی که من برای شما مینویسم تو حوزه توسعه اپ های ری اکتی میوفتاد این بود که ما از یه سری پکیج ها استفاده میکردیم به طور مثال از Jalali Moment یا Moment برای تبدیل تاریخ هامون استفاده میکردیم یا از sanitize-html برای تمیز شدن کد های html از ckeditor یا ما بقی ادیتور ها استفاده میکردیم یا حتی خیلی از پکیج هایی که کار رو برامون راحت میکردند ولی خب همونجوری که میدونین همه این پکیج ها یک فضایی رو اشغال میکنن و زمانی که با gzip اون ها رو کامپکت میکردیم و webPack هم اون ها رو باندل میکرد به یک فضای اشغال شده ای میرسیدیم که بهش باندل سایز میگفتیم ! خب فرض کنین یه کامپوننت دارین که از هیچ کدوم از این پکیج ها استفاده نکرده بود ولی خب چون این پکیج نصب شده بود و ایمپورت شده بود باندل سایز داشت ! به طور مثال
#React17
قسمت اول
#قسمت2
🔹بالخره بعد این مقدمه طولانی میرسیم سر اصل مطلب و اون هدیه کریسمسی تیم توسعه ری اکت به توسعه دهندگانشه ! و اون هم چیزی نیست جز Server Components !!
تیم توسعه ری اکت بعد از انتشار نسخه 17 و انتقاداتی که بهش وارد شد ، برگ آخرش رو برای روز های پایانی سال 2020 رو کرد !
و حالا این قابلیت چیه و به چه کاری میاد ⁉️
🔸اول از همه این مورد رو بدونید که این قابلیت در حال توسعه و تحقیق هست و هنوز به طور رسمی انتشار ندادنش و فعلا تنها چیزی که ازش داریم یه ویدیو و یه مخزن کد (ریپازیتوری) هست که پیشنهاد میکنم حتما ازش کلون بگیرید و با شکل و شمایل اتفاقاتی که داخلش میوفته آشنا بشید .
https://github.com/reactjs/server-components-demo
https://youtu.be/TQQPAU21ZUw
🔹این قابلیت به طور خلاصه RSC یا React Server Components نام داره ، در ویدیو معرفی که داخل سایت داکیومنت ری اکت هم هست ، یک کامپوننت به طور دمو ساخته شده و موارد و اتفاقات این ویژگی رو در اون بررسی میکنه ، پیشنهاد میکنم حتما اون ویدیو رو از دست ندین !
❇️ به طور خلاصه مواردی که این قابلیت قراره به ری اکت اضافه کنه این موارده :
🔹اجرای RSC فقط بروی سرور بدون بانل سایز ! (باندل سایز 0 ، دقیقا مشکلی که خیلیا با ری اکت داشتند باندل سایز های حجیم بود که باعث کند شدن اون کامپوننت و در نهایت کند شدن اپلیکیشنشون میشد )
🔹شما با RSC میتوانید مستقیما به دیتا های سمت سرور دسترسی داشته باشید به این شکل که شما میتونین مستقیما روی دیتابیس کوئوری بزنید یا با میکروسرویس ها یا فایل سیستم های روی سرورتون دسترسی داشته باشید ( فقط میتونم بگم فوق العادست ! )
🔹با RSC شما میتونین تعیین کنین که کدوم کامپوننت سمت کاربر رندر بشند و کاربر فقط اون مقدار از کدی که میخواد و مورد نیازشه رو فقط مشاهده کنه ( دقیقا مشابه قابلیت های Code Spiliting و Lazy loading که ری اکت در داکیومنتش بررسی کرده بود اما این بار سمت سرور (مثل نکست ) که خیلیا ازش استفاده میکردند )
🔹استیت های شما با ریلود یا ری رندر شدن کامپوننت های سمت سرور یا RSC تون از بین نمیرن و تخریب نمیشن !
🔹کسایی که از React Lazy استفاده میکردند همزمان با اون از قابلیت به نام Suspense استفاده میکردند به این نحو که در هر حال تا زمانی که اون کامپوننت لود بشه یا حتی اگر لود نشه و خطا بخوره اون Suspense کال میشه و شما میتونین اونرو برای خودتون شخصی سازی کنین یا مثلا میتونستین لودینگ برای کامپوننتون بزارین ! و حالا این قابلیت در RSC ها هم وجود داره و اون ها به شکل واحد های استریم مانند به UI شما تزریق میشن این قابلیت میتونه به توسعه دهنده های ری اکت کمک کنه اونا تیکه تیکه به یوزر دیتا رو نشون بدن تا پرفورمنس اپلیکیشن بالاتر بره ! همه این ها با قابلیتی هم اسم و مشابه Suspense انجام میگیره !
🔹توسعه دهنده های ری اکت میتونن کد هاشونو بین سمت سرور و سمت کاربر منتشر کنند به این نحو که شمه میتونین یه کامپوننت که برای نشون دادن یه متن ثابت یا استاتیک استفاده میشه رو سمت سرور بسازید بعد اون رو سمت کاربر داینامیک کنین اینجوری دیگ تنها زمانی که این وسط تلف میشه داینامیک شدن کامپوننته نه ساختنش ! و این میتونه کولاک کنه !
▪️Zero-Bundle-Size Components
🔸اتفاقی که تا اینجا و تا همین زمانی که من برای شما مینویسم تو حوزه توسعه اپ های ری اکتی میوفتاد این بود که ما از یه سری پکیج ها استفاده میکردیم به طور مثال از Jalali Moment یا Moment برای تبدیل تاریخ هامون استفاده میکردیم یا از sanitize-html برای تمیز شدن کد های html از ckeditor یا ما بقی ادیتور ها استفاده میکردیم یا حتی خیلی از پکیج هایی که کار رو برامون راحت میکردند ولی خب همونجوری که میدونین همه این پکیج ها یک فضایی رو اشغال میکنن و زمانی که با gzip اون ها رو کامپکت میکردیم و webPack هم اون ها رو باندل میکرد به یک فضای اشغال شده ای میرسیدیم که بهش باندل سایز میگفتیم ! خب فرض کنین یه کامپوننت دارین که از هیچ کدوم از این پکیج ها استفاده نکرده بود ولی خب چون این پکیج نصب شده بود و ایمپورت شده بود باندل سایز داشت ! به طور مثال
import Momentfrom 'moment'; // 35.9K (11.2K gzipped)@fullStackDevs
import sanitizeHtml from 'sanitize-html'; // 206K (63.3K gzipped)
function Calender({text}) {
// some code for date converting and use sanitizeHtml
// for cleaning Html From Ckeditor markups !
}
Telegram
Web Devs
#Reactjs
#React17
#قسمت1
🔹بعد از انتشار نسخه 16 ری اکت و با اضافه شدن قابلیت Hooks بسیاری از توسعه دهنده های این کتابخانه به فکر بروزرسانی کدهایی که نوشته بودند، افتادند اگر چه که با کد های قدیمی هم اپلیکیشن هاشون کار میکرد ولی قابلیت Hooks و شخصی سازی…
#React17
#قسمت1
🔹بعد از انتشار نسخه 16 ری اکت و با اضافه شدن قابلیت Hooks بسیاری از توسعه دهنده های این کتابخانه به فکر بروزرسانی کدهایی که نوشته بودند، افتادند اگر چه که با کد های قدیمی هم اپلیکیشن هاشون کار میکرد ولی قابلیت Hooks و شخصی سازی…
#ادامه - پست قبل
🔹 حالا میخواین بدونید بعد این قابلیت چه اتفاقی میوفته ؟ این شکلی میشه !
البته فعلن باتوجه به اعلام تیم ری اکت منتظر بعد کریسمس باید باشیم و ببینیم که این فیچر که فعلن در حالت توسعه و تحقیق تیم ری اکت هست کی قراره ریلیز بشه!
💎ممنون از وقتی که قرار دادین و این مقاله رو مطالعه کردین اگر این مقاله رو دوست داشتین حتما برای دوستانتون بفرستین تا بتونن از اتفاقاتی که در حوزه ری اکت قراره بیوفته مطلع بشن !✌🏻
@fullStackDevs
🔹 حالا میخواین بدونید بعد این قابلیت چه اتفاقی میوفته ؟ این شکلی میشه !
import Momentfrom 'moment'; // Zero bundle size❇️ بله دقیقا چیزی که انتظار داشتیم ! پکیج های ما دیگ سمت سرور باندل سایزی رو به اپلیکیشن ما تحمیل نمیکنند و این فیچر به نظر میتونه یکی از انقلابی ترین قابلیت های ری اکت بین تمامی نسخه هایی باشه که تا الان ریلیز کرده !!!
import sanitizeHtml from 'sanitize-html'; // Zero bundle size
function Calender({text}) {
// some code for date converting and use sanitizeHtml
// for cleaning Html From Ckeditor markups !
}
البته فعلن باتوجه به اعلام تیم ری اکت منتظر بعد کریسمس باید باشیم و ببینیم که این فیچر که فعلن در حالت توسعه و تحقیق تیم ری اکت هست کی قراره ریلیز بشه!
💎ممنون از وقتی که قرار دادین و این مقاله رو مطالعه کردین اگر این مقاله رو دوست داشتین حتما برای دوستانتون بفرستین تا بتونن از اتفاقاتی که در حوزه ری اکت قراره بیوفته مطلع بشن !✌🏻
@fullStackDevs
Telegram
Web Devs
#Reactjs
#React17
#قسمت2
🔹بالخره بعد این مقدمه طولانی میرسیم سر اصل مطلب و اون هدیه کریسمسی تیم توسعه ری اکت به توسعه دهندگانشه ! و اون هم چیزی نیست جز Server Components !!
تیم توسعه ری اکت بعد از انتشار نسخه 17 و انتقاداتی که بهش وارد شد ، برگ آخرش رو…
#React17
#قسمت2
🔹بالخره بعد این مقدمه طولانی میرسیم سر اصل مطلب و اون هدیه کریسمسی تیم توسعه ری اکت به توسعه دهندگانشه ! و اون هم چیزی نیست جز Server Components !!
تیم توسعه ری اکت بعد از انتشار نسخه 17 و انتقاداتی که بهش وارد شد ، برگ آخرش رو…
#Indexer
#Params
#cSharp
🔰Indexer & Params IN C#
🔸ایندکسر ها در سی شارپ این اجازه را به اشیاء کلاس ها و struct ها میدهند تا مانند آرایه ها index گذاری شوند .
🔹از کاربردهای مهمی که میتوان از indexer ها استفاده کرد. encapsulate کردن کالکشن و یا یک آرایه داخلی در درون یک شء میباشد.
🔰Prams
🔸در c# هنگامی که پارامتر یک متد تعداد نامشخصی آرگومان (از یک نوع تایپ) دارد از کلمه کلیدی params برای تعریف آن پارامتر استفاده میکنیم. کامپایلر با params مانند یک temporary array برخورد میکند و از آن برای دریافت پارامترهای پاس داده شده
توسط caller استفاده میکند.
❇️ در ادامه تکنیکی را معرفی میکنیم که به عنوان یک C# Developer خوب است بدانید.
🔹Indexers can use params
🔸همه ما روش معقول و معمول استفاده از ایندکسر ها را میدانیم و مثال های فراوانی که از کاربردهای آن ارائه شده قالبا و تمام به یک شکل میباشد
در این پست، کاربردی جالب و ترکیبی از ایندکسر و params را معرفی میکنیم که امیدواریم مفید واقع شود.
▪️تعریف یک ایندکسر :
و ایندکسر خود را بدین شکل بنویسیم
🔸همچنین میتوانید در یک کلاس از هر دو شکل تعریف ایندکسر در کنار هم استفاده کنید و بسته به تعداد arg های پاس داده شده خروجی متفاوتی دریافت میکنید.
مشاهده نمونه سورس.(حتما بررسی کنید😉)
@fullStackDevs
#Params
#cSharp
🔰Indexer & Params IN C#
🔸ایندکسر ها در سی شارپ این اجازه را به اشیاء کلاس ها و struct ها میدهند تا مانند آرایه ها index گذاری شوند .
🔹از کاربردهای مهمی که میتوان از indexer ها استفاده کرد. encapsulate کردن کالکشن و یا یک آرایه داخلی در درون یک شء میباشد.
🔰Prams
🔸در c# هنگامی که پارامتر یک متد تعداد نامشخصی آرگومان (از یک نوع تایپ) دارد از کلمه کلیدی params برای تعریف آن پارامتر استفاده میکنیم. کامپایلر با params مانند یک temporary array برخورد میکند و از آن برای دریافت پارامترهای پاس داده شده
توسط caller استفاده میکند.
❇️ در ادامه تکنیکی را معرفی میکنیم که به عنوان یک C# Developer خوب است بدانید.
🔹Indexers can use params
🔸همه ما روش معقول و معمول استفاده از ایندکسر ها را میدانیم و مثال های فراوانی که از کاربردهای آن ارائه شده قالبا و تمام به یک شکل میباشد
در این پست، کاربردی جالب و ترکیبی از ایندکسر و params را معرفی میکنیم که امیدواریم مفید واقع شود.
▪️تعریف یک ایندکسر :
public string this[string key] {🔹اما ایا میدانید می توانیم از params هم در هنگام تعریف ایندکسر استفاده کنیم ؟
get { return internalDictionary[key]; }
}
و ایندکسر خود را بدین شکل بنویسیم
public IEnumerable<string> this[params string[] keys] {
get { return keys.Select(key => internalDictionary[key]).AsEnumerable(); }
}
🔸همچنین میتوانید در یک کلاس از هر دو شکل تعریف ایندکسر در کنار هم استفاده کنید و بسته به تعداد arg های پاس داده شده خروجی متفاوتی دریافت میکنید.
مشاهده نمونه سورس.(حتما بررسی کنید😉)
@fullStackDevs
GitHub
fullStackDevsGroup/IndexerAndParams
Contribute to fullStackDevsGroup/IndexerAndParams development by creating an account on GitHub.
#Lighthouse
#GoogleTool
⚙️ ابزار Google Lighthouse (فانوس دریایی گوگل)
🔻موبایل پسند بودن سایت و سرعت آن، دو تا از مهمترین پارامترهای سایت هستند که سئوکاران، توسعه دهندگان و صاحبین سایت ها می بایست به آنها توجه ویژه ای کنند.
اندازه گیری سرعت سایت همواره کمی مبهم بوده و اغلب ابزارهایی که در اینترنت برای تست این پارامتر وجود دارند، به اندازه کافی دقیق نیستند.
🌀 ابزار Google Lighthouse چیست؟
🔸فانوس دریایی ( Lighthouse ) ابزاریست متن باز که توسط گوگل و با هدف رسیدگی به اپلیکیشن های تحت وب (PWA) ساخته شده است. این ابزار تست دسترسی، کارایی، PWA و موارد بیشتر دیگری را اجرا می کند. این گزارش اجمالی، دید خوبی از کیفیت و کارایی وبسیات یا اپلیکیشن تحت وب شما می دهد.
🔹بسیاری از کاربران اینترنت در جهان همچنان از سرعت های اینترنت پایین استفاده می کنند و حتی ممکن است سرعت سایت شما در اینترنت های بسیار پر سرعت نیز دارای کمی تاخیر باشد. حتی کم کردن چند میلی ثانیه از زمان بارگذاری سایت، می تواند تفاوت بسیار زیادی ایجاد کند.
ابزار فانوس دریایی گوگل در تست خود، مشاهده سایت شما را با یک اینترنت کم سرعت و در یک دستگاه با قدرت پایین تر از استاندارد شبیه سازی می کند.
🔸 بعد از انجام تست، گزارشی مبنی بر امتیاز قسمت های مختلف و توصیه های متناسب با رفع مشکلات سایت به شما ارائه می گردد. در مقایسه با ابزار Test My Site گوگل، این ابزار زیبایی کمتری دارد، اما جامعتر می باشد.
@fullStackDevs
#GoogleTool
⚙️ ابزار Google Lighthouse (فانوس دریایی گوگل)
🔻موبایل پسند بودن سایت و سرعت آن، دو تا از مهمترین پارامترهای سایت هستند که سئوکاران، توسعه دهندگان و صاحبین سایت ها می بایست به آنها توجه ویژه ای کنند.
اندازه گیری سرعت سایت همواره کمی مبهم بوده و اغلب ابزارهایی که در اینترنت برای تست این پارامتر وجود دارند، به اندازه کافی دقیق نیستند.
🌀 ابزار Google Lighthouse چیست؟
🔸فانوس دریایی ( Lighthouse ) ابزاریست متن باز که توسط گوگل و با هدف رسیدگی به اپلیکیشن های تحت وب (PWA) ساخته شده است. این ابزار تست دسترسی، کارایی، PWA و موارد بیشتر دیگری را اجرا می کند. این گزارش اجمالی، دید خوبی از کیفیت و کارایی وبسیات یا اپلیکیشن تحت وب شما می دهد.
🔹بسیاری از کاربران اینترنت در جهان همچنان از سرعت های اینترنت پایین استفاده می کنند و حتی ممکن است سرعت سایت شما در اینترنت های بسیار پر سرعت نیز دارای کمی تاخیر باشد. حتی کم کردن چند میلی ثانیه از زمان بارگذاری سایت، می تواند تفاوت بسیار زیادی ایجاد کند.
ابزار فانوس دریایی گوگل در تست خود، مشاهده سایت شما را با یک اینترنت کم سرعت و در یک دستگاه با قدرت پایین تر از استاندارد شبیه سازی می کند.
🔸 بعد از انجام تست، گزارشی مبنی بر امتیاز قسمت های مختلف و توصیه های متناسب با رفع مشکلات سایت به شما ارائه می گردد. در مقایسه با ابزار Test My Site گوگل، این ابزار زیبایی کمتری دارد، اما جامعتر می باشد.
@fullStackDevs
Chrome for Developers
Introduction to Lighthouse | Chrome for Developers
Learn how to set up Lighthouse to audit your web apps.
#Vuejs
#ComponentLifeCycleHook
#سوال
🔰چگونه Hook های Child Component را در کامپوننت Parent صدا بزنیم؟
🔸در ویو جی اس به صورت معمولی برای اجرای کدی در زمان صدا زده شدن Hook های کامپوننت Child از روش زیر استفاده میکنیم.
🔹روش نرمال انجام این هدف، emit کردن یک Custom Event در کامپوننت child و Bind کردن یک متد به این Custom Event در کامپوننت Parent است، و بدین تصورت میتوانیم کد مد نظر خودمان را در هنگام صدا شده شدن Hook مربوطه کامپوننت Child اجرا کنیم.
🔹به عوان مثال می خواهیم قطعه کد X در زمانی که Hook mounted کامپوننت Child صدا زده شد، اجرا شود.
@fullStackDevs
#ComponentLifeCycleHook
#سوال
🔰چگونه Hook های Child Component را در کامپوننت Parent صدا بزنیم؟
🔸در ویو جی اس به صورت معمولی برای اجرای کدی در زمان صدا زده شدن Hook های کامپوننت Child از روش زیر استفاده میکنیم.
🔹روش نرمال انجام این هدف، emit کردن یک Custom Event در کامپوننت child و Bind کردن یک متد به این Custom Event در کامپوننت Parent است، و بدین تصورت میتوانیم کد مد نظر خودمان را در هنگام صدا شده شدن Hook مربوطه کامپوننت Child اجرا کنیم.
🔹به عوان مثال می خواهیم قطعه کد X در زمانی که Hook mounted کامپوننت Child صدا زده شد، اجرا شود.
`<!-- Child -->
<script>
export default {
mounted () {
this.$emit('onMounted') }
}
</script><!-- Parent -->
<template>
<Child @
onMounted="handleOnMounted" />
</template>`
❇️ اما راه حل ساده و جایگزین دیگری نیز وجود دارد برای این کار کافیست به این شکل عمل کنید :`<!-- Parent -->
<template>
<Child
@hook:mounted="handleOnMounted" />
</template>`
🔸در نتیجه handleOnMounted
در زمان call شدن هوک مشخص شده اجرا میشود.@fullStackDevs
#csharp
#Enums
❇️در این پست مورد جالبی را در مورد Enum ها برررسی میکنیم.
🔸آیا می دانستید که میتوانیم برای Enum ها Extension method بنویسیم؟
▫️پاسخ سوال واضح است. مشخصا بله .
🔹اما اگر بخواهیم فقط برای یک enum خاص یک Extension method بنویسیم و در سایر Enum ها قابل دسترس نباشد چه ⁉️
❇️ در این پست به بررسی این موضوع میپردازیم و در نهایت پاسخ سوال را ارائه می کنیم.
🔰همانطور که میدانید Extension متد ها راهی برای نوشتن و افزودن متدهای جدید به یک type از پیش ساخته شده، یا یک type سفارشی، بدون تغییر
در آن type است.
درواقع enum ها نوع خاصی از کلاس ها هستند که گروهی از constant ها را نمایش میدهند. پس دور از انتظار نیست که به این صورت برایشان Extention method بنویسیم.
@fullStackDevs
#Enums
❇️در این پست مورد جالبی را در مورد Enum ها برررسی میکنیم.
🔸آیا می دانستید که میتوانیم برای Enum ها Extension method بنویسیم؟
▫️پاسخ سوال واضح است. مشخصا بله .
🔹اما اگر بخواهیم فقط برای یک enum خاص یک Extension method بنویسیم و در سایر Enum ها قابل دسترس نباشد چه ⁉️
❇️ در این پست به بررسی این موضوع میپردازیم و در نهایت پاسخ سوال را ارائه می کنیم.
🔰همانطور که میدانید Extension متد ها راهی برای نوشتن و افزودن متدهای جدید به یک type از پیش ساخته شده، یا یک type سفارشی، بدون تغییر
در آن type است.
درواقع enum ها نوع خاصی از کلاس ها هستند که گروهی از constant ها را نمایش میدهند. پس دور از انتظار نیست که به این صورت برایشان Extention method بنویسیم.
enum Duration { Day, Week, Month };
static class DurationExtensions {
public static DateTime From(this Duration duration, DateTime dateTime) {
switch(duration) {
case Day: return dateTime.AddDays(1);
case Week: return dateTime.AddDays(7);
case Month: return dateTime.AddMonths(1);
default: throw new ArgumentOutOfRangeException("duration");
}
}
}
▪️و بدین صورت متد From فقط برای enum Duration قابل دسترسی خواهد بود.@fullStackDevs
#github1s
🎯 github1s
▫️ یک ثانیه برای خواندن کدهای GitHub با VSCode
▪️ در نوار آدرس پس از github فقط s1 اضافه کرده و Enter را در نوار آدرس مرورگر فشار دهید تا مخزنی را که می خواهید بخوانید.
برای مثال لینک زیر را ببینید .
https://github1s.com/microsoft/vscode
@fullStackDevs
🎯 github1s
▫️ یک ثانیه برای خواندن کدهای GitHub با VSCode
▪️ در نوار آدرس پس از github فقط s1 اضافه کرده و Enter را در نوار آدرس مرورگر فشار دهید تا مخزنی را که می خواهید بخوانید.
برای مثال لینک زیر را ببینید .
https://github1s.com/microsoft/vscode
@fullStackDevs
#trick
#tips
سایت زدین برای مشتری، ولی پولش رو نمیده؟ این پلاگین رو به سایت اضافه کنین.
یک dead line تعریف میکنید مثلاً 90 روز. بعد به ازای هر روز یک واحد از opacity سایت کم میشه و نهایتاً بعد از 90 روز opacity به صفر میرسه و سایت کلاً محو میشه .
✍️ Ali Nazari
@fullStackDevs
#tips
سایت زدین برای مشتری، ولی پولش رو نمیده؟ این پلاگین رو به سایت اضافه کنین.
یک dead line تعریف میکنید مثلاً 90 روز. بعد به ازای هر روز یک واحد از opacity سایت کم میشه و نهایتاً بعد از 90 روز opacity به صفر میرسه و سایت کلاً محو میشه .
✍️ Ali Nazari
@fullStackDevs