Ditty | دیتی – Telegram
Ditty | دیتی
3.19K subscribers
194 photos
20 videos
4 files
387 links
دیتی | دنیای ساده‌شدهٔ برنامه‌نویسی وب
https://ditty.ir
Download Telegram
🔺مقدارهای justify-content برای CSS Flexbox به زبان ساده :))

https://codepen.io/alvaromontoro/pen/vYdyOxe

#css
😁67👍15👎1🤯1
🔺رنگ‌ها و Gradient های خوشگل رو از این وبسایت بگیرین:
https://colors.dopely.top/gradients

#links
👍176🎉1🤩1
🔺ـ Tree Shaking یعنی چی؟ 🤔

- وقتی با ابزارهایی مثل وب‌پک می‌خوایم از یک برنامهٔ جاوااسکریپتی بیلد بگیریم، تکنیک Tree Shaking با حذف کدهای اضافی و بلااستفاده (به قول معروف Dead Code) بهمون کمک می‌کنه تا حجم کدهای کمتری توی باندل نهایی قرار بگیره که در نتیجه سرعت برنامه بالاتر میره

- برای مثال اگه توی برنامه import/export هایی داشته باشیم که هیچ جایی استفاده نمیشن، ابزارهایی مثل وب‌پک هنگام باندل کردن برنامه با آنالیزهایی که انجام میدن متوجه این import/export ها میشن و اونها از خروجی نهایی حذف می‌کنن

- به این مرحله از عملیات باندل کردن به اصطلاح گفته میشه Tree Shaking یا Dead Code Elimination

عکس از Unsplash
#tips
👍45👏31
Ditty | دیتی
🔺چقدر با مفاهیم Core Web Vitals آشنایی داری؟
🔺توی این نظرسنجی، بیشتر شرکت‌کننده‌ها درباره Core Web Vitals که یک موضوعِ داغ و مهم توی دنیای امروز فرانت‌اند هست، گفتن اطلاعی ندارن

- خبر خوب اینه که دوست خوبم، صالح فدائی یکی از با دانش‌ترین دولوپرهایی که می‌شناسم، قراره توی یک همایش درباره Core Web Vitals صحبت کنه 👋

- پیشنهاد می‌کنم این همایش رو از دست ندین. برای اطلاعات بیشتر این پست رو ببینین:
https://news.1rj.ru/str/quera_ir/1692

- صالح توی گروه دیتی هست. سوالی داشتین توی گروه بپرسین

#frontend
👏122👍2
🔺سایپرس (Cypress) یکی از جالب‌ترین و مدرن‌ترین ابزارهای تست End to End برنامه‌های فرانت هست. یکی از دوستان زحمت کشیده و داره آموزش‌هایی از این ابزار به صورت ویدئویی و رایگان منتشر می‌کنه. پیشنهاد می‌کنم سری به این کانال بزنین:
https://news.1rj.ru/str/automationcamp

#links
👍161🥰1
🔺توابع Debounce و Throttle چه فرقی با هم دارن؟ 🤔

- هر دو تابع شباهت‌های زیادی دارن و برای به تاخیر انداختن اجرای یک قطعه کد به کار میرن. به قول معروف برای Rate Limiting

- تابع Throttle مشخص میکنه که کدهای ما توی یک بازه زمانی مشخص فقط یک بار اجرا بشه

- مثلاً می‌خوایم یک قطعه کد توی بازه زمانی ۱۰ ثانیه، حداکثر یک‌بار اجرا بشه. اینجا از تابع Throttle استفاده می‌کنیم

- با تابع Debounce می‌تونیم مطمئن بشیم که یک قطعه کد دوباره اجرا نمیشه مگر اینکه مقدار مشخصی از زمان گذشته باشه

- معروف‌ترین مثال Debounce برای پیاده‌سازی جستجوی لحظه‌ای هست. ابتدا صبر می‌کنیم تا کاربر دست از تایپ کردن بکشه و بعد جستجو رو شروع می‌کنیم. مثلاً می‌گیم اگه از آخرین تایپ کاربر ۱ ثانیه گذشته بود جستجو رو شروع کن. در غیر این صورت، جستجو رو به تعویق بنداز

- به زودی توی دیتی نحوه پیاده‌سازی این توابع رو قرار میدم (منابع)

#tips
👍27🔥6
🔺متد reduceRight کاملاً مشابه reduce عمل می‌کنه با این تفاوت که از راست به چپ پیمایش انجام میده

- تا به‌ حال جایی مجبور شدین از reduceRight استفاده کنین؟

- برای آشنایی با متد reduce این پست رو بخونین:
https://ditty.ir/p/XolQJ

پ.ن: زحمت کد توی عکس رو تماماً GitHub Copilot کشیده 😁

