Code Module | کد ماژول
1.91K subscribers
357 photos
42 videos
6 files
355 links
Hello World 🌎

<> Earth is programmable if you code it </>

Group 👇🏻
@CodeModuleGap

Contact Us 👇🏻
@MrShahiin
@neoMahan
Download Telegram
واکنش مغزم موقع انتخاب اسم برای انواع متغیرها : 😂😂

#fun
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
😁16
با الگوی راکتور در Node.js آشنا بشید🤟

‏Node.js در حوزه معماری‌ ایونت محور، به دلیل توانایی بالای خود در مدیریت تعداد زیادی از اتصالات همزمان متمایزه، که این مهارت از فلسفه طراحی زیربناییش سرچشمه میگیره و به شدت بر الگوی راکتور متکی هست.

الگوی راکتور دقیقا چیه؟ 🤔

‌‏Reactor Pattern ایده ای برای انجام عملیات‌های I/O در Node.js هست. این الگو یک کنترل کننده (در مورد Node.js، یک کالبک فانکشن) ارائه میده، که با هر عملیات I/O مرتبطه، و هنگامی که یک درخواست I/O ساخته میشه، به یک Demultiplexer ارسال میشه.

از الگوی راکتور چه زمانی استفاده میشه؟

در blocking سنتی I/O، زمانی که برنامه یک درخواست I/O (مثله خوندن یک فایل یا برقراری تماس) میده، اجرای برنامه تا زمانی که عملیات کامل بشه متوقف میشه، که این بسیار ناکارآمده، اما Node.js برای مدیریت کارآمده حجم بالایی از اتصالات همزمان از الگوی راکتور استفاده می‌کنه، که اساساً مربوط به مدیریت ناهمزمان عملیات I/O (ورودی/خروجی) هست.

‏Reactor Pattern چجوری کار میکنه؟

1️⃣Event Demultiplexer: این قلب الگو هست که مسئول نظارت بر چندین منبع I/O (سوکت های شبکه، سیستم فایل ها و... ) هست، و هنگامی که به یک درخواست I/O جدید میرسه، Demultiplexer اون رو به عنوان یک ایونت ثبت میکنه و به یک صف رویداد اضافه میکنه.

2️⃣صف رویداد(Event Queue): این ساختار داده، تمام ایونت های I/O معلق رو به ترتیبی که دریافت کردن، نگه داره میکنه و هر ایونت دارای داده های مرتبط، و یک کالبک فانکشن (handler) هست که باید پس از اتمام عملیات I/O اجرا بشه.

3️⃣ایونت لوپ (Event Loop) : این یک حلقه بی نهایت هست، که به طور مداوم صف ایونت رو نظارت میکنه و از طریق صف، تکرار میشه و ایونت بعدی رو بازیابی میکنه و کالبک فانکشن مرتبط با ایونت رو فراخوانی میکنه.

اما جریان ایونت ها به چه صورته؟ 🤔

‏1. Application Triggers I/O: زمانی برنامه Node.js شما یک عملیات I/O رو شروع کنه، مثل خوندن یک فایل یا درخواست HTTP.

‏2. Demultiplexer شارژ میشه: Demultiplexer درخواست I/O رو قطع میکنه و یک ایونت میسازه و همچنین این ایونت رو در صف ایونت ذخیره می کنه.

3. ایونت لوپ در عمل: ایونت لوپ به طور مداوم صف ایونت رو بررسی میکنه، و هنگامی که عملیات I/O یک ایونت کامل میشه (به عنوان مثال، داده از یک تماس شبکه دریافت میشه) و ایونت مربوطه از صف بازیابی میشه.

4. عملکرد کالبک فانکشن : ایونت لوپ عملکرد کالبک فانکشن مرتبط با ایونت بازیابی شده رو فعال میکنه. این تابع فراخوانی داده های دریافتی رو پردازش میکنه یا عملیات تکمیل شده رو مدیریت میکنه.

5. برگشتن به برنامه: هنگامی که تابع callback کار خودش رو تموم میکنه، برنامه میتونه بدون بلاک شدن توسط عملیات I/O به اجرای خودش ادامه بده.

به صورت کلی الگوی Reactor، پایه و اساس مدل برنامه نویسی ناهمزمان(asynchronous) در Node.js هست. و امکان مدیریت کارآمد عملیات I/O رو فراهم میکنه، که منجر به ساخت برنامه های کاربردی بسیار مقیاس پذیر و پاسخگو میشه. با درک این الگو، میتونیم از قدرت واقعی Node.js برای ساخت برنامه های real-time و ایونت محور استفاده کنیم.

