Forwarded from LearnPOV | لرن پی او وی
Forwarded from LearnPOV | لرن پی او وی
#WhatsThat #javascript #object
* متد Object.defineProperty در جاوااسکریپت چیست ؟ *
#part1
یکی از روشهای قدرتمند در جاوااسکریپت برای تعریف یا تغییر ویژگیهای یک شیء به صورت دقیق و کنترل شده Object.defineProperty است. با استفاده از این متد، میتوانید ویژگیهای جدیدی به یک آبجکت اضافه کنید یا ویژگیهای موجود را تغییر دهید و حتی رفتارهای سفارشی مدنظر خودتون رو برای آنها تعریف کنید.
ویژگی های کلیدی Object.defineProperty 🚀
➊ کنترل کامل بر روی ویژگیها : شما میتوانید مشخص کنید که آیا یک ویژگی قابل خواندن، نوشتن یا حذف شدن است یا خیر.
➋ تعریف getter و setter : میتوانید فانکشنالیتی کاستوم خودتون رو برای خواندن (getter) و نوشتن (setter) مقدار یک ویژگی تعریف کنید. این به شما اجازه میدهد تا عملیات پیچیدهتری را قبل یا بعد از تغییر مقدار یک ویژگی انجام دهید.
➌ ایجاد ویژگیهای غیر قابل تغییر : میتوانید ویژگیهایی ایجاد کنید که پس از مقداردهی اولیه قابل تغییر نباشند ( در چالش قبلی از این این ویژگی استفاده شده بود ).
➍ بهینه سازی عملکرد : در برخی موارد، استفاده از Object.defineProperty میتواند به بهبود عملکرد کد کمک کند.
✅ ساختار کلی Object.defineProperty
1️⃣ obj : آبجکتی که میخواهید ویژگی آن را تعریف یا تغییر دهید.
2️⃣ prop : نام ویژگیای که میخواهید تعریف کنید.
3️⃣ descriptor : یک آبجکت که ویژگیهای مورد نظر برای ویژگی جدید را توصیف میکند.
⚡ در کل Object.defineProperty یک ابزار قدرتمند برای کنترل دقیق پروپرتیها در جاوا اسکریپت است. با درک کامل این متد، میتوانید کدهای تمیزتر و انعطافپذیرتری بنویسید. هدف این پست صرفا معرفی این متد بود، توی پست های بعدی به صورت جزئی بخش های جزئی و حرفه ای تر این متد رو بررسی میکنیم ✅
⚠️ ( حتما به این نکته توجه کنید که استفاده بیش از حد از Object.defineProperty میتواند کد را پیچیدهتر کند. بنابراین، بهتر است از آن در مواردی استفاده کنید که واقعا نیاز به کنترل دقیق بر روی ویژگیهای یک شیء دارید )
Channel | YouTube | Instagram
* متد Object.defineProperty در جاوااسکریپت چیست ؟ *
#part1
یکی از روشهای قدرتمند در جاوااسکریپت برای تعریف یا تغییر ویژگیهای یک شیء به صورت دقیق و کنترل شده Object.defineProperty است. با استفاده از این متد، میتوانید ویژگیهای جدیدی به یک آبجکت اضافه کنید یا ویژگیهای موجود را تغییر دهید و حتی رفتارهای سفارشی مدنظر خودتون رو برای آنها تعریف کنید.
ویژگی های کلیدی Object.defineProperty 🚀
➊ کنترل کامل بر روی ویژگیها : شما میتوانید مشخص کنید که آیا یک ویژگی قابل خواندن، نوشتن یا حذف شدن است یا خیر.
➋ تعریف getter و setter : میتوانید فانکشنالیتی کاستوم خودتون رو برای خواندن (getter) و نوشتن (setter) مقدار یک ویژگی تعریف کنید. این به شما اجازه میدهد تا عملیات پیچیدهتری را قبل یا بعد از تغییر مقدار یک ویژگی انجام دهید.
➌ ایجاد ویژگیهای غیر قابل تغییر : میتوانید ویژگیهایی ایجاد کنید که پس از مقداردهی اولیه قابل تغییر نباشند ( در چالش قبلی از این این ویژگی استفاده شده بود ).
➍ بهینه سازی عملکرد : در برخی موارد، استفاده از Object.defineProperty میتواند به بهبود عملکرد کد کمک کند.
✅ ساختار کلی Object.defineProperty
Object.defineProperty(obj, prop, descriptor);
1️⃣ obj : آبجکتی که میخواهید ویژگی آن را تعریف یا تغییر دهید.
2️⃣ prop : نام ویژگیای که میخواهید تعریف کنید.
3️⃣ descriptor : یک آبجکت که ویژگیهای مورد نظر برای ویژگی جدید را توصیف میکند.
⚡ در کل Object.defineProperty یک ابزار قدرتمند برای کنترل دقیق پروپرتیها در جاوا اسکریپت است. با درک کامل این متد، میتوانید کدهای تمیزتر و انعطافپذیرتری بنویسید. هدف این پست صرفا معرفی این متد بود، توی پست های بعدی به صورت جزئی بخش های جزئی و حرفه ای تر این متد رو بررسی میکنیم ✅
⚠️ ( حتما به این نکته توجه کنید که استفاده بیش از حد از Object.defineProperty میتواند کد را پیچیدهتر کند. بنابراین، بهتر است از آن در مواردی استفاده کنید که واقعا نیاز به کنترل دقیق بر روی ویژگیهای یک شیء دارید )
Channel | YouTube | Instagram
Telegram
Cooly Code | کولی کد
#chalange #js_challenge
CHALLENGE ❓
const obj = { a: 1, b: 2 };
Object.defineProperty(obj, 'b', { value: 3, writable: false });
obj.b = 4;
console.log(obj.b);
CHALLENGE ❓
const obj = { a: 1, b: 2 };
Object.defineProperty(obj, 'b', { value: 3, writable: false });
obj.b = 4;
console.log(obj.b);
Forwarded from LearnPOV | لرن پی او وی
This media is not supported in your browser
VIEW IN TELEGRAM
این خیلی خوب بود 😍😂
ولی خب دور از شوخی حق میگه !
من خودم از اون کساییم که هیچوقت بحث نمیکنم در مورد اینکه دانشگاه رفتن درسته یا نه، فقط میخوام بگم صرفا با اتکا کردن به درس های دانشگاه یه حتی کلاس های حضوری و آنلاین برنامه نویسی به نقطه خفنی نمیرسید اگر میخواید پیشرفت کنید توی این حوزه باید خودتون برید دنبال چیزای جدید و از رو به رو شدن باهاشون نترسید و اجازه بدید به خودتون که خودتون تجربه کنید
ولی خب دور از شوخی حق میگه !
من خودم از اون کساییم که هیچوقت بحث نمیکنم در مورد اینکه دانشگاه رفتن درسته یا نه، فقط میخوام بگم صرفا با اتکا کردن به درس های دانشگاه یه حتی کلاس های حضوری و آنلاین برنامه نویسی به نقطه خفنی نمیرسید اگر میخواید پیشرفت کنید توی این حوزه باید خودتون برید دنبال چیزای جدید و از رو به رو شدن باهاشون نترسید و اجازه بدید به خودتون که خودتون تجربه کنید
#️⃣ #fun | #programming | #self_study
🚀 @coolycode
Forwarded from LearnPOV | لرن پی او وی
💎 بررسی tree shaking در جاوااسکریپت 💎
درواقع Tree Shaking در جاوااسکریپت یک تکنیک بهینهسازیه که کدهای استفاده نشده رو از باندل نهایی حذف میکنه و به طور خاص با ماژولهای ES6 کار میکنه که از دستورهای
چه مزایایی داره ؟ 🚀
با کاهش حجم باندل با حذف کدهای اضافی و استفادهنشده، حجم فایل نهایی کاهش پیدا میکنه و بارگذاری صفحات سریعتر میشه و همچنین باعث میشه تا منابع سیستم کمتر مصرف بشن.
نحوه کار Tree Shaking 📈
درواقع Tree shaking تنها با ماژولهای ES6 کار میکنه، چون این ماژولها به طور ایستا وابستگیهای خودشونو مشخص میکنن ( برای درک بهتر این مقاله رو بخونید )، حالا وقتی که از کدهای
نحوه فعال کردن tree shaking ✅
برای اطلاع از نحوه کارکرد tree-shaking در Webpack و Rollup میتونید از لینک های زیر استفاده کنید
توی این پست سعی کردم به طور کامل tree shaking رو بهتون توضیح بدم، اگر دوست داشتید با ریاکشناتون بهمون انرژی بدید ❤️
درواقع Tree Shaking در جاوااسکریپت یک تکنیک بهینهسازیه که کدهای استفاده نشده رو از باندل نهایی حذف میکنه و به طور خاص با ماژولهای ES6 کار میکنه که از دستورهای
import و export برای مدیریت وابستگیها استفاده میکنند.هدف اصلی tree shaking اینه که فقط کدی که واقعاً در برنامه استفاده میشود در باندل نهایی باقی بماند و کدهای اضافی حذف شوند 💥
چه مزایایی داره ؟ 🚀
با کاهش حجم باندل با حذف کدهای اضافی و استفادهنشده، حجم فایل نهایی کاهش پیدا میکنه و بارگذاری صفحات سریعتر میشه و همچنین باعث میشه تا منابع سیستم کمتر مصرف بشن.
نحوه کار Tree Shaking 📈
درواقع Tree shaking تنها با ماژولهای ES6 کار میکنه، چون این ماژولها به طور ایستا وابستگیهای خودشونو مشخص میکنن ( برای درک بهتر این مقاله رو بخونید )، حالا وقتی که از کدهای
import و export استفاده میکنیم، ابزارهایی مثل Webpack میتونن بفهمند کدوم بخش از کد ما مورد استفاده قرار نمیگیره و اونها را حذف کنند.نکته ای که وجود داره اینه که جاوااسکریپت به تنهایی نمیتونه tree shaking رو فعال کنه و توسط bundlerهایی مثل webpack و rollup انجام میشه !
نحوه فعال کردن tree shaking ✅
برای اطلاع از نحوه کارکرد tree-shaking در Webpack و Rollup میتونید از لینک های زیر استفاده کنید
🌐 Webpack
🌐 Rollup
#️⃣ #WhtsThat #javascript #bundlesize #tree_shaking #webpack #rollup
🚀 @coolycode
Forwarded from LearnPOV | لرن پی او وی
1000287019.jpg
119.9 KB
🔸 وبسایت Npmtrends براتون این امکان رو فراهم کرده تا محبوبیت و میزان استفاده از پکیجهای مختلف npm رو با نمودارهایی که داره باهم دیگه مقایسه کنید
درواقع این ابزار با اطلاعاتی که بهتون میده بهتون کمک میکنه تا پکیج مناسب رو برای پروژه خودتون پیدا کنید ✅
🌐 مشاهده وبسایت
درواقع این ابزار با اطلاعاتی که بهتون میده بهتون کمک میکنه تا پکیج مناسب رو برای پروژه خودتون پیدا کنید ✅
مثلا من توی این عکس پکیج react-hook-form رو با Formik مقایسه کردم و میتونید تمامی اطلاعاتشون رو ببینید مثل تعداد issueها، تعداد نصب بر اساس تاریخ و ...
🌐 مشاهده وبسایت
#️⃣ #website #npm #npmtrends
🚀 @coolycode
Forwarded from LearnPOV | لرن پی او وی
💎 معرفی کتابخانه Tailwind Variants 💎
کتابخانه Tailwind Variants یک ابزار جانبی برای Tailwind CSS هستش که به شما کمک میکنه تا مدیریت کلاسهای CSSای به شکل ساده تری انجام بشه و از شلوغی کد شما جلوگیری میکنه 💥
🌐 داکیومنت Tailwind Variants
کتابخانه Tailwind Variants یک ابزار جانبی برای Tailwind CSS هستش که به شما کمک میکنه تا مدیریت کلاسهای CSSای به شکل ساده تری انجام بشه و از شلوغی کد شما جلوگیری میکنه 💥
این کتابخانه به شما این امکان رو میده تا به آسانی حالتهای مختلفی مثل رنگ، سایز و ... رو در یک کامپوننت با استفاده از کلاسهای tailwind تعریف و مدیریت کنید.توی پست های بعدی به بررسی قابلیت های این کتابخانه جذاب میپردازیم ✅
🌐 داکیومنت Tailwind Variants
#️⃣ #WhatsThat | #libarary | #tailwind
🚀 @coolycode
Forwarded from LearnPOV | لرن پی او وی
This media is not supported in your browser
VIEW IN TELEGRAM
💎 جعبه ابزار جادویی Frontend دولوپرا 💎
یک ui kit خفن اوردم براتون که به ادعای خودش جادوییه، اسمش MagicUI هستش و بیش از ۵۰ کامپوننت animate ( انیمیشنی ) شده خفن داره که بهتون قول میدم اگر ببینیدش شما هم مجذوبشون میشید بس که جذابه.
حالا چرا میگم انقدر جذاب و خفنه ؟
به این دلیل که برای ایجاد انیمیشن ها از Framer Motion استفاده میکنه که واقعا بهش قدرت میبخشه و برای استایل دهی ام از tailwind استفاده میکنه.
🌐 مشاهده وبسایت
یک ui kit خفن اوردم براتون که به ادعای خودش جادوییه، اسمش MagicUI هستش و بیش از ۵۰ کامپوننت animate ( انیمیشنی ) شده خفن داره که بهتون قول میدم اگر ببینیدش شما هم مجذوبشون میشید بس که جذابه.
حالا چرا میگم انقدر جذاب و خفنه ؟
به این دلیل که برای ایجاد انیمیشن ها از Framer Motion استفاده میکنه که واقعا بهش قدرت میبخشه و برای استایل دهی ام از tailwind استفاده میکنه.
فیلم چند نمونه از کامپوننت هاش رو گذاشتم میتونید ببینید، لینک سایتشم میزارم براتون حتما یه سر بهش بزنید 🚀
🌐 مشاهده وبسایت
#️⃣ #libarary | #uikit | #tools
🚀 @coolycode
Forwarded from LearnPOV | لرن پی او وی (Mohammad hossein)
#tools | #vscode | #extension
🎯 CSS Peek
مشاهده و ویرایش مستقیم استایلهای CSS متصل به یک المنت HTML بدون نیاز به جستجو در فایلهای CSS.
🌐 دانلود
🚀 Tabnine
تکمیل خودکار کد با استفاده از هوش مصنوعی برای پیشنهادهای دقیقتر و هوشمندتر که سرعت شمارو تو نوشتن کدها بالا میبره.
🌐 دانلود
🛜 Thunder Client
یک ابزار قدرتمند برای تست APIها به صورت مستقیم از ویاسکد و جایگزینی خوب برای Postman.
🌐 دانلود
🎨 Color Highlight
نمایش رنگهای استفاده شده در CSS به صورت بصری در کنار کد، به صورت بکگراند کد رنگی.
🌐 دانلود
📊 Git Graph
نمایش گرافیکی و تصویری تاریخچه گیت و شاخههای مختلف پروژه با امکان مدیریت کامیتها و شاخهها.
🌐 دانلود
🆔 Channel | Group | YouTube
Forwarded from LearnPOV | لرن پی او وی (Mohammad hossein)
●● معرفی ابزار cURL ●●
برنامه cURL یک ابزار تحت ترمیناله که برای ارسال درخواستهای HTTP و تعامل با #Api ها خیلی استفاده میشه و طرفدارای زیادی داره. این ابزار به شما این امکان رو میده تا درخواستهای مختلفی مثل GET، POST، PUT و DELETE رو از طریق ترمینال ارسال کنید و پاسخ مد نظرتون رو دریافت کنید ⚡
نحوه نصب cURL 🔻
macOS
Linux
Windows
برای نصبش از این لینک هم میتونید کمک بگیرید.
〰️〰️〰️〰️〰️〰️〰️️〰️〰️〰️
برنامه cURL یک ابزار تحت ترمیناله که برای ارسال درخواستهای HTTP و تعامل با #Api ها خیلی استفاده میشه و طرفدارای زیادی داره. این ابزار به شما این امکان رو میده تا درخواستهای مختلفی مثل GET، POST، PUT و DELETE رو از طریق ترمینال ارسال کنید و پاسخ مد نظرتون رو دریافت کنید ⚡
نحوه نصب cURL 🔻
macOS
brew install curl
Linux
sudo apt update && sudo apt install curl
Windows
توی ویندوز 10 به بالا به صورت دیفالت نصبه ولی اگر نصب نبود از صفحه رسمیش میتونید دانلود کنید
برای نصبش از این لینک هم میتونید کمک بگیرید.
#tools | #CURL | #Api
〰️〰️〰️〰️〰️〰️〰️️〰️〰️〰️
Channel | Group | YouTube
Forwarded from LearnPOV | لرن پی او وی
💎 تفاوت Box-Shadow و Drop-Shadow در CSS 💎
🌐 مشاهده ویدیو در اینستاگرام
🌐 مشاهده ویدیو در اینستاگرام
#️⃣ #vs #css #shadow
🚀 @coolycode
Forwarded from محتوای آزاد سهراب
Anonymous Poll
62%
خوب
17%
بد
11%
میتونست بهتر باشه
11%
توی کامنتها میگم
Forwarded from Linuxor ?
یه Ui قشنگ برای مدیریت Nginx
خیلی راحت میتونین وبسایت خودتون رو باهاش مدیریت کنید
برای تستش با یوزرنیم admin و رمز admin وارد شین :
demo.nginxui.com
گیتهابش :
https://github.com/0xJacky/nginx-ui
🐧 @Linuxor
خیلی راحت میتونین وبسایت خودتون رو باهاش مدیریت کنید
برای تستش با یوزرنیم admin و رمز admin وارد شین :
demo.nginxui.com
گیتهابش :
https://github.com/0xJacky/nginx-ui
🐧 @Linuxor
Forwarded from Geek Alerts
ماشینهای برقی بازار دست دوم کمی دارن، چون تازه چند سال اخیر هست که فروششون خیلی زیاد شده، با این حال یه تحقیق جدید از شرکت جی.دی. پاور میگه تا سال ۲۰۲۶ بیشتر از ۲۸۰ هزار قرارداد لیزینگ ماشین برقی تمام میشه، یعنی ماشینها برمیگردن به شرکت لیزینگ.
البته میشه قرارداد رو تمدید کرد ولی چون قیمت ماشینهای جدید برقی ارزونتر هست اینه که مردم ماشینهارو پس میدن.
حالا شرکت لیزینگ ۲۸۰ هزار تا ماشین برقی داره که اینارو به صورت دستدوم و با قیمت مناسب میفروشه.
اینجوری بازار دست دوم بزرگتری برای ماشینهای برقی درست میشه و نتیجش اینه که کسی پول پرداخت هزینه خودرو برقی نو رو نداشته باشه میتونه با نصف قیمت یه ماشین دست دوم تهیه کنه.
همین اتفاق احتمالا برای کشورهای اروپایی هم احتمالا میفته، یکی از نتایجش هم اینه که کشورهای دیگه میتونن این خودروهای برقی دست دوم رو وارد کنن.
insideevs
@geekalerts
البته میشه قرارداد رو تمدید کرد ولی چون قیمت ماشینهای جدید برقی ارزونتر هست اینه که مردم ماشینهارو پس میدن.
حالا شرکت لیزینگ ۲۸۰ هزار تا ماشین برقی داره که اینارو به صورت دستدوم و با قیمت مناسب میفروشه.
اینجوری بازار دست دوم بزرگتری برای ماشینهای برقی درست میشه و نتیجش اینه که کسی پول پرداخت هزینه خودرو برقی نو رو نداشته باشه میتونه با نصف قیمت یه ماشین دست دوم تهیه کنه.
همین اتفاق احتمالا برای کشورهای اروپایی هم احتمالا میفته، یکی از نتایجش هم اینه که کشورهای دیگه میتونن این خودروهای برقی دست دوم رو وارد کنن.
insideevs
@geekalerts
Forwarded from Geek Alerts
آمازون یه پروژه محرمانه به اسم Encore رو کنسل کرد، این پروژه برای ساخت یه برنامه ردیاب باروری بود، وسیلهای که زمان تخمکگذاری رو مشخص میکنه.
این زمان تخمکگذاری از این جهت مهمه که اگه رابطه جنسی در همین زمان انجام بشه بیشترین شانس بارداری رو داره و اگه رابطه در زمانهای غیر این انجام بشه برای کسایی که تمایلی به بارداری ندارند اثرگذار هست.
آمازون اول میخواست این محصول رو امسال عرضه کنه ولی عقب افتاد و کل پروژه به خاطر هزینههای زیادش (هفتهای ۱.۵ میلیون دلار) لغو شد.
خود این پروژه سر ایدههای جف بزوس تو سال ۲۰۱۴ شروع شد که میگفت میخواد ایدههای خلاقانه رو امتحان کنه.
ولی اندی جسی مدیرعامل آمازون از اواخر ۲۰۲۲ به خاطر افزایش تورم و نرخ بهره تو آمریکا تصمیم گرفت هزینههای آمازونرو کاهش بده و حالا نوبت به همین پروژههای خلاقانه رسیده.
تقریبا اکثر این پروژهها تا به امروز لغو شدن.
آمازون به اعضای تیم Encore اطلاع داده که تا ۲۷ دسامبر حقوق میگیرن ولی دیگه لازم نیست سر کار بیان.
cnbc
@geekalerts
این زمان تخمکگذاری از این جهت مهمه که اگه رابطه جنسی در همین زمان انجام بشه بیشترین شانس بارداری رو داره و اگه رابطه در زمانهای غیر این انجام بشه برای کسایی که تمایلی به بارداری ندارند اثرگذار هست.
آمازون اول میخواست این محصول رو امسال عرضه کنه ولی عقب افتاد و کل پروژه به خاطر هزینههای زیادش (هفتهای ۱.۵ میلیون دلار) لغو شد.
خود این پروژه سر ایدههای جف بزوس تو سال ۲۰۱۴ شروع شد که میگفت میخواد ایدههای خلاقانه رو امتحان کنه.
ولی اندی جسی مدیرعامل آمازون از اواخر ۲۰۲۲ به خاطر افزایش تورم و نرخ بهره تو آمریکا تصمیم گرفت هزینههای آمازونرو کاهش بده و حالا نوبت به همین پروژههای خلاقانه رسیده.
تقریبا اکثر این پروژهها تا به امروز لغو شدن.
آمازون به اعضای تیم Encore اطلاع داده که تا ۲۷ دسامبر حقوق میگیرن ولی دیگه لازم نیست سر کار بیان.
cnbc
@geekalerts
Forwarded from Geek Alerts
Forwarded from Geek Alerts
روزنامهها در آمریکا فعالیتشون در توییتر (همون X) و سایر شبکههای اجتماعی برای جهتدهی به اخبار هست، چون برخلاف تلوزیون و رسانههای مشابه مردم در X مجبور نیستن برای دنبال کردن اخبار حتما به چند خبرگزاری محدود بشن. X هر فرد رو به رسانهای تبدیل کرده و این یک نقطه منفی برای کشورها داره که سالها هست تسلط کامل به رسانهها دارن. در واقع دولت کشورها به رسانههاشون کمکمالی میکنن تا قدرت رسانه رو همچنان داشته باشن، حتی دولتهایی که هیچ رسانه حاکمیتی ندارن.
برای مثال Guardian در کنار کاهش طرفدارانش در X از طرفی بعضی از پستهاش هم کامیونیتی پست میخورد که به نظر میرسه از این موضوع راضی نبودن و فعالیتشون در X رو متوقف کردن.
از طرفی به خبرنگارها و کارمنداشون هم دستورالعمل دادن که طبق اون باید در X فعالیت کنید.
theguardian
@geekalerts
برای مثال Guardian در کنار کاهش طرفدارانش در X از طرفی بعضی از پستهاش هم کامیونیتی پست میخورد که به نظر میرسه از این موضوع راضی نبودن و فعالیتشون در X رو متوقف کردن.
از طرفی به خبرنگارها و کارمنداشون هم دستورالعمل دادن که طبق اون باید در X فعالیت کنید.
theguardian
@geekalerts
Forwarded from Geek Alerts
مایکروسافت فایل ISO مخصوص پردازندههای ۶۴ بیتی آرم برای ویندوز ۱۱ نسخه 24H2 رو برای دانلود مستقیم منتشر کرد.
مزیت این کار اینه که الان اگه یه دستگاه مبتنی بر Arm داشته باشید مثل Raspberry Pi میتونید این نسخه از ویندوز رو دانلود و روش نصب کنید.
https://www.microsoft.com/en-us/software-download/windows11arm64
@geekalerts
مزیت این کار اینه که الان اگه یه دستگاه مبتنی بر Arm داشته باشید مثل Raspberry Pi میتونید این نسخه از ویندوز رو دانلود و روش نصب کنید.
https://www.microsoft.com/en-us/software-download/windows11arm64
@geekalerts