Ditty | دیتی – Telegram
Ditty | دیتی
3.19K subscribers
194 photos
20 videos
4 files
387 links
دیتی | دنیای ساده‌شدهٔ برنامه‌نویسی وب
https://ditty.ir
Download Telegram
🔺توکن JWT رو کجا ذخیره می‌کنی؟
Anonymous Poll
39%
Cookie
61%
Local Storage
👍11🤯8🤔1
This media is not supported in your browser
VIEW IN TELEGRAM
🔺توی جاوااسکریپت متدهای seal و freeze چه فرقی با هم دارن؟ 🤔

#javanoscript
👍316🔥5
🔺خروجی چیه؟ 🤔
- با این ایموجی‌ها نشون بدین:

ــ 1 👍
ــ 2 👏
#quiz
👏156👍100👎4🔥4
🔺با اون زبان و ابزار و فریم‌ورک و کتابخونه و ... که می‌خوای توی ۱۴۰۱ بترکونی، سال جدید رو تبریک بگو 👇👏😉🎉

#HAPPYNEWYEAR
🔥18👍4👏1😁1🎉1
🔺دوستان و همراهان عزیز، امیدوارم سال قشنگی داشته باشین و هر چی #باگ دارین به #فیچر تبدیل بشه 😉🌹🤲

#HAPPYNEWYEAR
🎉405🔥4😁3
🔺توی CSS یک تابع وجود داره به اسم element که از یک المنت توی صفحه، یک تصویر تولید می‌کنه که برای مثال می‌تونه به عنوان تصویر توی پراپرتی background-image قرار بگیره

- هر وقت المنت مد نظر آپدیت بشه، اون تصویر هم آپدیت میشه

- در حال حاضر فقط فایرفاکس از این تابع پشتیبانی می‌کنه

- یک نمونهٔ پیاده‌سازی شده رو می‌تونین از اینجا ببینین که یک Minimap مثل ادیتورها و IDE ها درست کرده (با فایرفاکس ببینین):
stefanjudis.com/a-firefox-only-minimap

#css
🔥31👍3🤩2
🔺۲ متد جدید قراره به جاوااسکریپت اضافه بشه به اسم‌های findLast و findLastIndex که مشابه متدهای find و findIndex هستن، اما از انتهای آرایه شروع به جستجو می‌کنن

- اطلاعات بیشتر:
github.com/tc39/proposal-array-find-from-last

#javanoscript
👍26🔥19
🔺این کد رو یکی از دوستان منتشر کرد و گفته بود این سوالی بود که توی مصاحبه ازش پرسیدن

- توی این کد باید بدونیم که حلقهٔ while هیچوقت به پایان نمی‌رسه. به این دلیل که هیچوقت نوبت به اجرای setTimeout نمی‌رسه که x رو false کنه

- دلیل این اتفاق رو می‌دونین؟ توی کامنت‌ها بگین 👇👏

#javanoscript
👍44🤔41🎉1
This media is not supported in your browser
VIEW IN TELEGRAM
🔺به جدیدترین نسخهٔ VS Code یک قابلیت اضافه شده به اسم Local History که شباهت زیادی به کارایی Git داره اما به صورت لوکال و شخصی عمل می‌کنه

ــ Local History تغییراتی که به فایل‌ها می‌دیم رو ثبت می‌کنه، به طوری که حتی با بسته شدن VS Code، تغییرات قبلی باز هم قابل مشاهده هست و در صورت لزوم می‌تونیم فایل رو برگردونیم به حالت قبل
#vscode
👍29🔥11👏3
🔺از کدوم ادیتور/ IDE استفاده می‌کنی؟
Anonymous Poll
79%
VS Code
14%
WebStorm
22%
PHPStorm
3%
Sublime Text
2%
Atom
1%
Brackets
6%
Notepad++
4%
VIM
1%
Eclipse
5%
...Other
👍6
🔺الگوی Event Delegation توی جاوااسکریپت چیه؟ 🤔

- از این الگو هنگام کار با DOM و مدیریت کردن رویدادها استفاده می‌کنیم و با اون می‌تونیم کدهایی تمیزتر و با قابلیت توسعهٔ بیشتری داشته باشیم