ممکنه در نگاه اول فهمیدن این موضوع سخت باشه، برای همین این مقالات رو پیشنهاد میکنم بخونید :))
🔵 Article
🔵 Article
🔵 Article

#nodejs #reactor
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥54😁3
پیاده سازی قابلیت drag&drop در سه سوت

‏react-dnd یکی از کتابخانه‌های محبوب برای پیاده‌سازی قابلیت درگ و دراپ (drag and drop) در پروژه های ریکتی هست. این کتابخانه توسط Dan Abramov توسعه داده شده و بر اساس استانداردهای HTML5 و API درگ و دراپ طراحی شده است.

ویژگی‌های کلیدی react-dnd ⬇️

🔵انعطاف پذیری بالا: react-dnd به شما این امکان رو میده تا انواع مختلفی از تعاملات درگ و دراپ رو پیاده‌سازی کنید، از جابجایی آیتم‌های لیست گرفته تا قابلیت‌های پیچیده‌تر مانند ساختارهای درختی و جابجایی بین لیست‌های مختلف.

🔵یکپارچگی با React: این کتابخانه به طور کامل با رویکرد کامپوننت‌بندی React سازگار هست و مدیریت وضعیت درگ و دراپ ر‌و بسیار ساده میکنه.

🔵ساختار ماژولار: این کتابخانه بر اساس ساختار ماژولار طراحی شده، که به شما اجازه میده تا از کامپوننت‌ها و هوک‌های قابل استفاده مجدد بهره ببرید. این موضوع پیاده‌سازی و نگهداری کد رو ساده‌تر می‌کنه.

🔵مستندات کامل و جامع: react-dnd دارای مستندات کامل و جامع هست که شامل مثال‌های کاربردی و توضیحات دقیق برای هر قسمت از کتابخانه می‌باشد‌. این مستندات به دولوپرا کمک می‌کنه تا به سرعت با کتابخانه آشنا بشن و از اون استفاده کنن.

کتابخانه react-dnd دارای ویژگی‌های متعددی هست که اون رو به ابزاری قدرتمند، برای پیاده‌سازی قابلیت‌های درگ و دراپ در پروژه های React تبدیل می‌کنه. برای اطلاعات بیشتر میتونید به داکیومنتش مراجعه کنید.

Document 🌐

#dnd #react
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
8🔥7😁5
👩‍💻👩‍💻یک bash script کاربردی، برای لینوکس یوزر های فرانت دولوپر

فرانت دولوپر ها وقتی میخوان یک پروژه ای رو با html css js خام کد بزنن و شروع کنن، باید یکسری سلسله مراتب تکراری رو انجام بدن که باعث میشه وقت زیادی ازشون گرفته بشه.

🔵یکی از این سلسله مراتب ساخت فایل های html css js، و نوشتن تگ های دیفالت html و لینک کردن فایل ها به هم دیگه هست.

برای حل این مشکل، من یدونه بش اسکریپت نوشتم که میاد همه این کارارو در عرض ۱ ثانیه انجام میده و لازم نیست دیگه دست به سیاه و سفید بزنید.

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

🔵در مرحله بعد نیازه که اسکریپت رو، موقع نیازتون ران کنید تا کارتون رو انجام بده، و برای اینکه اسکریپت کارش رو درست انجام بده ازتون 1 پارامتر میخواد، که اون باید مسیری باشه که شما میخواید پروژه رو اونجا براتون بسازه. پس دقت کنید که پارامتر صحیحی رو بهش پاس بدید، برای مثال :

## syntax : 
bash <script dir> <project dir>
## example:
bash ~/vanilla.sh /Desktop


و تمام، پروژه شما آمادست و فقط لازمه که برید و دست به کد بشید. اگر از این پارت bash script های کاربردی حمایت بشه، پارت های خفن تری مثل نصب و کانفیگ کتابخانه ها و فریم ورک هایی مثل tailwind, react , vue , angular, svelte, qwik , next.js , ... هم براتون میزارم.

⚡️Download

#linux #script #bash
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
14🔥4❤‍🔥3
آقا حرف غیر منطقی زده ؟😂🗿

#fun
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
😁28
با رقیب جدید فیگما آشنا بشید! 💀

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