#javanoscript
👍243👏3
🔺۳ ابزاری که توی هر پروژه‌ای استفاده می‌کنی رو کامنت کن 👏👇
#misc
🔺دوستان زحمت کشیدن و یک پکیج اختصاصی برای عمل تفریق توی جاوااسکریپت طراحی کردن: 😄
https://www.npmjs.com/package/subtract

#links
😁29🤬10🤩3👏2🔥1
Ditty | دیتی
🔺دوستان زحمت کشیدن و یک پکیج اختصاصی برای عمل تفریق توی جاوااسکریپت طراحی کردن: 😄 https://www.npmjs.com/package/subtract #links
🔺در راستای زحمات دوستان، یک پکیج وجود داره به اسم is-odd با ۲۰۰هزار دانلود هفتگی که برای تشخیص عدد فرد استفاده میشه:
https://www.npmjs.com/package/is-odd

- یک پکیج دیگه وجود داره به اسم is-even که برای تشخیص عدد زوج استفاده میشه، ۴۲۹هزار نصب هفتگی داره و توی خودش داره به شکل زیر از پکیج is-odd استفاده می‌کنه:
var isOdd = require('is-odd');

module.exports = function isEven(i) {
return !isOdd(i);
};

#tips
😁49🤯8👍4👎3🔥2
🔺آقای مارتین فاولر میگه: یک برنامه‌نویس بد کدی می‌نویسه که فقط یک کامپیوتر بتونه اون رو درک کنه. اما یک برنامه‌نویس خوب کدی می‌نویسه که یک انسان بتونه اون رو متوجه بشه!

- توی Code Review هایی که انجام میدم و رزومه‌هایی که بررسی می‌کنم، معمولاً اولین و مهمترین معیار برای قبولی کد، تمیزی و خوانایی اون هست. و کار کردن کد اولویت دوم

- می‌خوایم با چند مقاله آشنا بشیم که کمک می‌کنن کدهای تمیزتر و خواناتری داشته باشیم:

Clean Code Explained – A Practi...
Clean Code concepts adapted for...
Clean Code Practice: How to write...
JavaScript Clean Coding Best P...
Function parameters in JavaScript
Keeping your code clean
Best Practices for Using Modern...
Best practices for cross node/w...
Writing Clean Code
Writing Clean Code and The Pra...
Clean code, dirty code, human...
Practical Ways to Write Better...
The Must-Know Clean Code Princ...

منبع

#javanoscript
🔥37👍209
🔺آمار نظرسنجی Stackoverflow سال ۲۰۲۲ هم منتشر شد

» نکته‌هایی از این آمار:

• برای دهمین سال پیاپی و طبق معمول، جاوااسکریپت پر استفاده‌ترین زبان
• دیتابیس MySQL پراستفاده‌ترین دیتابیس
• نود جی‌اس و ری‌اکت پراستفاده‌ترین فریم‌ورک‌های وب
• وی‌اس کد (VS Code) پراستفاده‌ترین IDE
• زبان Rust دوست‌داشتنی‌ترین زبان و MATLAB ترسناک‌ترین
• دوست‌داشتنی‌ترین دیتابیس PostgreSQL
• دوست‌داشتنی‌ترین فریم‌ورک‌های وب Phoenix و Svelte و Deno
• ترسناک‌ترین‌ فریم‌ورک‌های وب Angular.js و Drupal و jQuery
• دوست‌داشتنی‌ترین ابزارها Docker و Kubernetes
• دوست‌داشتنی‌ترین IDE ها Neovim و VS Code
• ترسناک‌ترین‌ IDE ها NetBeans و Eclipse

• به طور میانگین، از سال ۲۰۲۱ تا ۲۰۲۲ میزان دستمزدها ۲۳٪ افزایش داشته
• زبان‌های Clojure و Erlang و #F پردرآمدترین زبان‌ها


» آمار با جزییات کامل
#stats
👍448👎2
🔺توی #تایپ‌اسکریپت اگه بخوایم یک مقدار رو غیر قابل تغییر یا Immutable کنیم، راه‌های زیادی وجود داره که یکی از جالب‌ترین اونها استفاده از Const Assertion هست

- با این ویژگی اینجا آشنا بشین:
ditty.ir/500 💯

#typenoscript
🔥17👍8
🔺توی تایپ‌اسکریپت، Narrowing یعنی چی؟ 🤔

- اگه مستندات و آموزش‌های تایپ‌اسکریپت رو خونده باشین، حتماً واژه Narrowing رو زیاد دیدین

- معنی تحت‌اللفظی این واژه یعنی محدود کردن یا باریک کردن

- تایپ‌اسکریپت با عملیات Narrowing کاری می‌کنه که یک تایپ به شکل یک تایپ خاص‌تر و مشخص‌تر برای ما در دسترس باشه

- توی عکس همونطور که می‌بینیم، پارامتر x ممکنه رشته باشه یا عدد. توی این کد دو عملیات Narrowing انجام گرفته: یکی برای بلاک if و یکی هم برای else