- برای مثال چندین المنت مشابه داریم و می‌خوایم onclick همهٔ این المنت‌ها رو مدیریت کنیم. این الگو کمک می‌کنه این کار رو با نوشتن کدهای کمتر و خواناتر انجام بدیم 👌

- با این الگو اینجا آشنا بشین:
https://ditty.ir/492

#javanoscript
👍15🔥8👎1😁1
🔺اگه یک ورودی از نوع number داریم، می‌تونیم هنگام خوندن مقدار اون، از valueAsNumber استفاده کنیم تا چیزی که تحویل می‌گیریم از نوع number باشه (اگه از value. استفاده کنیم، خروجی همیشه string هست)

- همچنین اگه نوع ورودی date هست، می‌تونیم از valueAsDate استفاده کنیم تا چیزی که تحویل می‌گیریم نوعی از آبجکت Date باشه

#html #javanoscript
👍79🔥18🤩5
🔺اعتبارسنجی فرم‌های HTML آسون‌تر از همیشه 😋

- با کمک دوستان، ابزاری رو توسعه دادیم که بتونیم با کمترین کد و به ساده‌ترین حالت، یک فرم HTML رو اعتبارسنجی کنیم (مثل عکس)

- اسمش رو گذاشتیم Facile Validator (فَسیل ولیدیتور) که اون رو به تازگی و به صورت رسمی ریلیز کردیم

- مستندات انگلیسی
- مستندات فارسی
- دمو

- خوشحال می‌شیم استفاده کنین، معرفی کنین و با Star هاتون توی گیت‌هاب از پروژه حمایت کنین 🌹

#tools
🔥63👍17👏111
🔺چرا از await توی حلقه‌ها استفاده نکنیم؟ 🤔

- یکی از هدف‌های async/await پیاده‌سازی قابلیت پردازش موازی و مدیریت کردن عملیات ناهمگام هست

- وقتی توی هر پیمایشِ حلقه از await استفاده می‌کنیم، یه جورایی مزیت‌های پردازش موازی رو نادیده گرفتیم

- توی این شرایط، عملیات موازی نیست. بلکه متوالی هست. چونکه پیمایش بعدی باید صبر کنه تا عملیات ناهمگام فعلی تموم بشه. پس بهتره کاری کنیم که عملیات ناهمگام بصورت موازی اجرا بشن

- بهتره توی حقله منتظر نتیجهٔ عملیات ناهمگام نباشیم. تک تک این عملیات رو توی یک آرایه قرار بدیم و نهایتاً بیرون از حلقه از ()Promise.all استفاده کنیم تا از مزیت پردازش‌های موازی استفاده کرده باشیم (مثل عکس)

ویرایش: منظور از پردازش موازی، اجرای موازی عملیات ناهمگام هست

- منبع ۱
- منبع ۲
#javanoscript
🔥33👍216
🔺توابع Pure و Impure چی هستن؟ 🤔

- این یکی از رایج‌ترین سوالات مصاحبه هست و می‌تونه تا حد زیادی سطح مصاحبه‌شونده رو مشخص کنه

- تابع Pure به تابعی گفته میشه که خروجی اون با توجه به ورودی که می‌گیره قابل پیش‌بینی هست. همچنین با اطلاعات بیرون از حوزهٔ خودش (مثل متغیرها و توابع دیگه) کاری نداره و حواسش به کار خودش هست

- تابع Impure به تابعی گفته میشه که خروجی اون معمولاً غیر قابل پیش‌بینی هست و همچنین نسبت به اطلاعات و دنیای بیرون از خودش کنجکاو هست و توی کار اونها دخالت می‌کنه

- با این توابع و همچنین مفاهیمی مثل Side Effect توی این پست آشنا بشیم:
ditty.ir/488

#tips
👍406🔥6🤯1
🔺ـ Node و Element توی دام (DOM) چه تفاوتی دارن؟ 🤔

- همونطور که می‌دونیم یک صفحهٔ HTML از اجزای مختلفی مثل تگ‌ها، متن‌ها، کامنت‌ها و ... تشکیل میشه

- برای دسترسی به این اجزا و کار کردن با اونها، مرورگر برای ما آبجکت DOM که یک رابط بین HTML و جاوااسکریپت هست رو می‌سازه. با DOM می‌تونیم به همهٔ این اجزا دسترسی داشته باشیم و تغییراتی توی صفحه بدیم

