JSKernel – Telegram
JSKernel
146 subscribers
48 photos
23 videos
9 files
65 links
اینجا باهم دنیای برنامه‌نویسی و توسعه وب رو کشف می‌کنیم.

Group :
https://news.1rj.ru/str/JSKernelGap
Download Telegram
📌 جاوا اسکریپت دقیقا چیه؟ بخش 7: Dynamic

• تو زبانی مثل ++C، وقتی یه متغیر تعریف می‌کنی، باید از قبل مشخص کنی چه نوعی داره (مثلاً عدد، رشته، بولین و...).
به این زبان‌ها می‌گن: Statically Typed

ولی توی جاوااسکریپت این‌طوری نیست.

• جاوااسکریپت یه زبان Dynamically Typed هست. یعنی لازم نیست نوع متغیر رو از قبل مشخص کنی — خودش موقع runtime تشخیص میده که اون متغیر چه نوعی داره.


• از مزیت و معایبش هم بگم که، یکی از کاربرداش اینه که تایپ متغیرها به صورت dynamic یا دستی میتونه تغییر پیدا کنه. ایرادشم مثلا اینکه تو یه سری موارد باگ های عجیب غریبی میده

اما اگه دوست داری که JS رو با type ها استفاده کنی میتونی از TypeScript استفاده کنی. این مشکل با اضافه کردن "static types" حل می‌شه، ولی توی خود JS همیشه با dynamic typing کار می‌کنی.

بخش 1، بخش 2، بخش 3، بخش 4، بخش 5، بخش 6
#javanoscript

@JSKernel
❤‍🔥1
وقتی توروالدز هنوز با RX 580 کرنل کامپایل می‌کنه!

دنیا: !AI! RTX! Liquid Cooling
توروالدز: همون RX 580 کافیه بابا 😎

خالق لینوکس نه‌تنها با کارت گرافیک ۲۰۱۷ش حال می‌کنه، بلکه حتی لپ‌تاپش گرافیک مجزا هم نداره!
یعنی اگه سیستم تو لگ می‌زنه، مشکل از لینوکس نیست، از توعه 😁

منبع
#linux

@JSKernel
👍1
POV:
وقتی Arch نصب میکنید باید یادگرفته باشید مشکلاتتون رو خودتون حل کنید.

