قانون AAA در نوشتن unit test: 🧪
الگوی arrange , act , assert در نوشتن تست های واحد به یکی از استاندارد ها در صنعت تبدیل شده که باعث میشه تست های واحد ما تمیز تر و خوانا تر بشن
این الگو به شما پیشنهاد میده که متد تست خودتون رو به سه بخش تقسیم کنین و هر بخش مسئولیت خودش رو بر عهده داره 💡
قسمت اول arrange فقط شامل کد هایی میشه که شما برای تست نیاز دارین (راه اندازی تست)
در این قسمت اشیا و یا ماک ها در صورت نیاز ایجاد میشن و مقادیری که به عنوان خروجی انتظار داریم تعریف میشن
در قسمت arrange معمولا استاندارده که بیایم یک متغیر به اسم sut تعریف کنیم (system under test) و به عنوان مقدار به این متغیر ، متدی که میخوایم تست کنیم رو بهش پاس بدیم 🤖
در قسمت act متدی که میخوایم تست کنیم رو صدا میزنیم (sut) و بهش ورودی تست خودمون رو میدیم پس این مرحله میشه فراخوانی متدی که قراره مورد تست قرار بگیره
در قسمت assert هم چک می کنیم که آیا خروجی مرحله act که میشه (actual value) با مقدار مورد انتظار ما که در مرحله arrange تعریف شد (expected value) مطابقت داره یا نه 🕵♂️
الگوی arrange , act , assert در نوشتن تست های واحد به یکی از استاندارد ها در صنعت تبدیل شده که باعث میشه تست های واحد ما تمیز تر و خوانا تر بشن
این الگو به شما پیشنهاد میده که متد تست خودتون رو به سه بخش تقسیم کنین و هر بخش مسئولیت خودش رو بر عهده داره 💡
قسمت اول arrange فقط شامل کد هایی میشه که شما برای تست نیاز دارین (راه اندازی تست)
در این قسمت اشیا و یا ماک ها در صورت نیاز ایجاد میشن و مقادیری که به عنوان خروجی انتظار داریم تعریف میشن
در قسمت arrange معمولا استاندارده که بیایم یک متغیر به اسم sut تعریف کنیم (system under test) و به عنوان مقدار به این متغیر ، متدی که میخوایم تست کنیم رو بهش پاس بدیم 🤖
در قسمت act متدی که میخوایم تست کنیم رو صدا میزنیم (sut) و بهش ورودی تست خودمون رو میدیم پس این مرحله میشه فراخوانی متدی که قراره مورد تست قرار بگیره
در قسمت assert هم چک می کنیم که آیا خروجی مرحله act که میشه (actual value) با مقدار مورد انتظار ما که در مرحله arrange تعریف شد (expected value) مطابقت داره یا نه 🕵♂️
👍4
چطور بدون سابقه کاری، رزومهای قوی بسازیم؟
مهم ترین چیزی که توی رزومه شما میشه پیدا کرد سابقه کاریتون توی جا های دیگس،
اما درست کردن سابقه برای شروع خیلی سخته، چون برای درست کردنش خودش نیاز به سابقه داره.
راحت ترین چیزی که میمونه گرفتن مدرک ها و سرتیفیکیت هاست، این ریپو اومده یه لیستی از کورس ها و سرتیفیکیت های رایگان که اتفاقا معتبر هم هستن رو جمع آوری کرده
https://github.com/cloudcommunity/Free-Certifications
مثلا بجای اینکه ساده بنویسید Network بلدم بنویسید فلان سرتیفیکیت Network رو از huawei دارم، خیلی خیلی توی رزومتون بولد تر دیده میشه.
Linuxor
مهم ترین چیزی که توی رزومه شما میشه پیدا کرد سابقه کاریتون توی جا های دیگس،
اما درست کردن سابقه برای شروع خیلی سخته، چون برای درست کردنش خودش نیاز به سابقه داره.
راحت ترین چیزی که میمونه گرفتن مدرک ها و سرتیفیکیت هاست، این ریپو اومده یه لیستی از کورس ها و سرتیفیکیت های رایگان که اتفاقا معتبر هم هستن رو جمع آوری کرده
https://github.com/cloudcommunity/Free-Certifications
مثلا بجای اینکه ساده بنویسید Network بلدم بنویسید فلان سرتیفیکیت Network رو از huawei دارم، خیلی خیلی توی رزومتون بولد تر دیده میشه.
Linuxor
👍7
نیتکد و لیتکد دوتا پلتفرم محبوب توی دنیای برنامه نویسین که میتونید توشون برید و دانش فنی خودتون رو به چالش بکشید و جالب اینجاست اکثر شرکت های بزرگ، سوال های مصاحبه فنیشون از این سایت هاست.
Leet Code : leetcode.com
Neet Code : neetcode.io
Linuxor
@JavascriptIR
Leet Code : leetcode.com
Neet Code : neetcode.io
Linuxor
@JavascriptIR
تلگرام اپدیت جدیدش یعنی نسخه 11.3 رو منتشر کرده و در اون رسما امکان تعیین کیفیت ویدیوها در حین دانلود معرفی شده.
با این قابلیت کانالها دیگه نیازی نیست ویدیوهارو قبل از ارسال فشرده کنن تا برای کاربران راحتتر دانلود بشه، بلکه تلگرام حالا همانند یوتوب، ویدیوهارو بعد از اپلود توسط ادمین، در سرورهاش پردازش میکنه و از اونها چندین کیفیت، یعنی بالا، متوسط و پایین میسازه و در کانال قرار میده.
بعد از اون در هنگام دیدن ویدیو توسط کاربر، تلگرام به طور خودکار کیفیتی متناسب با سرعت اینترنت کاربر رو انتخاب میکنه تا سریعتر پخش بشه. اما کاربر از طریق دکمه چرخ دنده میتونه کیفیت مدنظرش رو کماکان انتخاب کنه.
تلگرام گفته این قابلیت برای کانالهای با چندین هزار عضو فعال میشه.
@JavascriptIR
با این قابلیت کانالها دیگه نیازی نیست ویدیوهارو قبل از ارسال فشرده کنن تا برای کاربران راحتتر دانلود بشه، بلکه تلگرام حالا همانند یوتوب، ویدیوهارو بعد از اپلود توسط ادمین، در سرورهاش پردازش میکنه و از اونها چندین کیفیت، یعنی بالا، متوسط و پایین میسازه و در کانال قرار میده.
بعد از اون در هنگام دیدن ویدیو توسط کاربر، تلگرام به طور خودکار کیفیتی متناسب با سرعت اینترنت کاربر رو انتخاب میکنه تا سریعتر پخش بشه. اما کاربر از طریق دکمه چرخ دنده میتونه کیفیت مدنظرش رو کماکان انتخاب کنه.
تلگرام گفته این قابلیت برای کانالهای با چندین هزار عضو فعال میشه.
@JavascriptIR
👍3
🟠دسترسی به GitLab و Docker آزاد شد!
🔸برنامهنویسان ایرانی که به دنبال تحریم سرویسهای GitLab و Docker در چند روز اخیر با مشکلات جدی در حوزه کاریشان مواجه شده بودند، خبر از دسترسی به این سرویسها بدون نیاز به ابزارهای تغییر IP میدهند.
🔸ظاهرا این رفع تحریمها در سطح کشور رخ داده و این تحریم شکنی سراسری تنها چند روز بعد از اعلام تحریمهای اخیر مورد توجه کاربران بسیاری به ویژه در حوزه برنامهنویسی قرار گرفته است.
🔸البته گزارشها تنها مختص به کاربران این دو سرویس نیست و به نظر میرسد سرویسهای تحریمی زیادی در حوزه سخت افزاری مثل Nvidia و AMD، پلتفرمهای آموزشی و علمی مثل Coursera و Udemy نیز به طور سراسری رفع تحریم شدهاند.
@JavascriptIR
🔸برنامهنویسان ایرانی که به دنبال تحریم سرویسهای GitLab و Docker در چند روز اخیر با مشکلات جدی در حوزه کاریشان مواجه شده بودند، خبر از دسترسی به این سرویسها بدون نیاز به ابزارهای تغییر IP میدهند.
🔸ظاهرا این رفع تحریمها در سطح کشور رخ داده و این تحریم شکنی سراسری تنها چند روز بعد از اعلام تحریمهای اخیر مورد توجه کاربران بسیاری به ویژه در حوزه برنامهنویسی قرار گرفته است.
🔸البته گزارشها تنها مختص به کاربران این دو سرویس نیست و به نظر میرسد سرویسهای تحریمی زیادی در حوزه سخت افزاری مثل Nvidia و AMD، پلتفرمهای آموزشی و علمی مثل Coursera و Udemy نیز به طور سراسری رفع تحریم شدهاند.
@JavascriptIR
👍4🤣1
تلفن همراه تسلا تا آخر دسامبر منتشر میشه؛
این موبایل نیازی به شارژ باتری نداره و با استفاده از انرژی خورشیدی شارژ میشه (لازم نیست حتما نور خورشید باشه)
نیازی هم به اینترنت های ایران نداره، خودش Pi داره که مستقیم به Starlink ایلان ماسک وصل میشه
شما میتونید بااین گوشی حتی از روی زمین با شخصی که تو ماه هست ارتباط برقرار کنید.
@JavascriptIR
این موبایل نیازی به شارژ باتری نداره و با استفاده از انرژی خورشیدی شارژ میشه (لازم نیست حتما نور خورشید باشه)
نیازی هم به اینترنت های ایران نداره، خودش Pi داره که مستقیم به Starlink ایلان ماسک وصل میشه
شما میتونید بااین گوشی حتی از روی زمین با شخصی که تو ماه هست ارتباط برقرار کنید.
@JavascriptIR
👍7👎2
Falsy و Truthy چیه؟
تو جاوا اسکریپت، بعضی مقادیر به صورت خودکار تو شرطها true یا false در نظر گرفته میشن، حتی اگه boolean نباشن!
مقادیر Falsy (یعنی false در شرطها):
false
0
''
null
undefined
NaN
هرچی غیر از اینا باشه، Truthy حساب میشه (یعنی تو شرطها true در نظر گرفته میشه)
مثال:
برای بررسی وجود مقدار:
@JavascriptIR
تو جاوا اسکریپت، بعضی مقادیر به صورت خودکار تو شرطها true یا false در نظر گرفته میشن، حتی اگه boolean نباشن!
مقادیر Falsy (یعنی false در شرطها):
false
0
''
null
undefined
NaN
هرچی غیر از اینا باشه، Truthy حساب میشه (یعنی تو شرطها true در نظر گرفته میشه)
مثال:
if (0) {
console.log('اجرایی نمیشه');
}
if ('hello') {
console.log('این اجرا میشه چون "hello" truthy هست');
}
برای بررسی وجود مقدار:
if (value) {
// فقط اجرا میشه اگه value واقعاً موجود و معتبر باشه
}@JavascriptIR
👍4
شرکت Perplexity از ربات رسمی خودش در تلگرام رونمایی کرده. ازش میتونید سوال بپرسید تا سرچ کنه و جوابتون رو بده. سرچ های Pro هم توش فعاله. تو گروه هم اگر اضافهاش کنید و اگر منشنش کنید، مستقیم توی خود گروه سرچ رو انجام میده. از عکس هم پشتیبانی میکنه.
@askplexbot
@JavascriptIR
@askplexbot
@JavascriptIR
👍5🔥1
فرق بین forEach و map
خیلی وقتا دیده میشه که از map فقط برای تکرار روی آرایه استفاده میکنن، اما این اشتباهه!
• forEach فقط روی آرایه تکرار میکنه و چیزی برنمیگردونه.
• map یه آرایه جدید میسازه بر اساس چیزی که return میکنی.
مثال:
اگه نیازی به خروجی جدید نداری، forEach کافیه!
@JavascriptIR
خیلی وقتا دیده میشه که از map فقط برای تکرار روی آرایه استفاده میکنن، اما این اشتباهه!
• forEach فقط روی آرایه تکرار میکنه و چیزی برنمیگردونه.
• map یه آرایه جدید میسازه بر اساس چیزی که return میکنی.
مثال:
const numbers = [1, 2, 3];
// فقط اجرا میکنه
numbers.forEach(n => console.log(n));
// آرایه جدید میسازه
const doubled = numbers.map(n => n * 2);
console.log(doubled); // [2, 4, 6]
اگه نیازی به خروجی جدید نداری، forEach کافیه!
@JavascriptIR
👍5🔥1
گوگل داره خیلی آهسته مدل ساخت ویدیو خودش یعنی Veo 2 رو از طریق aistudio در دسترس کاربران قرار میده. البته فعلاً بنظر میآد دارن به صورت انتخابی عرضه میکنن ولی احتمالا به زودی در دسترس همه قرار بگیره. این مدل هم از متن و هم از تصویر به ویدیو پشتیبانی میکنه.
aistudio.google.com
@JavascriptIR
aistudio.google.com
@JavascriptIR
🔥3
عملگر ?? یا Nullish Coalescing
گاهی ممکنه مقدار یه متغیر null یا undefined باشه، ولی نمیخوای با | | کار کنی چون 0 یا '' رو هم false در نظر میگیره.
اینجاست که ?? میدرخشه!
فرقش با چیه؟
?? فقط وقتی مقدار null یا undefined باشه، مقدار دوم رو برمیگردونه.
@JavascriptIR
گاهی ممکنه مقدار یه متغیر null یا undefined باشه، ولی نمیخوای با | | کار کنی چون 0 یا '' رو هم false در نظر میگیره.
اینجاست که ?? میدرخشه!
const name = null;
const displayName = name ?? 'کاربر مهمان';
console.log(displayName); // خروجی: "کاربر مهمان"
فرقش با چیه؟
0 || 10 // Output: 10
0 ?? 10 // Output: 0
?? فقط وقتی مقدار null یا undefined باشه، مقدار دوم رو برمیگردونه.
@JavascriptIR