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
This media is not supported in your browser
VIEW IN TELEGRAM
همه چی آرومه، من چقدر خوشبختم 😣

#fun
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
😁9
با این ابزار خلاقیت رو به اوج برسون 🚀

‏Bennett Feely یک وبسایت هست که ابزارهای خلاقانه و کاربردی بهتون ارائه میده، که با استفاده از این ابزارها میتونید به سادگی و بدون نیاز به دانش تخصصی، ایده‌های خودتون رو به واقعیت تبدیل کنید.

برخی از ابزارهای Bennett Feely ⬇️

‏* ztext.js: تایپوگرافی 3 بعدی رو به هر وب‌سایت و فونت دلخواهی اضافه کنید.

‏* CSS Scales: این ابزار به شما امکان میده مقیاس‌های رنگی رو از ColorBrewer و van der Walt، Smith و Firing به صورت گرادیانت دریافت کنید.

‏* CSS Pie Chart: با استفاده از گرادیانت‌های مخروطی، نمودارهای دایره‌ای رو به سادگی بسازید.

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


#tools #css
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
9🔥2
با ماژول dgram در Node.js آشنا بشید 🐲

ماژول «dgram» در Node.js ابزارهایی رو برای کار با سوکت‌های UDP (User Datagram Protocol) فراهم میکنه. UDP یک پروتکل بدون اتصاله، به این معنی که تبادل short-lived داد ها (داده گرام) رو بین برنامه ها بدون نیاز به اتصال مداوم برقرار می‌کنه.

این ماژول چه کاربردی داره؟ 🤔

* ساخت سوکت های UDP: تابع dgram.createSocket() به شما امکان میده سوکت های UDP رو برای ارسال و دریافت دیتاگرام بسازین. میتونید نوع سوکت رو مشخص کنید (مثلاً «udp4» برای IPv4) و به‌صورت اختیاری یک کالبک برای مدیریت ایونت ها ارائه بدید.

* ارسال و دریافت دیتاگرام: هنگامی که یک سوکت دارید، میتونین از متد «send()» برای انتقال دیتاگرام به یک آدرس و پورت خاص استفاده کنید. متد «send()» داده‌های ارسالی، آدرس مقصد و پورت، و یک کالبک اختیاری برای مدیریت رو می‌پذیره. listener ایونت "message" در سوکت به شما امکان میده دیتاگرام های دریافتی رو دریافت کرده و داده ها رو پردازش کنید.

* مدیریت سوکت: ماژول «dgram» متد های مختلفی رو برای مدیریت سوکت‌های شما ارائه میکنه، از جمله اتصال تنها به یک پورت خاص، پیوستن به گروه‌های چندپخشی برای دریافت پیام‌ها از چندین منبع، و تنظیم ویژگی‌هایی مانند (Time-To-Live (TTL) ) برای دیتاگرام ها.

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


به صورت کلی ماژول dgram در Node.js این مکان رو میده که از سرعت و سادگی UDP برای ارتباط real-time و... استفاده کنید. برای اطلاعات بیشتر به داکیومنت این ماژول مراجعه کنید ⚡️

#nodejs
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥103
🖥 لینکدین و 🌐 گیتهاب دو پلتفرم عالی برای شبکه سازی هستن و همون‌طور که میدونید، دولوپری که شبکه سازی خوبی نداشته باشه، مثل نوازنده‌ایه ک ساز نداره.

در بخش کامنت های این پست لینک گیتهاب و لینکدین خودتون رو بفرستید، تا با بقیه دولوپر‌ها آشنا بشید و کانکشن‌های جدید پیدا کنید 💬

#connection
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
11👌4🔥2
میکروسرویس چیه؟ 🦦

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

میکروسرویس ها چجوری کار می کنن؟ 💀

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

به عنوان مثال فرض کنید ❗️

یک برنامه کوچک داریم که وظیفه اون ارسال ایمیل‌های خوش‌آمدگویی به کاربران جدید هست . این برنامه میتونه به سه میکروسرویس تقسیم بشه⬇️

1. میکروسرویس ثبت‌نام کاربر: مسئول ثبت‌نام کاربران جدید و ذخیره اطلاعات اون‌ها در دیتابیس.