این ابزار در مقایسه با Figma که یک ابزار معروف و محبوب در زمینه طراحی و نمونه‌سازیه، یه سری تفاوت داره که در ویدیو یوتیوبی که لینکش رو براتون قرار دادم، جناب عرفان عطارزاده کامل این ابزار رو شرح، و باهاش کار کرده.

Link 📹

یکی از نکات جالب این ابزار اینه که، قابلیت Dev Mode رو بر خلاف فیگما به صورت رایگان ارائه میده 👩‍💻

#figma #Creatie
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
10🔥4👌3
‏Lua چیه و کاربردش در Node.js 🤟

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

اما Lua چه کاربردی در Node.js داره؟ 🤔

‏Lua به صورت دیفالت از Node.js پشتیبانی نمیکنه، اما پکیج هایی وجود داره که میشه باهاشون این مشکل رو حل کرد. یکی از کاربرد های Lua نوشتن اسکریپت برای مدیریت دیتابیس هایی مثل Redis هست، که نحوه استفاده از lua برای مدیریت Redis در Node.js به این صورته:

local key = tostring(KEYS[1]);
local value = tostring(ARGV[1]);
redis.call("SET", key, value);
return { key, value };


این اسکریپت یک key و value میگیره، و بعدش در Redis ذخیرش میکنه.

در Node.js چجوری از Lua استفاده کنیم؟

در Node.js ما با استفاده از پکیج Redis، میتونیم این اسکریپت رو اجرا و ازش استفاده کنیم، که به این صورت هست:

const client = redis.createClient();
client.connect();
client.on("ready", () => console.log("Redis is ready"));
const lua = {
script: fs.readFileSync("./example_redis_script.lua", "utf8"),
};
(async()=>{
const reply = await client.eval(lua.script, {
arguments: ["value11"],
keys: ["key11"],
});
console.log("Reply:", reply);
})()


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

به صورت کلی من شخصا از lua خیلی خوشم اومده، و هرجایی بتونم ازش استفاده میکنم. برای اطلاعات بیشتر پیشنهاد میکنم مقالات زیر رو مطالعه کنید ⬇️
- Article
- Article
- Article

#nodejs #lua
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
5🔥4
😎با Webkit بیشتر آشنا بشید

🟡‏WebKit یک موتور رندر صفحات وبه که هسته‌ی مرکزی مرورگر در نمایش محتوای صفحات سایت‌هارو تشکیل میده.

وظیفه‌ی اصلی Webkit، تجزیه و تحلیل کدهای HTML و XHTML و ... و تولید و نمایش ظاهر صفحه هست. در واقع، مرورگر واسطه‌ای بین کاربر و موتور رندر هست و وظایف دیگه ای مثل برقراری ارتباط با اینترنت، مدیریت امنیت، تجربه‌ی کاربری و آپدیت هارو بر عهده داره. همچنین Webkit از سیستم‌عامل‌های mac os، windows، linux و سیستم‌عامل‌های شبه‌ یونیکسی پشتیبانی میکنه.

مزایای استفاده از Webkit چیه؟

🟢سرعت بالا

🟢عملکرد قابل اعتماد

🟢امنیت بالا

🟢پشتیبانی از جدیدترین استانداردهای وب

🟢سازگاری با طیف وسیعی از سیستم‌عامل‌ها

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

⚡️پیشوند موتور های مختلف : پیشوند موتور Gecko در فایرفاکس "moz" و پیشوندهای نسخه‌های قدیمی مرورگرهای اینترنت مثل اکسپلورر و اوپرا "ms" و "o" بودن.

امروزه، مرورگر Edge هم از موتور webkit استفاده میکنه و مرورگر اوپرا هم محتوای صفحات وب رو با استفاده از webkit نمایش میده. وقتی که یک ویژگی اختصاصی به صورت استاندارد در میاد، پیشوند اون حذف میشه.

🟡مرورگرها ممکنه تا مدت‌ها از دستورات با پیشوند پشتیبانی کنن و حتی پیشوندهای اختصاصی مرورگرهای دیگه رو هم شناسایی کنن. یک مثال از استفاده Webkit ها در css :

.CodeModule {
width: 500px;
height: 500px;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
font-smooth: always;
}


و در نتیجه Webkit یک موتور رندر قدرتمند، و سریعه که در طیف وسیعی از برنامه‌ها از جمله مرورگرهای وب، برنامه‌های کاربردی وب و ابزارهای توسعه وب استفاده میشه. Webkit به طور مداوم در حال توسعه و آپدیته و جدیدترین استانداردهای وب رو ساپورت میکنه 🏖️


