| 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
دلیلش اینه که خود 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
موقع نوشتن 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
مثلا واسه خوندن کوکی باید slice و find و split بزنیم.
حتی حذف کوکی هم دردسره.
اما خبر خوب اینه که یه Api جدید اضافه شده به اسم CookieStore که کار باهاش خیلی راحتتره. هم ایجاد کوکی، هم خوندن کوکی و ... حتی حذف کوکی. حتی باهاش میتونین Watch بنویسین. خیلی خوبه :))
پشتیبانی مرورگرا رو هم داره و به نظرم دیگه باید از document.cookie خداحافظی کنیم. CookieStore حتی تو Service Worker هم کار میکنه.
@Mern_stack_01
❤41👍6🔥2💯2
👍93🤯28😁15🤡8💔7👎2⚡1❤1💯1
| Rad Dev (JS) 🖤 |
آقا سمت برنامهنویسی نیاید. کاملا جدی. @Mern_stack_01
😁176🤡12👍4🔥3👎2💯2⚡1
یکی از مفاهیمی که به عنوان برنامهنویس جاوا اسکریپت باید به خوبی بلد باشیم Deep Coppy و Shallow Copy هست.
این مقاله این دو مفهوم رو به خوبی و با مثال های خوب توضیح داده:
🔗 Article Link
@Mern_stack_01
این مقاله این دو مفهوم رو به خوبی و با مثال های خوب توضیح داده:
@Mern_stack_01
Please open Telegram to view this post
VIEW IN TELEGRAM
👍27❤7💯2
یادش بخیر.
یکی دو سال پیش یکی یه پکیج به اسم everything ساخته بود و پابلیش کرده بود تو npm.
همونطور که از اسمش هم مشخصه، همه پکیجهای npm رو تو خودش به عنوان دپندنسی داشت.
واسه همین بقیه دولوپرا نمیتونستن پکیجشون رو از npm حذف کنن. چون پکیجشون به عنوان دپندنسی یه پکیج دیگه بود :))
@Mern_stack_01
یکی دو سال پیش یکی یه پکیج به اسم everything ساخته بود و پابلیش کرده بود تو npm.
همونطور که از اسمش هم مشخصه، همه پکیجهای npm رو تو خودش به عنوان دپندنسی داشت.
واسه همین بقیه دولوپرا نمیتونستن پکیجشون رو از npm حذف کنن. چون پکیجشون به عنوان دپندنسی یه پکیج دیگه بود :))
@Mern_stack_01
😁77🤯3👍2💯1
اگه نمونهکار یا Portfolio توسعه میدید که میخواید شما رو به بازار کار برسونه، حتما از Ui Design حرفهای استفاده کنید. اصلا سعی نکنید یه چیز مندرآوردی بسازید یا از جایی کپی کنید.
تو بررسی نمونهکار، اولین چیزی که کارفرما باهاش مواجه میشه uiه.
@Mern_stack_01
تو بررسی نمونهکار، اولین چیزی که کارفرما باهاش مواجه میشه uiه.
@Mern_stack_01
👍48❤5⚡2👎1
یه سوال ...
با چه مقداری برای x این شرط میتونه true باشه؟
@Mern_stack_01
با چه مقداری برای x این شرط میتونه true باشه؟
typeof x === 'undefined' && x.length > 0
@Mern_stack_01
🤔37😁8🤯7👎3💯3👍1
تو مهندسی نرمافزار یه چیزی داریم به اسم Overengineering که اکثرا افراد کمتجربه دچارش میشن.
فرض کن علی میخواد یه سایت کاریابی بسازه. علی از روز اول میره سمت میکروسرویس، ردیس کلاستر، لود بالانسر، چند دیتابیس، RabbitMQ و ...
در حالی که سایتش هنوز 10 تا کاربر هم نداره. معلوم نیست اصلا کسی از محصول استفاده میکنه یا نه.
به این کار اصطلاحا Overengineering گفته میشه. یجورایی یعنی مشکلی که هنوز وجود نداره رو از قبل حل کنیم.
@Mern_stack_01
فرض کن علی میخواد یه سایت کاریابی بسازه. علی از روز اول میره سمت میکروسرویس، ردیس کلاستر، لود بالانسر، چند دیتابیس، RabbitMQ و ...
در حالی که سایتش هنوز 10 تا کاربر هم نداره. معلوم نیست اصلا کسی از محصول استفاده میکنه یا نه.
به این کار اصطلاحا Overengineering گفته میشه. یجورایی یعنی مشکلی که هنوز وجود نداره رو از قبل حل کنیم.
@Mern_stack_01
❤48👍17💯2⚡1
قدیما واسه این که وقتی اسم یه تگ باز رو rename میکنی اسم تگ بستش هم rename بشه، اکستنشن Auto Rename Tag رو نصب میکردیم.
الان نیازی به اکستنشن نیست. این کانفیگ همون کار رو انجام میده:
@Mern_stack_01
الان نیازی به اکستنشن نیست. این کانفیگ همون کار رو انجام میده:
"editor.linkedEditing": true,@Mern_stack_01
❤36👍14
50 مینیپروژه فرانتاند (Html Css Js) در 50 روز (همراه با سورسکد):
🔗 https://github.com/bradtraversy/50projects50days
اگه در حال یادگیری هستین یا تازه یاد گرفتین، خیلی میتونه مفید باشه واستون.
@Mern_stack_01
اگه در حال یادگیری هستین یا تازه یاد گرفتین، خیلی میتونه مفید باشه واستون.
@Mern_stack_01
Please open Telegram to view this post
VIEW IN TELEGRAM
❤35👍3💯3
👍74❤4⚡3🔥2
تو ریاکت اگه روش های بهینهسازی رو بلد باشید، پروژههاتون پرفورمنس بهتری خواهند داشت.
این مقاله 4 روشی که تو تصویر میبینید رو به خوبی توضیح داده:
🔗 Article Link
@Mern_stack_01
این مقاله 4 روشی که تو تصویر میبینید رو به خوبی توضیح داده:
@Mern_stack_01
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡21❤9🔥3💯2
This media is not supported in your browser
VIEW IN TELEGRAM
خشایار تو این ویدئوش راجع به پول حرفای خوب و درستی زد.
اگه دوست داشتین ببینین لینکش اینه:
📹 Youtube
@Mern_stack_01
اگه دوست داشتین ببینین لینکش اینه:
@Mern_stack_01
Please open Telegram to view this post
VIEW IN TELEGRAM
❤34👍9⚡2💯2👎1
فکت: آگهی استخدامی که فقط فیلد رو ذکر کرده و از تکنولوژیها حرفی نزده، به احتمال زیاد به درد نمیخوره.
یا سرکاریه، یا دلاله و یا شرکته محیط حرفهای نداره.
@Mern_stack_01
یا سرکاریه، یا دلاله و یا شرکته محیط حرفهای نداره.
@Mern_stack_01
👍58❤5💯2👎1🔥1
سوال مصاحبه: متد Promise.all جاوا اسکریپت رو پیادهسازی کنید.
راهنمایی: Promise.all صبر میکنه تا همه Promiseها تموم بشن، بعد نتایج رو بده.
همچنین اگه یکی fail شد، کل کار fail میشه.
پاسخ:
@Mern_stack_01
راهنمایی: 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
این پکیج تو مرورگر گوشی یه DevTools باز میکنه که میتونی لاگ های کنسول, Network, Storage, Elements و ... رو ببینی و مانیتور کنی:
پن: خودم تستش نکردم. تو یکی از مقالاتی که میخوندم دیدمش.
@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
پن: راستش به نظرم نسخه ترجمهشده کتاب به درد نمیخوره.
@Merk_stack_01
👍26❤8👎2🤡2💯1
اگه دریافت هر کدوم از اطلاعات کاربران، محصولات و دستهبندیها 1 ثانیه طول بکشه، اجرای کد زیر 3 ثانیه طول میکشه:
اما با Promise.all شاید حوالی 1 ثانیه طول بکشه:
@Mern_stack_01
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