2. میکروسرویس تولید ایمیل: مسئول تولید محتوای ایمیل خوش‌آمدگویی بر اساس اطلاعات کاربر.

3. میکروسرویس ارسال ایمیل: مسئول ارسال ایمیل به آدرس کاربر.

اما این میکروسرویس‌ها به چه صورت با هم کار می‌کنن؟😄

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

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

- Article
- Article
- Article

#microservice
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
10🔥4❤‍🔥1
‏AbortController در جاوااسکریپت ✌️

یکی از بزرگترین فاکتورهایی که کمک می‌کنه یک برنامهٔ بهینه و سریع داشته باشیم، اینه که بدونیم چطوری یک عملیات Async رو توی برنامه شروع، و اون‌ رو به پایان برسونیم. در حالت عادی ما عملیات مد نظرمون رو شروع می‌کنیم و بعد از چند لحظه پاسخ عملیات بهمون برمی‌گرده. پس عملیات به طور خودکار به پایان میرسه و به طور کلی، شروع این عملیات به دست خودمونه، اما پایانش خیر!

AbortController چیه؟ 🤔

‏AbortController یک قابلیته که اجازه میده خیلی راحت بتونیم یک یا چند عملیات Async رو در زمان لزوم متوقف کنیم.

فرض کنید می‌خوایم اطلاعاتی روی سرور آپلود کنیم:
(async function () { 
const res = await fetch('/upload', ... );
const data = await res.json();

return data;
})();

گاهی اوقات می‌بینیم که آپلود بیش از حد معمول طول می‌کشه و می‌خوایم اون رو کنسل کنیم تا برای مثال، دکمه‌ای تحت عنوان «تلاش مجدد» نشون بدیم تا کاربر بیش از اندازه منتظر نمونه. fetch به تنهایی چنین قابلیتی رو نداره. اما برای حل این مسئله AbortController به کارمون میاد.

برای اینکه بتونیم عملیات مد نظرمون رو کنترل کنیم، ابتدا باید با استفاده از AbortController یک کنترلر بسازیم:

const controller = new AbortController(); 

همه کنترلرها یک پراپرتی به اسم signal دارن، که به عنوان یک رابط بین کنترلر و عملیاتی که می‌خوایم اون رو کنسل کنیم هست.


مرحلهٔ بعد اینه که این کنترلر رو به شکل زیر به fetch بشناسونیم. آرگومان دوم fetch که یک آبجکت برای کانفیگ کردن این درخواست هست، یک پراپرتی به اسم signal داره. مقدار اون رو برابر با پراپرتی signal از کنترلر قرار میدیم:

const controller = new AbortController(); 

(async function () {
const res = await fetch('/upload', {
// ...
signal: controller.signal,
});

const data = await res.json();

return data;
})();

حالا هر زمانی که لازم داشتیم می‌تونیم این عملیات رو کنسل کنیم. برای این کار کافیه متد abort از کنترلر رو صدا بزنیم:
const controller = new AbortController(); 

document.getElementById("cancel").onclick = () => {
controller.abort();
}


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

#javascript
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥173
چالش داریم چه چالشی 🦦

در چالش امروز شما قراره با استفاد از bubble sort یک آرایه بهم ریخته رو مرتب کنید.

آرايه من:
[20,0x2d,01011, 10,0x1d,0101010100, 4,0xf2, 51, 0,3.5, 2, 4,-2];


پاسختون رو کامنت کنید و اگه نمیدونید bubble sort چیه، مقالات زیر رو مطالعه کنید⬇️

- Article
- Article
- Article

#challenge
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥74
۵ ماژول کاربردی Node.js که پیشنهاد میکنم از دست ندید 🤟

🔵ماژول Cluster

🔵ماژول Os

🔵ماژول Net

🔵ماژول Child process

🔵ماژول Dgram

#top
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
13🔥5
۵ سایت فوق‌العاده که هر فرانت دولوپری باید از اونها مطلع باشه 💀

1⃣Undraw

یک وبسایت فوق‌العاده که بهتون این امکان رو میده، تصاویر SVG متناسب با نیازهای خودتون رو پیدا، کاستومایز و در پروژه هاتون استفاده کنید.

2⃣Kraken

