LearnByLearn📖 – Telegram
LearnByLearn📖
570 subscribers
44 photos
9 videos
5 files
69 links
Download Telegram
LearnByLearn📖
👈🏻 بررسی Object.create  و نحوه کار کردش لینک مقاله 👈🏻  لینک @LearnByLearn #concept #javanoscript #object_oriented_javanoscript #object_create
سلام به عزیزانی که کانال رو دنبال میکنن❤️

قسمت ششم یه خرده طولانی هست و ویراستاریش طول میکشه اما بسیار جامع هست چون همه مطالب رو جمع کردم توی یک مقاله و مطمعن باشید درک خوبی از ارث بری توی جاواسکریپت بدست میارید

تا چند ساعت دیگه منتشرش میکنم

#پست_موقت
👏4
Media is too big
VIEW IN TELEGRAM
توی این ویدیو یاد میگیریم :

تفاوت Reference by value و primitive by value در جاواسکریپت چیه ؟

تفاوت shallow copy و deep copy چیه ؟

چطور یک آبجکت رو کپی کنیم ؟ و با ابزار lodash آشنا میشیم

@LearnByLearn
#javanoscript
#reference_value
#primitive_value
👍7👏1
LearnByLearn📖
The_Complete_Developer_Master_the_Full_Stack_With_TypeScript,_React.pdf
اگه میخوایین ببینید و یادبگیرید یه اپلیکیشن فول استک با جاواسکریپت بسازید این کتاب رو از دست ندین
چیا توش یاد میگیرید؟
Typenoscript
Node.js
MongoDB
Next.js
Docker
TDD
Deploy
البته عمیقا این ابزار هارو یاد نمیده ولی با پروسه تولید یه اپلیکیشن کاملا جی اسی از صفر تا صد اشناتون میکنه
کتاب داغه داغ ساخت 2024 هستش😉

#book
@LearnByLearn
🔥3👍1
Audio
رادیو جادی ۱۷۵ - کار و زندگی و تنبلی و فلسفه و جهان بینی در گپی با پادکست کارگاه

https://youtu.be/TC9VV4nxLvc

چند وقت پیش به دعوت میلاد به پادکست کارگاه رفتم و گپی باهاش زدم. نمی‌دونستم در مورد چی قراره صحبت می‌کنیم. فکر می کردم بیشتر قراره بگم چطوری کار می کنم و اینها ولی بیشتر در مورد فلسفه زندگی و اینها گپ زدیم به نظرم. راستش درست یادم نیست چی گفتیم ولی یادمه که گفتگوی خوبی بود. به من که خوش گذشت و قرار شد چند روز بعد از اینکه خودش منتشرش کرد و آدم ها اونجا دیدنش، منم اینجا بذارم که در آرشیو من هم باشه.

#پادکست #رادیو
اونایی که با زبان گولنگ کار کردن میدونن که ارور هندلینگ توی گولنگ اینطوری انجام میشه:
 result, err := myFunc(a, b)


حالا جاواسکریپتی ها پیش خودشون گفتن مگه ما چیمون از گولنگی ها کمتره ؟؟؟ 😎

اومدن یه پروپوزال دادن، گفتن چی؟؟؟
گفتن آقا جان بیاییم از شر try/catch خلاص شیم یا حداقلش اینه که کمتر ازش استفاده کنیم 😍

پس گفتن از این به بعد اینطوری توی جاواسکریپت ارور هارو هندل کنیم
const [error, response] ?= await fetch("https://arthur.place")


توی این پروپوزال یک اپراتور جدید به اسم safe assignment معرفی کردن که به این شکل هست 👈🏻 =?
که خروجی تابع سمت راست رو توی یک تاپل یعنی [error, response] میریزه
یعنی اگه ارور داشتیم میاد توی error و اگه نتیجه تابع هرچی که بود میاد توی response

⭐️ مزیتش چیه ؟؟؟
از شر try/catch ها خلاصمون میکنه و خیلی کدامون تمیز تر میشه

☝🏻 البته خیلی نکات هستن که نگفتم چون پست طولانی میشد، پس اگه میخوایین بیشتر راجبش بدونید این لینک رو مطالعه کنید