- به این اجزایی که توی DOM وجود دارن به طور کلی گفته میشه Node. مثلاً متن توی تگ p، کامنت‌ها و خودِ المنت‌ها همگی نوعی Node هستن

- اعضایی مثل div و img یک نوع خاص از Node هستن که بهشون گفته میشه Element

- برای مثال توی تصویر، یک المنت p داریم و در مجموع ۴ تا Node:
۱. کامنت
۲. المنت p
۳. اتریـبـیـوت class
۴. متن بین تگ‌های باز و بستهٔ p

#tips #html
👍514👏4🔥1
🔺منظور از Stateless بودن REST چیه؟ 🤔

- همونطور که می‌دونیم رِست یک معماری مبتنی بر HTTP و شامل قوانینی هست برای ساختن وب‌سرویس‌ها. و یک برنامهٔ RESTful به برنامه‌ای گفته میشه که از این قوانین تبعیت می‌کنه

- یکی از قوانین برنامهٔ رِست‌فول اینه که هر درخواستی که از کلاینت به سمت سرور زده میشه، باید توی خودش همهٔ اطلاعاتی که سرور برای دادنِ پاسخ مناسب لازم داره رو داشته باشه

- به عبارت دیگه، هر درخواست باید کاملاً مستقل از درخواست‌های دیگه عمل کنه و سرور برای فهمیدن یک درخواست نباید وابسته به درخواست‌های دیگه باشه

- وابستگی درخواست‌ها چه زمانی به وجود میاد؟ زمانی که سرور اطلاعاتی از یک درخواست رو ذخیره کرده تا برای درخواست‌های بعدی از اون استفاده کنه و اینجاست که قانون Stateless بودن نقض میشه

- برای مثال توی یک برنامه‌ای که می‌خواد از قوانین رست تبعیت کنه می‌خوایم نظر ارسال کنیم. اینجا هر درخواست توی خودش علاوه بر متن نظر، باید اطلاعات مربوط به شناسایی و احراز هویت کاربر (مثلاً توکن JWT) رو همیشه به همراه داشته باشه

- توی این برنامه قانون رست زمانی نقض میشه که سرور اطلاعات مربوط به احراز هویت رو (مثلاً به وسیلهٔ قابلیت Session ها) توی خودش ذخیره کنه تا برای درخواست‌های بعدی دیگه نیازی به ارسال اطلاعات احراز هویت نباشه

- پ.ن: منظور از State اطلاعاتی هست که توی برنامه در جریانه. مثل اطلاعات کاربری، تم، زبان و ... .

#tips
👍466🔥4👎1🎉1
🔺چطوری می‌تونیم یک ماژول جاوااسکریپتی رو تحت شرایط خاصی Import کنیم؟ 🤔

- توی جاوااسکریپت قابلیتی وجود داره به اسم Dynamic Imports که اجازه میده با انعطاف و اختیارات بیشتری یک ماژول رو لود و استفاده کنیم 💯

- توی جدیدترین پست دیتی با این ویژگی بیشتر آشنا بشین:
ditty.ir/498

#javanoscript
👍24🔥7🥰1
This media is not supported in your browser
VIEW IN TELEGRAM
🔺یکی از کاربردی‌ترین قابلیت‌های توی VS Code قابلیت Expand Selection هست

- مثلاً اگه بخوایم کدهای بین بلاک‌ها، پرانتزها یا تگ‌ها رو انتخاب کنیم، خیلی راحت می‌تونیم از دکمه‌های Shift+Alt+Right روی کیبورد استفاده کنیم

- همچنین یه افزونه جدید و جالب برای VS Code معرفی شده به اسم Smart Clicks که کمک می‌کنه با یک دابل‌کلیک ماوس کارهای مشابهی انجام بدیم:
https://github.com/antfu/vscode-smart-clicks

#tips
👍29🔥1🥰1
🔺توی DOM می‌تونیم از متد matches استفاده کنیم برای اینکه متوجه بشیم آیا یک المنت با Selector مد نظر ما همخونی داره یا نه

- اگه المنت با Selector همخونی داشته باشه خروجی true هست. در غیر این صورت false

#tips 💯
🔥25👍10🤩4