با استفاده از این سایت میتونید تصاویر مد نظرتون رو در اندازه‌های کوچک‌تر فشرده و بهینه کنید. این کار می‌تونه به نفع عملکرد وبسایت و زمان بارگذاریش باشه.

3⃣Deblank Colors

‏Deblank Colors ابزاریه که به شما در انتخاب Color Scheme مناسب برای پروژه‌‌هاتون کمک می‌‌کنه. بخشی از تصمیم‌گیری این ابزار مبتنی بر هوش مصنوعی بوده و در نتیجه انجام کارها با سرعت و خلاقیت بیشتری همراه هست.

4⃣‏30secondsofcode

این سایت به شما اجازه میده تکه کد‌های کاربردی و رایج واسه هر ابزار مثل ریکت، ویو، پایتون و ... رو کپی و استفاده کنید.

5⃣frontend.horse

یه سایت کاربردی که با استفاده از اون، میتونید از آخرین اخبار و ترفند های فرانت‌اند با خبر بشید.

#frontend
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
12👌2🔥1💔1
‏Domain-Driven Design چیه؟ 🦦

‏Domain-Driven Design رویکردی برای توسعه نرم افزار هست که بر درک و مدل سازی حوزه اصلی کسب و کار تأکید داره، و توسط Eric Evans در کتاب اصلی خود به نام "Domain-Driven Design: Tackling Complexity in the Heart of Software" معرفی شد. DDD استراتژی‌ها و بهترین شیوه‌ها رو برای همسو کردن پروژه‌های نرم‌افزاری با نیازهای پیچیده حوزه کسب‌وکاری رو ارائه میکنه.

مفاهیم اصلی DDD ⬇️

🔵 Domain: موضوعی که برنامه فعالیت میکنه رو نشون میده و نشان دهنده کسب و کار یا فعالیت اصلی سازمان هست.

🔵 Ubiquitous Language: زبان مشترکی که همه اعضای تیم (دولوپرا، کارشناسان حوزه و... ) به اشتراک میزارن تا از ارتباطات واضح و درک مشترک از دامنه اطمینان حاصل بشه.

🔵 Bounded Context: مرزی که در اون یک مدل خاص تعریف شده و قابل اجرا هست. بخش‌های مختلف سیستم ممکنه مدل‌های متفاوتی داشته باشن، و Bounded Contexts به مدیریت روابط اون ها کمک میکنه.

🔵 Entities: اشیایی که اساساً با هویتشون تعریف میشن تا ویژگی هاشون. به عنوان مثال، یک مشتری در یک فروشگاه.

🔵 Value Objects: اشیایی که با ویژگی هاشون تعریف میشن و هویت ندارن. به عنوان مثال، یک تاریخ یا یک مقدار ارز.

🔵 Aggregates: یک خوشه ای از موجودیت ها و اشیاء که به عنوان یک واحد برای تغییرات داده ها، در نظر گرفته میشن.

🔵 Repositories: انتزاعاتی که روش هایی رو برای دسترسی و دستکاری مجموعه ها ارائه میدن و به عنوان پل، بین لایه های دامنه و داده عمل میکنن.

🔵 Services: عملیاتی که به طور طبیعی به یک موجودیت یا شی تعلق ندارن، اما برای دامنه ضروری هستن، و اون ها منطق دامنه رو کپسوله میکنن.

🔵 Domain Events: ایونت هایی که حاکی از اهمیتی هستن کخ دامنه اتفاق افتاده. اون ها برای تحریک رفتارها یا فرآیندها استفاده میشن.


به صورت کلی Domain-Driven Design یک رویکرد جامع برای توسعه نرم افزار رو ارائه میده که از نزدیک با دامنه کسب و کارشون همسو باشه. DDD روشی ساختاریافته برای مدیریت پیچیدگی‌های ذاتی در توسعه نرم‌افزار ارائه میده و تضمین میکنه که محصول نهایی واقعاً نیازهای تجاری رو منعکس و پشتیبانی کنه. برای کسب اطلاعات بیشتر مقالات زیر رو پیشنهاد میکنم.

- Article
- Article
- Article

#ddd
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
7🔥3
با ShellJS آشنا بشید 🪐