🔗 لینک گیت هاب

⚠️ دقت کنید که این ویژگی در حد پروپوزال هست و در دست توسعه و طبیعتا تا بخواد عملی بشه و مرورگر ها ازش ساپورت کنن طول خواهد کشید

@LearnByLearn
3👍1
اگه با داکر کار میکنی و مثل من هی کانتینر بالا میاری و هی تست میکنی و بعد حذف میکنی😥

یا مثلا یه کانتینر میخوایی بیاری بالا یه چیزی رو تست بزنی بعد بری دستی کانتینر رو حذف کنی تا فضاتو اشغال نکنه😤

باید بگم نیاز نیست هی هربار کانتینر بیاری بالا و دستی بیاری پایین
کافیه از فلگ rm-- استفاده کنی، با این فلگ خود داکر میفهمه وقتی کانتینرت stop شد بره حذفش کنه

📿 الله اکبر از این همه هوشمندی😁

یعنی اینطوری:
docker run -p 3002:3002/tcp --name nodejs --rm f56er4


@LearnByLearn
#docker
#trick
5👎1
👈🏻 میدلور (middleware) چیه و چطور کار میکنه؟ best practices هاش کدومن ؟ چطور ازش استفاده کنیم ؟

لینک مقاله 👈🏻  لینک

@LearnByLearn
#backend
#expressjs
#concept
👍4
سلام به همگی مخصوصا بروبچ های فرانتی

توی سطح نت api خیلی جالبی چه خارجی یا چه داخلی که ویژگی هایی مثل authentication و jwt ، سطح دسترسی کاربران ، crud کامل و خلاصه کلی فیچر داشته باشه نبود
حداقل من هرچی گشتم نبود یا اگه بود خیلی دیگه ساده بودن و ویژگی های زیادی نداشتن یا داکیومنت درست حسابی نداشتن یا CRUD ساده بودن

پس اومدم یه پروژه رو به دو منظور زدم، هم دوستان فرانتی عزیزی که نیاز به api دارند ازش استفاده کنن و هم خودم برای رزومه ام استفادش کنم

من توی این پروژه یک CMS (مدیریت محتوا) به صورت api زدم و داکرایز شده هستش
میتونید clone اش کنید و براش با هر فریمورکی که عشقتونه فرانت بنویسید
نیاز نیست داکر بلد باشید توضیح دادم چطور پروژه رو بیارید بالا
ولی درکل پیشنهاد میکنم فارغ از این پروژه، داکر رو حتما یاد بگیرید، چه فرانتی باشید چه بک اندی

توی Readme پروژه همه چیو دقیق تر توضیح دادم

پروژه فعلا production ready نیست ولی کم کم به اونجاشم میرسه😉 همچنین قرار نیست از این پروژه هایی باشه که رها بشه و هر وقت تایم اجازه بده بهش میرسم

قطعا مثل هر پروژه دیگه ای رفع باگ و بهبود های زیادی نیاز داره که به مرور اوکی میشه (وقت کنم باز بهش فیچر اضاف میکنم)


اگه دوست داشتید این پست رو بین دوستان فرانت اندیتون share کنید تا بقیه هم استفاده کنن

بازم سوالی داشتین در خدمتم

و اگه دلت بود و خوشت اومد تو گیت هاب استار هم بدی ، مخلص همه ❤️

لینک پروژه

@LearnByLearn
🔥16👍21
بعد از سالها ورژن 5 فریمورک محبوب Express.js چند روز پیش اومد بیرون و تغییرات زیادی داشته

اگه خواستید تغییراتو ببینید این ویدو کوتاه رو ببینید

https://youtu.be/kY1EHa0dCss?si=2rqGZfS6tXG5mvxz
🔥1
نبرد بین نظم و انعطاف (قسمت اول از مفاهیم دیتابیس)

👈🏻 کی به وجود اومدن؟
👈🏻 چرا به وجود اومدن؟
👈🏻 چه موقع از کدوم استفاده کنیم و چه موقع استفاده نکنیم؟
👈🏻 مزیت و معایبشون چیه؟ به درد چه پروژه هایی میخوره ؟
👈🏻 مقیاس پذیری افقی و عمودی چیه ؟