- با این ویژگی، با پارامتر x توی بلاک if فقط به صورت رشته رفتار میشه. برای مثال اگه متد toFixed رو صدا بزنیم خطا می‌گیریم. چون توی این بلاک، x فقط به صورت رشته قابل دسترس هست

- همچنین توی بلاک else تایپ‌اسکریپت می‌دونه که نوع x دیگه رشته نیست و قطعاً عددی هست. پس با اون مثل یک عدد رفتار می‌کنه
#typenoscript
👍27🔥5
This media is not supported in your browser
VIEW IN TELEGRAM
🔺به این ویدئوی کوتاه نگاه کنین، می‌خوایم درباره یک اصل از Core Web Vitals صحبت کنیم

- کاربر قصد داره روی دکمه خاکستری بزنه، اما درست قبل از کلیک، یک باکس سفید بالای فرم نمایش داده میشه و کاربر ناخواسته دکمهٔ آبی رو کلیک می‌کنه 🤦‍♂️

- گوگل توی سومین اصل Core Web Vitals درباره Cumulative Layout Shift (مخفف: CLS) صحبت می‌کنه و میگه توی یک صفحهٔ ضعیف، بخاطر لود شدن مرحله به مرحلهٔ المنت‌ها (مثل لود شدن یک عکس سنگین) شیفت‌ها و جابجایی‌های ناخواسته‌ای رخ میده که برای کاربر گیج‌کننده هست که در نتیجه UX و امتیاز اون صفحه پایین میاد

- گوگل با مطرح کردن مباحثی مثل Core Web Vitals داره میگه که User Experience بیشتر از هر موقع دیگه‌ای اهمیت داره و در نتیجه یک صفحه وب زمانی امتیاز خوبی می‌گیره که یک کاربر توی اون احساس راحتی کنه

- منبع ویدئو
#tips
👍44😁53
🔺معیار LCP از Core Web Vitals چیه؟ 🤔

- این اولین معیار از Core Web Vitals و مخفف Largest Contentful Paint هست

- گوگل توی این معیار، بزرگترین محتوای توی صفحه (مثل عکس، ویدئو، بلاک متنی) رو نگاه می‌کنه و بررسی می‌کنه که این محتوا توی چه مدت زمانی لود میشه

- هر چقدر مدت زمان لود شدن این محتوا کمتر باشه، امتیاز صفحه برای LCP بهتر خواهد بود. مثلاً اگه بزرگترین المنت صفحه یک تصویر باشه و این تصویر توی مدت زمان زیادی لود بشه، این صفحه امتیاز پایینی برای LCP می‌گیره و نیاز به بهینه‌سازی داره

- عدد خوب برای LCP یک صفحه از ۰ تا ۲.۵ ثانیه هست. عددی بین ۲.۵ تا ۴ ثانیه یک معیار متوسط هست و نیاز به بهینه‌سازی داره و عددی بزرگتر از ۴ ثانیه به عنوان یک صفحه ضعیف شناخته میشه

- با استفاده از تکنیک‌های بهینه‌سازی مثل preload و استفاده از CDN ها می‌تونیم یک LCP خوب داشته باشیم

#tips
👍11🔥3
سلام دوستان. متاسفم بابت اینکه کمتر دارم فعالیت می‌کنم. واقعاً دوست دارم مثل سابق فعالیت داشته باشم. اما توی برهه‌ای هستم که کمتر می‌تونم تمرکز داشته باشم. ولی هدفم اینه که خیلی زود با گذشت از این برهه بتونم دوباره به صورت مستمر فعالیت داشته باشم. خواستم تشکر کنم از اینکه حضور دارین و امیدوارم با دعای خیرتون بتونم مثل سابق و حتی بهتر فعالیت کنم و در خدمتتون باشم 🌹❤️
129👍12👏2
🔺اگه توی جاوااسکریپت تازه کار هستین، پیشنهاد می‌کنم یکی از پرطرفدارترین قسمت‌های «جاوااسکریپت برای مبتدیان» توی دیتی که ساختن SPA با Vanilla JS (جاوااسکریپت خام) هست رو ببینین و بررسی کنین:
» Demo
» Source Code
» Video

#javanoscript
🔥18👍62
🔺به جاوااسکریپت یک متد جدید اضافه شده به اسم hasOwn که کارایی اون خیلی شبیه به hasOwnProperty هست و به زودی قراره به عنوان جایگزین این متد معرفی بشه

- این متد از آبجکتِ Object در دسترس هست و بررسی می‌کنه که آیا یک پراپرتی توی یک آبجکت وجود داره یا نه

- توی این پست به صورت اختصاصی با این متد و تفاوت‌های اون با hasOwnProperty آشنا بشین:
ditty.ir/503 💯

#javanoscript
🔥21👍6👏2