💠 نسخه جدید سوپرست تایپاسکریپت (Typescript) منتشر شده است
🔸 ارتقا از نسخه 6.0.3 به 7.0.2
🔹 لیست تغییرات این نسخه:
🔖 #typescript, #web, #js, #react, #vue, #release
💎 @DevelopixJavascript
🔸 ارتقا از نسخه 6.0.3 به 7.0.2
🔹 لیست تغییرات این نسخه:
🔖 #typescript, #web, #js, #react, #vue, #release
💎 @DevelopixJavascript
🔥3❤2
💠 نسخه جدید رانتایم نود جیاس (NodeJS) منتشر شده است
🔸 ارتقا از نسخه 26.7.0 به 26.8.1
🔹 لیست تغییرات این نسخه:
- رفع مشکل نمایش اشتباه نسخه در خروجی node --version
🔖 #nodejs, #web, #js, #release
💎 @DevelopixJavascript
🔸 ارتقا از نسخه 26.7.0 به 26.8.1
🔹 لیست تغییرات این نسخه:
- رفع مشکل نمایش اشتباه نسخه در خروجی node --version
🔖 #nodejs, #web, #js, #release
💎 @DevelopixJavascript
👍2
یکی از سادهترین تکنیکهای Refactoring برای تمیزتر شدن کد جاوااسکریپت، استفاده از الگوی Early Return است ✨
در این الگو بهجای اینکه یک تابع را با if تو در تو و بلاکهای بزرگ بپیچیم، شرطهای نامعتبر را زودتر برمیگردانیم و مسیر «عادی» تابع را خوانا و سرراست نگه میکنیم.
نمونه کد شلوغ بدون Early Return 👇
خواندن این تابع سخت است؛ منطق اصلی بین ifهای تودرتو گم شده.
همان منطق با Early Return 🧼
حالا:
• تمام شرطهای نامعتبر بالا جمع شدهاند و سریع تابع را ترک میکنند ✅
• «مسیر خوشحال» وسط تابع مثل یک داستان خطی و قابلخواندن است ✅
• دیباگ و لاگگرفتن سادهتر شده است ✅
نکته کاربردی در پروژههای React / Node.js
در هندلرهای API و کنترلرهای Express هم همین الگو کمک زیادی میکند تا از callback hell جدید یعنی if hell فرار شود:
در مستندات MDN درباره return و جریان کنترل توضیحات بیشتری آمده که مطالعهاش دید خوبی میدهد.
هرجا تابعی دیدۀ میشود که تو در تو و سختخوان است، یک بار با Early Return بازنویسیاش، هم برای خودتان هم برای تیم، خوانایی کد را چند درجه بالا میبرد 🚀
🔖 #Javascript #JS #جاوااسکریپت #JavaScript #Clean_Code #Refactoring #Early_Return #Node_js #Express #Readability
👤 Developix
💎 Channel: @DevelopixJavascript
در این الگو بهجای اینکه یک تابع را با if تو در تو و بلاکهای بزرگ بپیچیم، شرطهای نامعتبر را زودتر برمیگردانیم و مسیر «عادی» تابع را خوانا و سرراست نگه میکنیم.
نمونه کد شلوغ بدون Early Return 👇
function createOrder(user, items) {
if (user) {
if (user.isActive) {
if (Array.isArray(items) && items.length > 0) {
const total = items.reduce((sum, it) => sum + it.price, 0);
if (total > 0) {
return { userId: user.id, total, status: "CREATED" };
} else {
throw new Error("Total must be positive");
}
} else {
throw new Error("Items required");
}
} else {
throw new Error("User not active");
}
} else {
throw new Error("User required");
}
}
خواندن این تابع سخت است؛ منطق اصلی بین ifهای تودرتو گم شده.
همان منطق با Early Return 🧼
function createOrder(user, items) {
if (!user) {
throw new Error("User required");
}
if (!user.isActive) {
throw new Error("User not active");
}
if (!Array.isArray(items) || items.length === 0) {
throw new Error("Items required");
}
const total = items.reduce((sum, it) => sum + it.price, 0);
if (total <= 0) {
throw new Error("Total must be positive");
}
return { userId: user.id, total, status: "CREATED" };
}
حالا:
• تمام شرطهای نامعتبر بالا جمع شدهاند و سریع تابع را ترک میکنند ✅
• «مسیر خوشحال» وسط تابع مثل یک داستان خطی و قابلخواندن است ✅
• دیباگ و لاگگرفتن سادهتر شده است ✅
نکته کاربردی در پروژههای React / Node.js
در هندلرهای API و کنترلرهای Express هم همین الگو کمک زیادی میکند تا از callback hell جدید یعنی if hell فرار شود:
export const handler = async (req, res) => {
const { user } = req;
if (!user) {
return res.status(401).json({ message: "Unauthorized" });
}
if (!user.isActive) {
return res.status(403).json({ message: "Inactive user" });
}
const data = await loadDashboardData(user.id);
return res.json(data);
};
در مستندات MDN درباره return و جریان کنترل توضیحات بیشتری آمده که مطالعهاش دید خوبی میدهد.
هرجا تابعی دیدۀ میشود که تو در تو و سختخوان است، یک بار با Early Return بازنویسیاش، هم برای خودتان هم برای تیم، خوانایی کد را چند درجه بالا میبرد 🚀
🔖 #Javascript #JS #جاوااسکریپت #JavaScript #Clean_Code #Refactoring #Early_Return #Node_js #Express #Readability
👤 Developix
💎 Channel: @DevelopixJavascript
👍6❤2
بررسی نوع داده Symbol در جاوا اسکریپت
در این مطلب به معرفی نوع داده Primitive و یکتای Symbol، تفاوت آن با سایر انواع داده، نحوه استفاده از Global Symbol Registry با متدهای Symbol.for و Symbol.keyFor و همچنین کاربرد Symbol در کپسولهسازی و تعریف کلیدهای اختصاصی در اشیا پرداخته شده است.
برای مشاهده کامل این آموزش میتوانید به لینک زیر مراجعه کنید:
[https://gnutec.net/javascript-symbol/]
🔖 #Javascript #JS #جاوااسکریپت
👤 ابوالفضل
💎 Channel: @DevelopixJavascript
در این مطلب به معرفی نوع داده Primitive و یکتای Symbol، تفاوت آن با سایر انواع داده، نحوه استفاده از Global Symbol Registry با متدهای Symbol.for و Symbol.keyFor و همچنین کاربرد Symbol در کپسولهسازی و تعریف کلیدهای اختصاصی در اشیا پرداخته شده است.
برای مشاهده کامل این آموزش میتوانید به لینک زیر مراجعه کنید:
[https://gnutec.net/javascript-symbol/]
🔖 #Javascript #JS #جاوااسکریپت
👤 ابوالفضل
💎 Channel: @DevelopixJavascript
👍3
🔥 پروژه: دانلودر TikTok و Douyin
ابزار متنباز TikTokDownloader برای دانلود و جمعآوری داده از ویدئوهای TikTok و نسخه چینی آن Douyin طراحی شده 🛰️
بهدرد جاوااسکریپتیها برای ساخت کرالرهای شخصی، داشبوردهای آنالیتیکس، تست الگوریتمهای پیشنهاد محتوا و بازی با متادیتای ویدئوها میخورد.
سورس تمیز و قابلمطالعه است و ایدههای خوبی برای مهندسی معکوس APIهای پلتفرم میدهد. نگاهی بهش انداختن ارزش دارد 👇
لینک گیتهاب
⭐️ 154 stars this week
🔖 #Javascript #JS #جاوااسکریپت #جاوااسکریپت #پروژه_متنباز
💎 @DevelopixJavascript
ابزار متنباز TikTokDownloader برای دانلود و جمعآوری داده از ویدئوهای TikTok و نسخه چینی آن Douyin طراحی شده 🛰️
بهدرد جاوااسکریپتیها برای ساخت کرالرهای شخصی، داشبوردهای آنالیتیکس، تست الگوریتمهای پیشنهاد محتوا و بازی با متادیتای ویدئوها میخورد.
سورس تمیز و قابلمطالعه است و ایدههای خوبی برای مهندسی معکوس APIهای پلتفرم میدهد. نگاهی بهش انداختن ارزش دارد 👇
لینک گیتهاب
⭐️ 154 stars this week
🔖 #Javascript #JS #جاوااسکریپت #جاوااسکریپت #پروژه_متنباز
💎 @DevelopixJavascript
👍1
وقتی با تاریخ سروکار داری، این که چطور استرینگ رو تبدیل به Date کنی خیلی مهمه.
تو نسخهٔ اول، مستقیم از
تو نسخهٔ دوم، با کمک یه پارسر قابلاعتماد (مثل کتابخونههای معروف تاریخ) فرمت استرینگ رو صریح مشخص کردیم؛ هم نتیجه پایدارتره، هم باگهای خفنِ Production کمتر میگیری.
اگه با تاریخ و زمان کار میکنی، روش دوم رو جایگزین روش اول کن تا رفتارت تو همهٔ محیطها قابل پیشبینی باشه و بعداً درگیر باگهای مرموز نشی.
🔖 #Javascript #JS #جاوااسکریپت
👤 Developix
💎 Channel: @DevelopixJavascript
تو نسخهٔ اول، مستقیم از
new Date() با یه استرینگ مبهم استفاده شده؛ این کار بستهبه محیط و تایمزون میتونه خروجی متفاوت بده، حتی ممکنه رو بعضی سیستمها Invalid Date برگردونه.تو نسخهٔ دوم، با کمک یه پارسر قابلاعتماد (مثل کتابخونههای معروف تاریخ) فرمت استرینگ رو صریح مشخص کردیم؛ هم نتیجه پایدارتره، هم باگهای خفنِ Production کمتر میگیری.
اگه با تاریخ و زمان کار میکنی، روش دوم رو جایگزین روش اول کن تا رفتارت تو همهٔ محیطها قابل پیشبینی باشه و بعداً درگیر باگهای مرموز نشی.
🔖 #Javascript #JS #جاوااسکریپت
👤 Developix
💎 Channel: @DevelopixJavascript
👍6❤1
💠 نسخه جدید رانتایم نود جیاس (NodeJS) منتشر شده است
🔸 ارتقا از نسخه 26.8.2 به 26.9.0
🔹 لیست تغییرات این نسخه:
- افزودن API عمومی برای MAC در ماژول crypto
- کشف خودکار cipherها از OpenSSL providerها در crypto
- کشف خودکار hashها از OpenSSL providerها در crypto
- فعال شدن پیشفرض ماژول FFI برای اتصال به کتابخانههای بومی
- معرفی node:bench و بهبودهای perf_hooks برای بنچمارک
- پشتیبانی Web Workers و API آزمایشی DTLS و تغییرات دیگر
🔖 #nodejs, #web, #js, #release
💎 @DevelopixJavascript
🔸 ارتقا از نسخه 26.8.2 به 26.9.0
🔹 لیست تغییرات این نسخه:
- افزودن API عمومی برای MAC در ماژول crypto
- کشف خودکار cipherها از OpenSSL providerها در crypto
- کشف خودکار hashها از OpenSSL providerها در crypto
- فعال شدن پیشفرض ماژول FFI برای اتصال به کتابخانههای بومی
- معرفی node:bench و بهبودهای perf_hooks برای بنچمارک
- پشتیبانی Web Workers و API آزمایشی DTLS و تغییرات دیگر
🔖 #nodejs, #web, #js, #release
💎 @DevelopixJavascript
👍1
💠 نسخه جدید رانتایم نود جیاس (NodeJS) منتشر شده است
🔸 ارتقا از نسخه 26.9.0 به 26.10.0
🔹 لیست تغییرات این نسخه:
- افزودن تابع جدید crypto.parsePKCS12 برای پردازش PKCS12
- قابلیت بارگذاری کتابخانهها از VFS در ffi
- اضافه شدن متد fs.openAsBlobSync برای کار با فایل به صورت Blob
- امکان ارسال net.BoundSocket به Thread و فرایند فرزند
- افزودن SlidingWindowHistogram و تحلیل qrde در perf_hooks
- بهبودهای متعدد دیگر در util، sqlite و غیره
🔖 #nodejs, #web, #js, #release
💎 @DevelopixJavascript
🔸 ارتقا از نسخه 26.9.0 به 26.10.0
🔹 لیست تغییرات این نسخه:
- افزودن تابع جدید crypto.parsePKCS12 برای پردازش PKCS12
- قابلیت بارگذاری کتابخانهها از VFS در ffi
- اضافه شدن متد fs.openAsBlobSync برای کار با فایل به صورت Blob
- امکان ارسال net.BoundSocket به Thread و فرایند فرزند
- افزودن SlidingWindowHistogram و تحلیل qrde در perf_hooks
- بهبودهای متعدد دیگر در util، sqlite و غیره
🔖 #nodejs, #web, #js, #release
💎 @DevelopixJavascript
🔥 پروژه: مدیریت خودکار یوتیوب با عاملهای AI
برای خودکارسازی کارهای یک کانال یوتیوب، این پروژه از عاملهای AI استفاده میکند؛ ساخت، بهینهسازی و انتشار ویدیو را بهصورت شبانهروزی انجام میدهد.
با API رایگان Gemini یا OpenAI کار میکند و برای استفاده از آن نیازی به کدنویسی نیست. برای توسعهدهندگان جاوااسکریپتِ علاقهمند به اتوماسیون، نمونهای کاربردی از کنار هم قرار گرفتن عاملهای AI در یک فرایند تولید محتواست.
برای آشنایی با مسیر راهاندازی، مخزن پروژه را ببینید 🎬
⭐️ 275 stars this week
🔖 #Javascript #JS #جاوااسکریپت #JavaScript #YouTube
💎 @DevelopixJavascript
برای خودکارسازی کارهای یک کانال یوتیوب، این پروژه از عاملهای AI استفاده میکند؛ ساخت، بهینهسازی و انتشار ویدیو را بهصورت شبانهروزی انجام میدهد.
با API رایگان Gemini یا OpenAI کار میکند و برای استفاده از آن نیازی به کدنویسی نیست. برای توسعهدهندگان جاوااسکریپتِ علاقهمند به اتوماسیون، نمونهای کاربردی از کنار هم قرار گرفتن عاملهای AI در یک فرایند تولید محتواست.
برای آشنایی با مسیر راهاندازی، مخزن پروژه را ببینید 🎬
⭐️ 275 stars this week
🔖 #Javascript #JS #جاوااسکریپت #JavaScript #YouTube
💎 @DevelopixJavascript
👍3
💠 نسخه جدید رانتایم نود جیاس (NodeJS) منتشر شده است
🔸 ارتقا از نسخه 26.10.0 به 26.11.1
🔹 لیست تغییرات این نسخه:
- افزودن اعتبارسنجی نام و مقدار هدرهای HTTP
- پایدار شدن process.ref و process.unref
- افزودن محدودیت زمانی اجرای پردازش
- ارتقای پشتیبانی Alpine Linux به سطح دوم
- افزودن محاسبه طول رشته با Buffer.stringLength
- رفع مشکل دسترسی به مستندات و موارد دیگر
🔖 #nodejs, #web, #js, #release
💎 @DevelopixJavascript
🔸 ارتقا از نسخه 26.10.0 به 26.11.1
🔹 لیست تغییرات این نسخه:
- افزودن اعتبارسنجی نام و مقدار هدرهای HTTP
- پایدار شدن process.ref و process.unref
- افزودن محدودیت زمانی اجرای پردازش
- ارتقای پشتیبانی Alpine Linux به سطح دوم
- افزودن محاسبه طول رشته با Buffer.stringLength
- رفع مشکل دسترسی به مستندات و موارد دیگر
🔖 #nodejs, #web, #js, #release
💎 @DevelopixJavascript