🔗 لینک

@LearnByLearn

#database
#sql
#nosql
👍1
یه خبر خوب برای اونایی که با jetbrain عشق میکنن

در یک اقدام بی سابقه 😄 شرکت jet brains دو تا از IDE هاش رو یعنی web storm و rider رایگان کرده و میتونید برای استفاده های غیرتجاری ازش بهره ببرید

به گفته خود سایتش تنها تفاوت ورژن تجاری و غیرتجاریش ویژگی code with me هستش که خب فقط توی ورژن تجاری یعنی همون پولی خودمون قابل دسترس هست

اینکه مقاصد تجاری و غیرتجاریش چی هستن خیلی دقیق توی وبلاگش توضیح داده
ولی در این حد بدونید برای ما ایرانیا همون رایگان شده و برید عشق کنید😍

نکته دیگه ای که هستش اینه که jetbrain کلنگ مفت به قبر نمیزنه و اگه از نسخه رایگان یا همون غیرتجاری قراره استفاده کنید ملزم هستید که jet brains به صورت ناشناس از IDE شما داده جمع اوری کنه حالا اینکه واقعا ناشناسه یا نه الله العلم🤷🏻‍♂️

حالا برای یکسری ها این نکته مهمه برای یکسری ها هم مهم نیس


اطلاعات دقیق ترش توی لینک زیر:

https://blog.jetbrains.com/blog/2024/10/24/webstorm-and-rider-are-now-free-for-non-commercial-use/


@LearnByLearn
👍2
📝 خالق لینوکس: ۹۰ درصد هوش مصنوعی، بازاریابی است!

لینوس توروالدز، خالق لینوکس، در اظهارنظری جنجالی اعلام کرد که هوش مصنوعی ترکیبی از ۹۰ درصد بازاریابی و ۱۰ درصد واقعیت است.

لینوس توروالدز، توسعه‌دهنده اصلی لینوکس، در حاشیه نشست Open Source درباره وضعیت کنونی صنعت هوش مصنوعی (AI) دیدگاه‌هایی انتقادی و بی‌پرده ارائه داد. توروالدز که به‌خاطر نظرات تند و صریحش در‌زمینه فناوری مشهور است، در مصاحبه‌ای با TFiR وضعیت کنونی AI را با حالتی بدبینانه به‌عنوان «۹۰ درصد بازاریابی و تنها ۱۰ درصد واقعیت» توصیف کرد.

در این مصاحبه، توروالدز با وجود تمایل به مشاهده پتانسیل‌های هوش مصنوعی، تأکید کرد که تبلیغات اغراق‌آمیز این صنعت، مانعی بر سر راه رشد و درک واقعی AI است. وی با حالتی انتقادی اذعان کرد:

به نظرم هوش مصنوعی واقعاً جالب است و به تغییرات جهانی منجر خواهد شد؛ اما از این چرخه تبلیغاتی بیزارم و تمایلی به حضور در آن ندارم.

وی در ادامه مکانیزم مقابله خود با این وضعیت را چنین توصیف کرد:

رویکرد من به هوش مصنوعی این است که فعلاً اساساً آن را نادیده بگیرم؛ چون به نظرم کل صنعت فناوری حول محور AI در وضعیت بسیار نامطلوبی قرار گرفته است.


منبع خبر HomeAI

@LearnByLearn
4👍1
LearnByLearn📖
وقتی جدول‌ها عاشق می‌شوند (قسمت دوم از مفاهیم دیتابیس) 👈🏻 کلید ها چی هستن و انواع شون ؟ 👈🏻 انواع ریلیشن توی دیتابیس چطوری استفاده میشه؟ 👈🏻 چه موقع از ON DELETE استفاده کنیم ؟ 🔗 لینک مقاله @LearnByLearn #database #sql #nosql #relation_database #keys
دیتابیس بدون ایندکس، مثل کتابخانه بدون فهرست! (قسمت سوم از مفاهیم دیتابیس)

👈🏻 مفهوم ایندکس چیه؟ چه موقع استفاده کنیم چه موقع نکنیم ؟
👈🏻 انواع ایندکس کدوما هستن؟چطوری کار میکنن ؟
👈🏻 بررسی سه ساختار داده مهم ایندکس ها B-tree , Bitmap, hash table