#webkit #browser #css
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
8🔥5
مونوریپو (Monorepo) چیه و چه کاربردی داره؟ 🤔

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

فرض کنید کار شما به سمتی کشیده شده که دارای وب اپلیکیشن جداگونه، IOS app و android app مخصوص به خود و موارد دیگه هستید، در این حالت monorepo بودن پروژه بهتون بسیار کمک میکنه.

برخی از مزایای مونوریپو ⬇️

🔵مدیریت ساده‌تر وابستگی‌ها

🔵بهبود همکاری تیمی

🔵قابلیت بازبینی و تست یکپارچه

🔵کاهش دوباره‌کاری

همچنین برای مدیریت مونوریپو، ابزارهای متعددی وجود داره که می‌تونن به بهبود کارایی و کاهش پیچیدگی کمک کنن ⬇️

Lerna: ابزاری برای مدیریت وابستگی‌ها و انتشار پکیج‌ها در مونوریپوهای مبتنی بر جاوااسکریپت.

Bazel: ابزاری برای ساخت و تست پروژه‌ها که توسط گوگل توسعه داده شده و برای مدیریت مونوریپو مناسبه.

Nx: یک مجموعه ابزار جامع برای مدیریت و توسعه مونوریپوها، به خصوص در اکوسیستم جاوااسکریپت و تایپ‌اسکریپت.

مونوریپو روشی هست که شرکت‌های بزرگی مثل گوگل و فیسبوک از اون استفاده می‌کنن، تا بتونن پروژه‌های بزرگ و پیچیده خودشون رو به صورت یکپارچه مدیریت کنن.

برای کسب اطلاعات بیشتر، میتونید به داکیومنتش مراجعه کنید.

#monorepo
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥74
واقعیت vs لینکدین 🐸

#fun
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
😁15🔥3💔2
ماژول cluster در Node.js چیه؟ 🤟

در واقع cluster یک ماژول داخلی هست که به ساخت child process (کارگرها) اجازه میده، تا به طور همزمان روی یک سرور واحد اجرا بشن و همچنین هر کارگر یک ایونت لوپ، حافظه و نمونه V8 خودش رو داره، و کارگر ها از طریق برقراری ارتباط با process communication (IPC) و فرایند اصلی Node.js، ارتباط برقرار میکنن.

چرا از cluster استفاده کنیم؟ 🤔

🔵به طور پیش فرض Node.js از یک رشته استفاده می کنه، بدون اینکه از چندین هسته CPU به طور موثر استفاده کنه.

🔵cluster بارهای کاری رو بین کارگران توزیع میکنه، و عملکرد سیستم های چند هسته ای رو افزایش میده.

🔵با رسیدگی به درخواست های همزمان بیشتر، مقیاس پذیری رو بهبود میبخشه.

🔵تحمل خطا رو افزایش میده و سایر کارگران میتونن درخواست ها رو در صورت خرابی یکی از کارگران رسیدگی کنن.

محدودیت های cluster یا خوشه بندی شامل چه چیزایی میشه؟

🔴به دلیل مدیریت IPC، منابع مشترک و race conditions باعثه افزایش پیچیدگی میشه.
- با اضافه شدن هر فرآیند کارگر اضافی، باعث میشه از حافظه بیشتری استفاده کنه.

🔴چون هر کارگر فضای حافظه خاص خود رو داره، مدیریت حالت پیچیده تر میشه.

🔴ممکن است برای اپلیکیشن های I/O-Bound (ریکویست های شبکه، کوئری های دیتابیس ) مفید نباشه.

چه زمان از cluster استفاده کنیم؟

- برای اپلیکیشن های متصل به CPU با حجم درخواست بالا ایده آل هست.

- برای کارهایی که شامل محاسبات پیچیده، پردازش تصویر/فیلم و تجزیه و تحلیل داده های خاص میشه مفیده.

به طور خلاصه، ماژول کلاستر یک ابزار قدرتمند برای استفاده از چندین هسته CPU در برنامه های Node.js، به ویژه برای کارهای فشرده CPU هست. با این حال، مهمه که محدودیت ها و مناسب بودنش رو برای نیازهای خاص برنامه خودمون در نظر بگیریم. برای اطلاعات بیشتر پیشنهاد میکنم مقالات زیر رو مطالعه کنید⬇️

- Article
- Article
- Article

#nodejs #cluster
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
4🔥2
مقایسه Web Worker و Worker Threads 🐬

