| Rad Dev (JS) 🖤 |
Открыть в Telegram
#JS 👑 سعیدیراد هستم، اینجا تجربم و چیزایی که یاد میگیرم رو به اشتراک میذارم. محتوای کانال کاملا Human-Generated میباشند. ارتباط: @AminKhoy78 مخلصم 👨💻🖤
Больше2 720
Подписчики
+224 часа
+47 дней
+6830 дней
Архив постов
2 720
50 مینیپروژه فرانتاند (Html Css Js) در 50 روز (همراه با سورسکد):
🔗 https://github.com/bradtraversy/50projects50days
اگه در حال یادگیری هستین یا تازه یاد گرفتین، خیلی میتونه مفید باشه واستون.
@Mern_stack_01
2 720
قدیما واسه این که وقتی اسم یه تگ باز رو rename میکنی اسم تگ بستش هم rename بشه، اکستنشن Auto Rename Tag رو نصب میکردیم.
الان نیازی به اکستنشن نیست. این کانفیگ همون کار رو انجام میده:
"editor.linkedEditing": true,
@Mern_stack_012 720
تو مهندسی نرمافزار یه چیزی داریم به اسم Overengineering که اکثرا افراد کمتجربه دچارش میشن.
فرض کن علی میخواد یه سایت کاریابی بسازه. علی از روز اول میره سمت میکروسرویس، ردیس کلاستر، لود بالانسر، چند دیتابیس، RabbitMQ و ...
در حالی که سایتش هنوز 10 تا کاربر هم نداره. معلوم نیست اصلا کسی از محصول استفاده میکنه یا نه.
به این کار اصطلاحا Overengineering گفته میشه. یجورایی یعنی مشکلی که هنوز وجود نداره رو از قبل حل کنیم.
@Mern_stack_01
2 720
یه سوال ...
با چه مقداری برای x این شرط میتونه true باشه؟
typeof x === 'undefined' && x.length > 0@Mern_stack_01
2 720
اگه نمونهکار یا Portfolio توسعه میدید که میخواید شما رو به بازار کار برسونه، حتما از Ui Design حرفهای استفاده کنید. اصلا سعی نکنید یه چیز مندرآوردی بسازید یا از جایی کپی کنید.
تو بررسی نمونهکار، اولین چیزی که کارفرما باهاش مواجه میشه uiه.
@Mern_stack_01
2 720
یادش بخیر.
یکی دو سال پیش یکی یه پکیج به اسم everything ساخته بود و پابلیش کرده بود تو npm.
همونطور که از اسمش هم مشخصه، همه پکیجهای npm رو تو خودش به عنوان دپندنسی داشت.
واسه همین بقیه دولوپرا نمیتونستن پکیجشون رو از npm حذف کنن. چون پکیجشون به عنوان دپندنسی یه پکیج دیگه بود :))
@Mern_stack_01
2 720
یکی از مفاهیمی که به عنوان برنامهنویس جاوا اسکریپت باید به خوبی بلد باشیم Deep Coppy و Shallow Copy هست.
این مقاله این دو مفهوم رو به خوبی و با مثال های خوب توضیح داده:
🔗 Article Link
@Mern_stack_01
2 720
خب این باگ هم فیکس شد.
حتما برنامهنویسی یاد بگیرید.
برنامهنویسی بهترین کار دنیاست.
@Mern_stack_01
2 720
اکثرا اگه بخوایم سمت فرانتاند با کوکیها کار کنیم از document.cookie استفاده میکنیم. اما از دردسرای این روش هر چی بگم کم گفتم.
مثلا واسه خوندن کوکی باید slice و find و split بزنیم.
حتی حذف کوکی هم دردسره.
اما خبر خوب اینه که یه Api جدید اضافه شده به اسم CookieStore که کار باهاش خیلی راحتتره. هم ایجاد کوکی، هم خوندن کوکی و ... حتی حذف کوکی. حتی باهاش میتونین Watch بنویسین. خیلی خوبه :))
پشتیبانی مرورگرا رو هم داره و به نظرم دیگه باید از document.cookie خداحافظی کنیم. CookieStore حتی تو Service Worker هم کار میکنه.
@Mern_stack_01
2 720
فرانتاند هم اینقد پر استرس؟
موقع نوشتن useEffect باید با سرعت نور تایپ کنیم تا یهوقت فرصتی به auto save ادیتور ندیم که بخواد useEffect ناقص رو تو مرورگر اجرا کنه و تو تکرار رندر بیفته و سیستم کرش کنه.
@Mern_stack_01
2 720
در ادامه این پست، احتمالا دیدید که یسری اسکریپت های package.json رو بدون run اجراشون میکنیم. مثلا به جای npm run start مینویسیم npm start.
دلیلش اینه که خود npm واسه یسری keywordها شورتکات تعریف کرده. مثل:
- npm start
- npm test
- npm stop
- npm restart
@Mern_stack_01
2 720
اگه Coding Interview رو کنکور در نظر بگیریم، LeetCode میشه کتاب کنکوری.
یکی از سایت هایی که مهارت حل مسئله شما رو به شدت تقویت میکنه و در نتیجه واسه Coding Interview خیلی آمادهتر میشید، سایت LeetCode هست:
🔗 LeetCode.com
البته به نظرم قبل از حل تمرینات لیتکد بهتره مفاهیم پایه مربوط به الگوریتم و ساختمان داده رو بلد باشید.
@Mern_stack_01
2 720
قدیما که ادا هایی مثل دوتا مانیتور و تم دارک و قهوه و ماچا و … نبودن، تو همچین محیطی کد میزدیم.
@Mern_stack_01
2 720
در ادامه این پست، تو package.json میتونید واسه نامگذاری اسکریپتها از : استفاده کنید. یعنی اینطوری:
{ "scripts": { "test": "jest", "test:watch": "jest --watch", "test:coverage": "jest --coverage", "build": "tsc", "build:client": "vite build", "build:server": "tsc" } }کاراکتر : هیچ معنی خاصی واسه npm نداره و فقط یه Naming Convention بین برنامهنویسهاست. این ساختار تو پروژه های بزرگ خیلی خواناتره. @Mern_stack_01
2 720
دلیل این که درخواست های اقوام برای آموزش برنامهنویسی به فرزندانشون رو رد میکنم اینه که موفقشدن تو این حوزه فقط 30 درصد به استاد / مدرس بستگی داره و مابقیش بر عهده خود شخصه.
اراده، انگیزه، علاقه، حتی عرضه، نوع شخصیت، حتی ارتباطات و … کلی چیز دیگه موثرند.
حالا اگه شخص این وسط یه درصد موفق نشه، همه تقصیرا میفته گردن مدرس بیچاره.
اگه میخواید بعدا مزه پشیمونی رو تجربه نکنید، شما هم همچین درخواست هایی رو از اقوام رد کنید.
@Mern_stack_01
2 720
در رابطه با این Poll باید بگم یه چیزی وجود داره یه اسم Best Practice Trap. یعنی تله بستپرکتیسها.
اکثرا وقتی یه best practice میبینیم به عنوان یه فکت مطلق برداشت میکنیم که همیشه درسته، همه جا باید ازش استفاده کرد و …
تو کد بالا دولوپر کمتجربه کد 2 رو انتخاب میکنه. چون احتمالا با یه اصلی به اسم DRY آشنایی داره و میگه نباید کد رو تکرار کرد.
نمیدونه تو کد دوم باید کلی if نوشت که خودش باعث کثیفی کد میشه. نمیدونه تو ماه های آینده نیاز های یوزر و ادمین از همدیگه جدا میشن و اونموقع هم قراره کلی if دیگه به فانکشن اضافه میشه و در نتیجه فانکشن تبدیل میشه به یه هیولا که نمیشه حتی بهش دست زد دیگه.
گاهی اوقات کمی تکرار بهتر از abstraction زودهنگام هست.
در نتیجه سعی کنید تو تله Best Practice نیفتید. بستپرکتیسها فکت مطلق نیستن.
اکثر بستپرکتیسها عمدتا واسه یه context خاص تعریف میشن.
@Mern_stack_01