🔗 لینک مقاله

@LearnByLearn

#database
#sql
#nosql
#index
⁉️ تا حالا عبارت currying به گوشتون خورده ؟



همونطور که میدونید توی جاواسکریپت توابع ما first class هستن

یعنی یک تابع رو به عنوان متغیر به تابع دیگه بفرستیم یا از تابع دیگه return اش کنیم

تکنیک currying به شما این امکان رو میده که توابع با آرگومان‌های متعدد رو به دنباله‌ای از توابع تبدیل کنی که این توابع هر کدام یک آرگومان را در یک زمان میگیرن.

یعنی قابلیت استفاده مجدد، ترکیب بندی و انعطاف پذیری کد را ارتقا می دهد.

کد زیر رو درنظر بگیر
وقتی بخوایم از تابع total استفاده کنیم باید هربار هی بهش بگیم واحد پول ما دلاره یا ریاله و مدام اینو توی صدا زدن تکرار کنیم که خب خیلی خوب نیست
function total(sign, amount) {
return `${sign}${amount}`;
}

total("Dolar", 200);
total("Rial", 200);


اما به لطف وجود first class function ها میتونیم از مفهوم currying استفاده کنیم
اینطوری دیگه فقط یکبار واحد پول رو تعیین میکنیم و هزار بار ازش استفاده میکنیم

function total(sign) {
return (amount) => {
return `${sign}${amount}`;
};
}

const totalDolar = total("Dolar");
const totalRial = total("Rial");

totalDolar(200);
totalDolar(200);


به یه روش دیگه هم میشه حرکت currying رو زد اونم استفاده از bind هستش :
function multipleByNumber(y, x) {
return y * x;
}
const multipleByTwo = multipleByNumber.bind(this, 2);

const multipleByThree = multipleByNumber.bind(this, 3);

multipleByTwo(200);
multipleByThree(200);


@LearnByLearn

#currying
#tips
#javanoscript
🔥3👍2
معماری برنامه تعیین‌کننده اصلی عملکرد آن است و این مسئله ممکن است بدیهی به‌نظر برسد، اما تجربه نشان می‌دهد که بسیاری از معماران نرم‌افزار به‌اشتباه تصور می‌کنند با تغییر یک فناوری یا نرم‌افزار زیرساختی، می‌توان مشکلات عملکردی برنامه را حل کرد. به عنوان مثال، ممکن است یک محصول جدید به‌خاطر تبلیغات و بنچمارک‌ها وعده بهبود عملکرد ۲۵ درصدی بدهد، اما اگر مشکل اصلی در معماری ناکارآمد برنامه باشد، این بهبود اندک تأثیر چندانی نخواهد داشت.

تیم‌های پشتیبانی و نویسندگان مطالب مدیریت عملکرد نیز معمولاً توصیه می‌کنند که با تنظیماتی مثل تخصیص حافظه یا اندازه استخر اتصالات، عملکرد برنامه را بهبود بخشید. اما اگر معماری و نحوه استقرار برنامه برای بار کاری مورد انتظار طراحی نشده باشد، این تنظیمات نمی‌توانند عملکرد مطلوب را به ارمغان بیاورند. در چنین شرایطی، به‌جای تکیه بر تنظیمات جزئی، نیاز به بازنگری و اصلاح معماری داخلی یا استراتژی استقرار وجود دارد.

در نهایت، همه برنامه‌ها و محصولات با محدودیت‌های اساسی محاسبات توزیع‌شده و ظرفیت‌های محدود سخت‌افزار مواجه‌اند. به همین دلیل، بهبود عملکرد و مقیاس‌پذیری نیازمند بازطراحی‌های دقیق و هوشمندانه است و نمی‌توان با تغییر ساده نرم‌افزار یا تنظیمات زیرساختی به آن دست یافت.
عملکرد عالی در نرم‌افزار، نتیجه معماری اصولی و طراحی هوشمندانه است، نه تکیه بر تغییر برندها و تنظیمات جزئی. بهبود واقعی یعنی بازنگری عمیق در ساختار و استراتژی.

منبع مطلب 👇

@microfrontend_ir