| Rad Dev (JS) 🖤 |
2.69K subscribers
401 photos
18 videos
10 files
723 links
#JS 👑

سعیدی‌را‌د هستم، اینجا تجربم و چیزایی که یاد می‌گیرم رو به اشتراک می‌ذارم.

ارتباط:

@AminKhoy78

مخلصم 👨‍💻🖤
Download Telegram
| Rad Dev (JS) 🖤 |
در ادامه این پست، تو package.json می‌تونید واسه نام‌گذاری اسکریپت‌ها از : استفاده کنید. یعنی این‌طوری: { "scripts": { "test": "jest", "test:watch": "jest --watch", "test:coverage": "jest --coverage", "build": "tsc", "build:client":…
در ادامه این پست، احتمالا دیدید که یسری اسکریپت های package.json رو بدون run اجراشون می‌کنیم. مثلا به جای npm run start می‌نویسیم npm start.

دلیلش اینه که خود npm واسه یسری keywordها شورت‌کات تعریف کرده. مثل:

- npm start
- npm test
- npm stop
- npm restart

@Mern_stack_01
❤24👍7⚡2👎1💯1
فرانت‌اند هم این‌قد پر استرس؟

موقع نوشتن useEffect باید با سرعت نور تایپ کنیم تا یه‌وقت فرصتی به auto save ادیتور ندیم که بخواد useEffect ناقص رو تو مرورگر اجرا کنه و تو تکرار رندر بیفته و سیستم کرش کنه.

@Mern_stack_01
😁89❤5🤯4👎2💯2👍1💔1
اکثرا اگه بخوایم سمت فرانت‌اند با کوکی‌ها کار کنیم از document.cookie استفاده می‌کنیم. اما از دردسرای این روش هر چی بگم کم گفتم.

مثلا واسه خوندن کوکی باید slice و find و split بزنیم.
حتی حذف کوکی هم دردسره.

اما خبر خوب اینه که یه Api جدید اضافه شده به اسم CookieStore که کار باهاش خیلی راحت‌تره. هم ایجاد کوکی، هم خوندن کوکی و ... حتی حذف کوکی. حتی باهاش می‌تونین Watch بنویسین. خیلی خوبه :))

پشتیبانی مرورگرا رو هم داره و به نظرم دیگه باید از document.cookie خداحافظی کنیم. CookieStore حتی تو Service Worker هم کار می‌کنه.

@Mern_stack_01
❤41👍6🔥2💯2
آقا سمت برنامه‌نویسی نیاید.

کاملا جدی.

@Mern_stack_01
👍93🤯28😁15🤡8💔7👎2⚡1❤1💯1
| Rad Dev (JS) 🖤 |
آقا سمت برنامه‌نویسی نیاید. کاملا جدی. @Mern_stack_01
خب این باگ هم فیکس شد.
حتما برنامه‌نویسی یاد بگیرید.

برنامه‌نویسی بهترین کار دنیاست.

@Mern_stack_01
😁176🤡12👍4🔥3👎2💯2⚡1
یکی از مفاهیمی که به عنوان برنامه‌نویس جاوا اسکریپت باید به خوبی بلد باشیم Deep Coppy و Shallow Copy هست.

این مقاله این دو مفهوم رو به خوبی و با مثال های خوب توضیح داده:

🔗 Article Link

@Mern_stack_01
Please open Telegram to view this post
VIEW IN TELEGRAM
👍27❤7💯2
یادش بخیر.
یکی دو سال پیش یکی یه پکیج به اسم everything ساخته بود و پابلیش کرده بود تو npm.
همون‌طور که از اسمش هم مشخصه، همه پکیج‌های npm رو تو خودش به عنوان دپندنسی داشت.
واسه همین بقیه دولوپرا نمی‌تونستن پکیج‌شون رو از npm حذف کنن. چون پکیج‌شون به عنوان دپندنسی یه پکیج دیگه بود :))

@Mern_stack_01
😁77🤯3👍2💯1
اگه نمونه‌کار یا Portfolio توسعه می‌دید که می‌خواید شما رو به بازار کار برسونه، حتما از Ui Design حرفه‌ای استفاده کنید. اصلا سعی نکنید یه چیز من‌در‌آوردی بسازید یا از جایی کپی کنید.

تو بررسی نمونه‌کار، اولین چیزی که کارفرما باهاش مواجه می‌شه uiه.

@Mern_stack_01
👍48❤5⚡2👎1
یه سوال ...

با چه مقداری برای x این شرط می‌تونه true باشه؟

typeof x === 'undefined' && x.length > 0


@Mern_stack_01
🤔37😁8🤯7👎3💯3👍1
تو مهندسی نرم‌افزار یه چیزی داریم به اسم Overengineering که اکثرا افراد کم‌تجربه دچارش می‌شن.