در دنیای توسعه وب، عملکرد و کارایی بسیار مهمه و با پیچیده تر شدن برنامه ها، نیاز به مدیریت همزمان وظایف بدون مسدود کردن رشته اصلی، ضروری میشه. اینجاست که Web Workers و Worker Threads وارد عمل میشن، اما هر کدوم چی هستن؟ 🤔

‏Web Workers چیه؟

‏Web Workers یک ویژگی در مرورگرها هست که به جاوا اسکریپت اجازه میده، جدا از رشته اصلی اجرای یک برنامه وب، در بکگراند اجرا بشه که این به انجام محاسبات پیچیده یا مدیریت مجموعه داده های بزرگ، بدون فریز کردن رابط کاربری، کمک میکنه.

‏Worker Threads چیه ؟

از طرف دیگه Worker Threads یکی از ویژگی‌های Node.js هست، که این امکان رو برای اجرای موازی کد جاوا اسکریپت فراهم میکنه، و دولوپر ها رو قادر میسازه تا عملیات فشرده CPU رو بدون مسدود کردن ایونت لوپ اصلی انجام بدن.

شباهت بین Web Workers و Worker Threads چیه؟

🔵Concurrency: هم Web Workers و هم Worker Threads امکان اجرای همزمان وظایف رو فراهم میکنن.

🔵Message Passing: از طریق مکانیزم های ارسال پیام با thread اصلی ارتباط برقرار میکنن.

🔵Isolation: هر دو روش هایی برای اجرای کد جاوااسکریپت به صورت موازی و ایزوله هستن، به این معنی که در فضای جداگانه از رشته اصلی جرا میشن، و از تداخل جلوگیری میکنن.

🔵Performance Improvement: هر دو با برداشتن وظایف، از thread اصلی، عملکرد برنامه ها رو بهبود می بخشن.

اما چه تفاوتی با هم دیگه دارن؟

🔵Environment: وب ورکر ها مختص مرورگرهای وب هستن، در حالی که Worker Threads مختص Node.js.

🔵DOM Access: وب ورکر ها نمیتونن مستقیماً به DOM دسترسی داشته باشن، در حالی که Worker Threads که در محیط Node.js کار می کنن و با DOM کلا سروکار ندارن.

🔵Memory Sharing : وب ورکر ها نمیتونن از اشتراک گذاری حافظه استفاده کنن، درحالی که Worker Thread ها با استفاد‌ه از SharedArrayBuffer میتونن.

به صورت کلی این یک مقایسه کوچیک و کوتاه بود و قطعا تفاوت و شباهت‌ های بیشتری دارن. همچنین پیشنهاد میکنم برای کسب اطلاعات بیشتر به منابع زیر مراجعه کنید.

- Article
- Article
- Article

#nodejs #browser
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥85👌2
تا حالا اسم کتابخانه chance.js رو شنیدید؟

کتابخانه‌ chance.js، یک کتابخانه‌ی کوچیک و کارآمد برای تولید داده‌های تصادفی در جاوااسکریپت هست. این کتابخانه به شما این امکان رو میده که انواع مختلفی از داده‌ها رو به صورت تصادفی تولید کنید که شامل اعداد، رشته‌ها، آدرس‌ها، نام‌ها، تاریخ‌ها و موارد دیگه ای میشه.

برخی از مواردی که این کتابخانه می‌تونه تولید کنه⬇️

اعداد: صحیح و اعشاری در بازه دلخواه.

رشته‌ها: رشته‌های با طول مشخص و UUID.

داده‌های شخصی: نام، سن، جنسیت، تاریخ تولد.

مکان‌ها: آدرس، شهر، کشور، کد پستی.

ارتباطات: ایمیل، شماره تلفن، URL.

اینترنت: آدرس‌های IP و نام دامنه.

همچنین این کتابخانه بسیار ساده، قابل پیکربندی و دارای حجم کمی هست ⚡️


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

Document 🌐

#chance
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7👌43❤‍🔥1
با Sinon.js دیگه نگران عملکرد کدتون نباشید!⚡️

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

اما تخصصی تر ‏Sinon.js واقعا چیه؟

‌‌‌‌‌‏Sinon.js یک کتابخانه هست که مجموعه ای از ویژگی ها برای تست کد ارائه میده، به ویژه برای تست کدهای ناهمزمان و برای ماک کردن وابستگی ها در برنامه شما مفیده، و میتونید ازش برای هر چارچوب تستی مثل Jasmine یا QUnit و... استفاده کنید.