‏ShellJS یک پکیج محبوب npm هست که دستورات command line رو برای اسکریپت های Node.js اجرا میکنه. این به دولوپرا اجازه میده تا عملیات مختلفی مانند دستکاری فایل، پیمایش دایرکتوری و اجرای دستور رو مستقیماً در محیط Node.js انجام بدن.

این پکیج چه کاربرد هایی داره؟ ❗️

از ‏ShellJS در سناریوهای مختلفی میشه استفاده کرد، مانند:

1⃣عملیات فایل: به راحتی میشه عملیات های مختلفی برای فایل ها و دایرکتوری ها انجام داد، مانند: "create, read, write, delete"

2⃣اجرای فرمان: امکان خودکارسازی و یکپارچه سازی وظایف پیچیده رو فراهم میکنه.

3⃣اسکریپت نویسی: اسکریپت هایی میشه نوشت که کارهای تکراری مانند دپلوی اپلیکیشن ها، راه اندازی محیط ها و اجرای تست ها رو خودکار کنه.

به صورت کلی، ‏ShellJS یک ابزار قدرتمند برای کسایی هست که به دنبال استفاده از دستورات command line در پروژه خود هستن. برای کسب اطلاعات بیشتر به این ریپازیتوری مراجعه کنید.


#nodejs
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
8👌4😁1
چی بگم والا 😔

#fun
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
😁23
با Keystone.js نگران CMS ساختن نباش! 👽

‏Keystone.js یک فریمورک اوپن سورس پیشرفته هست، که برای ساخت اپلیکیشن های کاربردی و مقیاس پذیر طراحی شده، به ویژه اون هایی که به content management system (CMS) نیاز دارن. Keystone.js مجموعه ای جامع از ابزارها و ویژگی هایی ارائه میده، که فرآیند توسعه رو ساده میکنه و اون رو به یک دارایی ارزشمند برای دولوپر هایی تبدیل میکنه، که قصد ساختن برنامه های کاربردی رو دارن.

‏Keystone.js چه ویژگی های داره؟ 🤔

1⃣سیستم های مدیریت محتوا (CMS): Keystone.js در ساخت CMS، به دلیل مدیریت قدرتمند و قابلیت های مدل سازی داده های انعطاف پذیر، برتره. این به دولوپر ها این امکان رو میده که انواع محتوای مناسب بسازن، روابط بین داده های مختلف رو مدیریت کنن، و گردش های کاری پیچیده رو پیاده سازی کنن، که اون رو به یک انتخاب ایده آل برای شرکت هایی تبدیل میکنه که به راه حل های مدیریت محتوای سفارشی نیاز دارن.

2⃣ E-commerce Platforms: با توانایی مدیریت حجم زیادی از داده ها و روابط پیچیده، Keystone.js برای توسعه E-commerce Platform مناسب هست، و از مدیریت کاتالوگ محصول، پردازش سفارش و... پشتیبانی میکنه.

3⃣وب اپلیکیشن ها: Keystone.js به CMS یا E-commerce محدود نمیشه. به همان اندازه در تامین انرژی طیف گسترده ای از برنامه های کاربردی وب ماهر هست. از سایت‌های شبکه‌های اجتماعی گرفته، تا برنامه‌های چت real-time و...، که زیر ساخت‌های ضروری مورد نیاز برای ساخت وب اپلیکیشن ها با ویژگی‌های مختلف رو فراهم میکنه.

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

#nodejs
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
7🔥3
5 وبسایت خفن که بهت لودینگ های خیره‌کننده css تحویل میدن!! 🔵

1⃣freefrontend-css-loaders

2⃣loading.io

3⃣spinkit

4⃣preloaders

5⃣css-loaders

#loading #css
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥103❤‍🔥2👌1
اگه برای تمرین و کدنویسی دنبال ui خاصی میگردید، این طرح فیگما رو به هیچ وجه از دست ندید 💀

🔵 Link

#figma
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
13🔥4
جای هواپیما، جعبه سیاه رو تو برنامه نویسی قرار بده و بساز 🐣

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

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

1⃣تشخیص الزامات آزمون

- تمام الزامات کاربردی، داستان های کاربر و معیارهای پذیرش رو جمع آوری کنید.
- رفتار مورد انتظار نرم افزار رو درک کنین.