توی نصبش هم گیر نکنید که اعصاب نداریم:(

@JSKernel
1
Channel photo updated
📌 جاوا اسکریپت دقیقا چیه؟ بخش 8: Single-threaded

• بعضی زبان‌ها یا محیط‌ها چند تا thread دارن و می‌تونن هم‌زمان چند کار رو با هم انجام بدن (multi-threaded).

اما جاوااسکریپت این‌طوری نیست.
• جاوااسکریپت یه زبان Single-Threaded هست، یعنی در هر لحظه فقط می‌تونه یک کار رو انجام بده.

یعنی چی؟
• توی JavaScript همه‌چیز به ترتیب اجرا میشه (خط‌به‌خط)
• فقط یه دونه thread اصلی داره که بهش می‌گن main thread
• وقتی یه تابع اجرا میشه، بقیه باید صبر کنن تا اون تموم شه


پس engine جاوااسکریپت چطور کارهای مختلف رو به صورت همزمان انجام میده؟
• اینجاست که موتور جاوااسکریپت از یه چیزی به اسم Event Loop استفاده می‌کنه (در بخش آخر در موردش حرف می‌زنیم).

• جاوااسکریپت با کمک Event Loop و محیط اجرا (مرورگر یا Node.js)، می‌تونه کارهای زمان‌بر رو به صورت غیرهم‌زمان (async) مدیریت کنه، بدون اینکه thread اصلی بلاک بشه.


📌 خلاصه:
• جاوااسکریپت با اینکه single-threaded هست ولی با کمک Event Loop می‌تونه چند تا کار مختلف رو به‌صورت هم‌زمان مدیریت کنه.
اگه سوالی دارین تو بخش کامنتا بپرسید.

بخش 1، بخش 2، بخش 3، بخش 4، بخش 5، بخش 6، بخش 7

@JSKernel
‏Chakra UI یه کتابخونه‌ی رابط کاربری برای React، که کلی کامپوننت آماده داره.

• اگه با React کار می‌کنی و دنبال یه راه ساده و سریع برای ساخت UI هستی، Chakra یکی از انتخاب‌های خوبه.

• به‌جای اینکه از صفر دکمه و فرم و مودال بسازی، همه‌چی رو حاضر و آماده بهت می‌ده!

#chakra_ui #chakra

@JSKernel
1
📌 جاوا اسکریپت دقیقا چیه؟ بخش اخر 9: Non-blocking event loop concurrency model

‏Concurrency Mode
• یعنی روسی که engine جاوااسکریپت میتونه کارهای مختلف رو به صورت همزمان (بدون توقف برنامه) انجام بده

اما چرا به Concurrency model نیاز داریم؟
چون خود جاوااسکریپت Single-threaded هست. و صرفا میتونه یه کار رو به صورت همزمان برای ما انجام بده پس ما نیاز به روشی داریم که بتونیم کارهای محتلف و به صورت همزمان انجام بدیم.

حالا اگه ما یه تسک طولانی داشته باشیم چون جاوااسکریپت Single-threaded هست ادامه کد ما تا زمانی که اون تسک طولانی تموم بشه متوقف میشه.

پس ما به یه رفتار غیرمسدودکننده نیاز داریم به اسم Non-blocking
‏Non-blocking
‏blocking یعنی همه چیز صبر کنه تا یه کار تموم بشه
• ‏non-blocking یعنی اون کار زمان‌بر میره توی پس‌زمینه، و بقیه‌ی کد اجرا میشه

حالا به کمک Event loop میتونیم تسک‌های طولانی رو پشت صحنه انجام بدیم و اجازه نمیده کد اصلی ما بلاک بشه

‏Event Loop چیه؟
• یه مکانیزم توی JS که مدیریت می‌کنه کی کدهای async (زمان‌بر) اجرا بشن.

- پشت صحنه می‌شینه
- صف کارهایی که باید اجرا بشن رو بررسی می‌کنه
- وقتی نوبت رسید، اون کار رو میزاره توی thread اصلی و اجراش می‌کنه


• ‏async یه مفهومه یعنی چطور جاوااسکریپت با کارهای زمان‌بر رفتار می‌کنه
• ‏event loop یه مکانیزمه یعنی چطور اون کارهای async رو مدیریت و اجرا می‌کنه

به این سبک اجرای هم‌زمان تو جاوااسکریپت می‌گن:
‏Non-blocking Event Loop Concurrency Model

📌خلاصه:
جاوااسکریپت با وجود اینکه فقط یه thread برای اجرا داره، ولی با استفاده از یه سیستم به اسم Event Loop، می‌تونه چندتا کار async رو به‌صورت غیرهم‌زمان و بدون بلاک شدن برنامه مدیریت کنه.

اگه سوالی دارین تو بخش کامنتا بپرسین.

بخش 1، بخش 2، بخش 3، بخش 4، بخش 5، بخش 6، بخش 7، بخش 8
#javanoscript #async

@JSKernel
❤‍🔥1
Supabase یه سرویس بک‌انده که بهت کمک می‌کنه بدون دردسر، یه پشت‌صحنه‌ی کامل برای اپلیکیشنات بسازی.

قابلیت‌ها:
• دیتابیس داره (PostgreSQL)
• احراز هویت داره (مثل لاکین، ثبت‌نام و...)
• استوریج برای آپلود فایل‌هات داره
• ‏API‌ خودکار برای دیتاها می‌سازه
• حتی قابلیت ریل‌تایم هم داره!
انگار یه Firebase اوپن‌سورسه که کنترل بیشتری هم بهت می‌ده.

📌 وقتی به کارت میاد که بخوای سریع یه بک‌اند کامل و حرفه‌ای بسازی، بدون اینکه از اول همه‌چی رو کدنویسی کنی.
#supabase

@JSKernel
Kimi ai یه مدل زبانی با 1 تریلیون پارامتر.

مقایسه‌شو با grok میتونید اینجا ببینید:
https://dev.to/forgecode/kimi-k2-vs-grok-4-which-ai-model-codes-better-31nb

چیزه خفنیه امکانات خوبی هم داره.
#LLM #ai #kimi

@JSKernel
Remix یه فریمورک برای ساخت وب‌اپلیکیشن با React .
فرقش با بقیه؟ تمرکز روی سرعت، سئو و تجربه‌ی کاربر.

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

اگه میخواین پروژه‌هاتون هم سریع باشه، هم با browser engine رفیق، Remix رو حتماً یه نگاه بنداز.
#remix #react

@JSKernel
1
میگن باگی که تورو نکشه،

تا صبح بیدار نگهت میداره
😁3
dev.to رو باز میکنی همه دارن مدلای LLM و مقایسه میکنن

جمع کنید بابا
😁1
اگه تازه با React آشنا شدی و می‌خوای اولین پروژه‌تو بسازی، این مقاله چیزه خوبیه:
https://dev.to/abdul_fadiga_1f402d165920/build-your-first-portfolio-with-react-a-beginners-ultimate-guide-490f

از اینکه چرا React برای ساخت سایت‌ خوبه، تا ساختار پروژه و ساخت کامپوننت‌ و توضیح داده، صفر تا دیپلوی.

📌 کسایی که می‌خوان اولین پرتفولیو شخصی با React رو بسازن.
#react #devto

@JSKernel
Radix UI یه مجموعه کامپوننت آماده برای React .

اما با یه تفاوت مهم:
کامپوننت‌هاش فقط ساختاری هستن، نه ظاهری!

یعنی چی؟
یعنی Radix بهت منوی آماده، مودال، تب، اسلایدر و کلی کوفت و زهرمار میده، ولی بدون استایل.
میتونی استایل دلخواه خودتو بهش بدی با Tailwind، CSS یا هرچی دوست داری.


تفاوتش هم با کتابخونه‌هایی مثل Chakra ui همینه که Radix ui فقط منطق و ساختار داره و ظاهرش دیگه با خودته.
#radix #radix_ui

@JSKernel
🔥1
‏XSS یا همون Cross-Site Scripting یه حمله سمت کلاینت تو دنیای فرانت‌اند.

اینجوریه که یه آدم مریض یه کد مخرب (معمولاً جاوااسکریپت) رو وارد برنامه می‌کنه، و کد روی مرورگر بقیه کاربرا اجرا میشه!

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

مثلا تو React، چون JSX به‌صورت پیش‌فرض جلوی اجرای مستقیم HTML رو می‌گیره، تا حد زیادی امنیتت بیشتره.
اما فرض بگیریم طرف نوبه و اومده از dangerouslySetInnerHTML استفاده کرده (که اسمش هم مشخصه خطرناکه)، عملاً در رو برای XSS باز کردی.

حالا چطور این باگ و دفع کنید اینجا بخونید:
https://developer.mozilla.org/en-US/docs/Web/Security/Attacks/XSS

#xss

@JSKernel
سخت ترین قسمت پروژه باور کن همینه.
#fun
@JSKernel
😁3
‏Temporal یه پلتفرم برای مدیریت Workflow های پیچیده‌. یعنی کارهایی که باید به‌ترتیب، زمان‌بندی‌شده یا با اطمینان بالا اجرا بشن.

با ابزارهای Automation اشتباه نگیرینش چون کارش کلا متفاوته.

مثلا پرداخت چندمرحله‌ای، ارسال ایمیل بعد خرید، تایید هویت چندمرحله‌ای و چیزایی مثل این.

درواقع یه ابزار Orchestration هست که چندتا کار وابسه و حساس رو با ترتیب انجام میده.
github
#temporal

@JSKernel
این this هم شده یه دنگ و فنگ برا اونایی که تازه میان سمت JS .

خوشبختانه بنده از اول باهاش موردی نداشتم، ولی یه رفرنس خوب برای یادگیریش پیدا کنید که عقلتونو از دست ندین.

انشالله فرصت شد یه ویدئو براش درست میکنم.
#this

@JSKernel
❤‍🔥2
مدل درآمد Tabler هم باحاله.

کلا یه قالب داشبورد داره بعد باید اونو بخری و خودت حالا کاستومش کنی.
خب کسی که نخواد پول بده چی؟ میاد از روی داکیومنتش با کامپوننتاش یه داشبورد میسازه؟ نه میره با همون Tailwind این کارو میکنه.

عملا میخوان مجبور باشی بخریش.
#tabler

@JSKernel
اون نکاتی که از JS نوشتم همش از اینجا اومده. گفتم که فکر نکنید با ai نوشتم.

کلا چیزایی که یادمیگیرم و به صورت داکیومنت توی obsidian برا خودم می‌نویسم
👍1