چرا از Sinon.js استفاده کنیم؟

🔵قابلیت اطمینان تست بهبودیافته

‏Sinon.js به جداسازی کد تحت آزمایش کمک میکنه، تا اطمینان حاصل بشه که تست های ما تحت تأثیر عوامل خارجی قرار نمیگیرن.

🔵پوشش کد بهتر

‏Sinon.js آزمایش کامل همه مسیرهای کد، از جمله مدیریت خطا و edge cases رو امکان پذیر میکنه.

🔵وضوح تست بهبودیافته

ویژگی های این کتابخانه مثل spies و stubs، تست ها رو خواناتر و قابل درک تر میکنه.

🔵تست ناهمزمان ساده

‏Sinon.js با ویژگی هایی مانند تایمر های جعلی، آزمایش کدهای متکی بر time-based events رو آسون تر میکنه.


‏به صورت کلی، Sinon.js یک ابزار قدرتمنده که میتونه مجموعه تست های جاوا اسکریپتی شما رو تا حد زیادی بهبود ببخشه. برای کسب اطلاعات بیشتر به وب سایت رسمی Sinon.js مراجعه کنید.

#sinonjs #javascript
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
7🔥2👌2
✌️ معرفی 6 کتاب برای یادگیری عمیق‌تر جاوا اسکریپت

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

⚡️️You Don't Know JS (6 part)

⚡️JavaScript: The Definitive Guide

⚡️Learning JavaScript Design Patterns

⚡️High-Performance JavaScript

⚡️JavaScript: The Missing Manual

⚡️How JavaScript Works


#js #book
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥134👌4❤‍🔥1
این خیلی خوب بود 😂

#fun
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
😁18
با ماژول vm در Node.js آشنا بشید 🤟

یکی از ویژگی های اصلی Node.js ماژول "vm" هست، که به دولوپر ها اجازه میده تا اسکریپت ها رو در ماشین مجازی (VM) اجرا کنن. این قابلیت کاربردهای متنوعی رو ارائه میده که در ادامه به برخی از اونها، و همچنین جزئیات بیشتر در مورد ویژگی های این ماژول می پردازیم:

🔵محیط امن برای اجرای کدهای غیر قابل اعتماد

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

🔵بهبود عملکرد برنامه ها

یکی دیگه از کاربرد های ماژول “vm”، بهبود عملکرد برنامه های شما هست. ماژول "vm" به شما امکان میده اسکریپت ها رو در یک زمینه جداگانه اجرا کنین، که میتونه به جداسازی و بهینه سازی اجرای وظایف خاص کمک کنه. این میتونه برای اجرای وظایف محاسباتی فشرده مانند پردازش داده یا الگوریتم های ماشین لرنینگ، بدون تأثیر بر عملکرد بقیه برنامه شما، مفید باشه.

🔵ویژگی های پیشرفته

ماژول "vm" همچنین تعدادی ویژگی پیشرفته رو برای دولوپر ها فراهم میکنه. یکی از این ویژگی ها امکان ارزیابی پویای کد در زمان اجرا هست، این میتونه برای ساخت رابط های کاربر پویا یا برای پیاده سازی تکنیک های ساخت کد، مفید باشه. علاوه بر این ماژول "vm"، راهی برای دسترسی به متن اسکریپت فراهم میکنه، که میتونه برای دیباگ یا ساخت ویژگی های سفارشی مفید باشه.

🔵اجرای غیر مسدود کننده

ماژول "vm" همچنین راهی برای اجرای کد به صورت غیر مسدود ارائه میده. این میتونه در شرایطی که نیاز به اجرای اسکریپتی دارین که اجرای آن زمان زیادی میبره، بسیار مفید باشه.

در نتیجه، ماژول "vm" ابزار قدرتمندی هست که تعدادی ویژگی مفید رو برای دولوپر ها فراهم میکنه، و با استفاده از این ماژول دولوپر ها میتونن برنامه های قوی تر و کارآمدتری بسازن و در عین حال امنیت سیستم های خود رو نیز تضمین کنن. در صورت تمایل برای کسب اطلاعات بیشتر، مقالات زیر رو پیشنهاد میکنم.

- Article
- Article
- Article

#nodejs #vm
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥92
تلاش نکنید بی فایدست 🗿😂


#fun
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
😁21
اگه برای تمرین و کدنویسی دنبال ui خاصی میگردید، این طرح فیگما رو به هیچ وجه از دست ندید 💀

🔵 Link

#figma
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥133❤‍🔥1