2⃣تعریف موارد تست

‏- test cases دقیق رو بر اساس الزامات ایجاد کنین.
- هر مورد آزمون باید شرایط ورودی و نتایج مورد انتظار رو مشخص کنه.
- از پوشش تمام سناریوهای ورودی احتمالی، از جمله موارد edge اطمینان حاصل کنین.

3⃣اطلاعات تست رو آماده کنید

- توسعه یا به دست آوردن داده های مورد نیاز برای انجام موارد آزمایشی.
- مطمئن بشید که داده‌های آزمایشی همه سناریوهای ورودی ممکن، از جمله شرایط معتبر، نامعتبر و مرزی رو پوشش میدن.

4⃣اجرای موارد تست

‏- test cases رو با استفاده از داده های تست آماده شده، اجرا کنید.
- در صورت امکان از ابزارهای تست خودکار برای افزایش کارایی و تکرارپذیری استفاده کنید.

5⃣ثبت نتایج

- نتایج اجرای هر تست رو مستند کنین.
- به هر گونه اختلاف بین نتایج مورد انتظار و واقعی توجه کنین.

6⃣تحلیل نتایج

- هرگونه شکست یا رفتار غیرمنتظره رو بررسی کنید.
- تعیین کنید که آیا اشکالاتی وجود داره یا آیا مشکلاتی در مورد test cases یا داده های تستی وجود داره.

7⃣گزارش یافته ها

- گردآوری گزارشات با جزئیات نتایج تست جعبه سیاه.
- موارد شناسایی شده رو به همراه شدت و تأثیر احتمالی اون بر نرم افزار رو درج کنید.

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

#test
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
7👌4🔥2
دیزاین پترن ها در فرانت‌اند 👨‍🚀

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

این سایت کلی مثال و نمونه کد برای زبان جاوااسکریپت و تکنولوژی هایی مثل ریکت و ویو داره و مثل آب خوردن، دیزاین پترن هارو میتونید یاد بگیرید.

فعلا اینو داشته باشید تا تک تک بیایم شرحشون بدیم :))


#design_pattern
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥153
تفاوت متدهای Allocation بافر در Node.js 🤟

در Node.js مدیریت کارآمد بافرها، به ویژه هنگام مدیریت داده های باینری بسیار مهمه. متد های «Buffer.alloc()» و «Buffer.allocUnsafe()» برای همین کار در بافر ها کاربرد دارن اما یک سری تفاوت دارن.

🔵Buffer.alloc(): این متد یک بافر با اندازه مشخص رو مقداردهی اولیه میکنه و به صورت دیفالت، اون رو با صفر پر میکنه و با جلوگیری از نشت داده های قبلی، امنیت رو افزایش میده.

🔵Buffer.allocUnsafe(): در مقابل این متد یک بافر رو بدون پاک کردن محتوای اون Allocation میده، و اون رو سریع تر اما به طور بالقوه ناامن به دلیل داده های باقی مونده از Allocation های قبلی میکنه. برای سناریوهایی که در اون بازنویسی فوری محتوای بافر برنامه ریزی شده هست، ایده آله.

درک زمان استفاده از هر متد بسیار مهمه⬇️

- امنیت در مقابل عملکرد: Buffer.alloc امنیت رو با مقداردهی اولیه بافرها در اولویت قرار میده و اون رو برای داده های حساس مناسب میکنه. Buffer.allocUnsafe با اجتناب از مقداردهی اولیه، عملکرد رو اولویت بندی میکنه، اما برای جلوگیری از قرار گرفتن در معرض داده های قدیمی نیاز به مدیریت دقیق داره.

به طور کلی دولوپر ها باید به‌طور دیفالت از «Buffer.alloc()» برای اکثر سناریوها به‌ویژه زمانی که امنیت در اولویت هست، استفاده کنن. «Buffer.allocUnsafe()» میتونه به‌طور عاقلانه برای عملیات حیاتی، مثل عملکرد استفاده بشه، مشروط بر اینکه بافر اختصاص‌یافته به‌سرعت بازنویسی بشه تا خطرات امنیتی کاهش پیدا کنه.

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

#nodejs #buffer
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
7🔥3