فرض کن علی می‌خواد یه سایت کاریابی بسازه. علی از روز اول میره سمت میکروسرویس، ردیس کلاستر، لود بالانسر، چند دیتابیس، RabbitMQ و ...
در حالی که سایتش هنوز 10 تا کاربر هم نداره. معلوم نیست اصلا کسی از محصول استفاده می‌کنه یا نه.

به این کار اصطلاحا Overengineering گفته می‌شه. یجورایی یعنی مشکلی که هنوز وجود نداره رو از قبل حل کنیم.

@Mern_stack_01
❤48👍17💯2⚡1
قدیما واسه این که وقتی اسم یه تگ باز رو rename می‌کنی اسم تگ بستش هم rename بشه، اکستنشن Auto Rename Tag رو نصب می‌کردیم.

الان نیازی به اکستنشن نیست. این کانفیگ همون کار رو انجام می‌ده:

"editor.linkedEditing": true,


@Mern_stack_01
❤36👍14
50 مینی‌پروژه فرانت‌اند (Html Css Js) در 50 روز (همراه با سورس‌کد):

🔗 https://github.com/bradtraversy/50projects50days

اگه در حال یادگیری هستین یا تازه یاد گرفتین، خیلی می‌تونه مفید باشه واستون.

@Mern_stack_01
Please open Telegram to view this post
VIEW IN TELEGRAM
❤35👍3💯3
فکت: پروژه‌ای که مسیر و تایم‌لاین مشخص نداشته باشه، کِش پیدا می‌کنه.

@Mern_stack_01
👍74❤4⚡3🔥2
تو ری‌اکت اگه روش های بهینه‌سازی رو بلد باشید، پروژه‌هاتون پرفورمنس بهتری خواهند داشت.

این مقاله 4 روشی که تو تصویر می‌بینید رو به خوبی توضیح داده:

🔗 Article Link

@Mern_stack_01
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡21❤9🔥3💯2
😁114🤡4❤3💔1
This media is not supported in your browser
VIEW IN TELEGRAM
خشایار تو این ویدئوش راجع به پول حرفای خوب و درستی زد.

اگه دوست داشتین ببینین لینکش اینه:

📹 Youtube

@Mern_stack_01
Please open Telegram to view this post
VIEW IN TELEGRAM
❤34👍9⚡2💯2👎1
فکت: آگهی استخدامی که فقط فیلد رو ذکر کرده و از تکنولوژی‌ها حرفی نزده، به احتمال زیاد به درد نمی‌خوره.

یا سرکاریه، یا دلاله و یا شرکته محیط حرفه‌ای نداره.

@Mern_stack_01
👍58❤5💯2👎1🔥1
سوال مصاحبه: متد Promise.all جاوا اسکریپت رو پیاده‌سازی کنید.

راهنمایی: Promise.all‌ صبر می‌کنه تا همه Promiseها تموم بشن، بعد نتایج رو بده.
همچنین اگه یکی fail شد، کل کار fail میشه.


پاسخ:

function myPromiseAll(promises) {
return new Promise((resolve, reject) => {
const results = [];
let completed = 0;

promises.forEach((p, index) => {
Promise.resolve(p)
.then((value) => {
results[index] = value;
completed++;

if (completed === promises.length) {
resolve(results);
}
})
.catch(reject);
});
});
}


@Mern_stack_01
❤35👍5🤯1💯1💔1
فکر کن پروژت رو موبایل باگ داره. اما تو گوشی دیگه Devtools نداری که لاگ بندازی یا یسری کارای دیگه بکنی. این‌جاست که پکیج VConsole میاد وسط.

این پکیج تو مرورگر گوشی یه DevTools باز می‌کنه که می‌تونی لاگ های کنسول, Network, Storage, Elements و ... رو ببینی و مانیتور کنی:

🔗 https://www.npmjs.com/package/vconsole

پ‌ن: خودم تستش نکردم. تو یکی‌ از مقالاتی که می‌خوندم دیدمش.

@Mern_stack_01
Please open Telegram to view this post
VIEW IN TELEGRAM
👍32❤10🔥2💯2👎1
CleanCode - RadDev.pdf
2.9 MB
فایل PDF کتاب CleanCode عمو باب.

پ‌ن: راستش به نظرم نسخه ترجمه‌شده کتاب به درد نمی‌خوره.

@Merk_stack_01
👍26❤8👎2🤡2💯1
اگه دریافت هر کدوم از اطلاعات کاربران، محصولات و دسته‌بندی‌ها 1 ثانیه طول بکشه، اجرای کد زیر 3 ثانیه طول می‌کشه:

await fetch("/products");
await fetch("/categories");
await fetch("/users");


اما با Promise.all‌ شاید حوالی 1 ثانیه طول بکشه:

const [products, categories, users] =
await Promise.all([
fetch("/products"),
fetch("/categories"),
fetch("/users"),
]);


@Mern_stack_01
👍38❤9💯2