دیزاین پترن ها در فرانتاند 👨🚀
بدون شک دیزاین پترن ها باعث بهود سطح و کیفیت کد ما میشن و یادگیریشون، برای هر برنامه نویسی واجبه. سایت patterns.dev یک منبع آموزشی برای یادگیری این الگوهای طراحی هست.
این سایت کلی مثال و نمونه کد برای زبان جاوااسکریپت و تکنولوژی هایی مثل ریکت و ویو داره و مثل آب خوردن، دیزاین پترن هارو میتونید یاد بگیرید.
#design_pattern
@CodeModule
بدون شک دیزاین پترن ها باعث بهود سطح و کیفیت کد ما میشن و یادگیریشون، برای هر برنامه نویسی واجبه. سایت patterns.dev یک منبع آموزشی برای یادگیری این الگوهای طراحی هست.
این سایت کلی مثال و نمونه کد برای زبان جاوااسکریپت و تکنولوژی هایی مثل ریکت و ویو داره و مثل آب خوردن، دیزاین پترن هارو میتونید یاد بگیرید.
فعلا اینو داشته باشید تا تک تک بیایم شرحشون بدیم :))
#design_pattern
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15⚡3
تفاوت متدهای 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
در Node.js مدیریت کارآمد بافرها، به ویژه هنگام مدیریت داده های باینری بسیار مهمه. متد های «Buffer.alloc()» و «Buffer.allocUnsafe()» برای همین کار در بافر ها کاربرد دارن اما یک سری تفاوت دارن.
درک زمان استفاده از هر متد بسیار مهمه
- امنیت در مقابل عملکرد: 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
22 نکته و ترفند مفید CSS که هر دولوپری باید از اونها مطلع باشه. پیشنهاد میکنم مقاله زیر رو از دست ندید ❗️
♻️ Article
#css
@CodeModule
#css
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡13🔥3
با پترن Prototype آشنا بشید! 👽
دیزاین پترن پروتوتایپ، یک پترن creational هست که اشیاء جدید رو با کپی کردن یک شی موجود مشخص میکنه، بنابراین نیازی به ایجاد کلاسهای جدید نیست. این الگو به ما اجازه میده تا اشیاء موجود رو شبیه سازی کنیم و نمونه های جدیدی رو با همون داده ها ایجاد کنیم. هر تغییری که در شیء شبیه سازی شده ایجاد میشه، بر روی شی اصلی تأثیری نداره. به خصوص زمانی که هزینه ساخت یک شی گرانتر یا پیچیده تر از کپی کردن یک شیء موجود باشد، مفیده.
شیء تازه کپی شده فقط در صورت نیاز ممکنه همون خصوصیات رو تغییر بده. این رویکرد باعث صرفه جویی در منابع و زمان پرهزینه میشه، به خصوص زمانی که ساخت شی یک فرآیند سنگینه.
یکی از بهترین راه های موجود برای ساخت یک شی از اشیاء موجود، متد ()clone هست. Clone ساده ترین روش برای اجرای یک الگوی نمونه اولیه هست.
با این مثال میتونید کامل این الگو رو درک کنید. تصور کنید شما یک طراح هستید که مبلمان میسازید.
🔵 Prototype (صندلی نمونه): شما با دقت یک صندلی تکی رو با طراحی، مواد و پایان عالی میسازید. این صندلی به "prototype" شما تبدیل میشه - طرحی برای همه صندلی های مبلمان شما.
🔵 Cloning (تولید انبوه): به جای اینکه هر صندلی رو کاملاً از ابتدا بسازید، از prototype استفاده می کنین. یک تیم کارگاه نمونه اولیه رو میگیره و با استفاده از همون مواد و تکنیک های ساخت، کپی های دقیقی رو میسازه. این فرآیند شبیه سازی به طور موثر صندلی های جدیدی رو بر اساس نمونه اولیه ساخته شده تولید میکنه.
🔵 Customization (تغییرها): در حالی که طراحی اصلی از prototype میاد، فضایی برای سفارشی سازی وجود داره. ممکنه نسخههای رنگی متفاوتی از صندلی ها بسازین، از پارچههای مختلف برای لوازم داخلی استفاده کنین یا حتی اندازه اون رو کمی تنظیم کنید. این تغییرات نشان دهنده مد هست.
به صورت کلی بخوام این پترن رو در یک جمله تعریف کنم، "راهی برای ساخت اشیاء جدید با کپی کردن موارد موجود" میشه. برای کسب اطلاعات بیشتر و مشاهده نمونه کد ها، مقالات زیر رو مطالعه کنید.
- Article
- Article
- Article
#design_pattern
@CodeModule
دیزاین پترن پروتوتایپ، یک پترن creational هست که اشیاء جدید رو با کپی کردن یک شی موجود مشخص میکنه، بنابراین نیازی به ایجاد کلاسهای جدید نیست. این الگو به ما اجازه میده تا اشیاء موجود رو شبیه سازی کنیم و نمونه های جدیدی رو با همون داده ها ایجاد کنیم. هر تغییری که در شیء شبیه سازی شده ایجاد میشه، بر روی شی اصلی تأثیری نداره. به خصوص زمانی که هزینه ساخت یک شی گرانتر یا پیچیده تر از کپی کردن یک شیء موجود باشد، مفیده.
شیء تازه کپی شده فقط در صورت نیاز ممکنه همون خصوصیات رو تغییر بده. این رویکرد باعث صرفه جویی در منابع و زمان پرهزینه میشه، به خصوص زمانی که ساخت شی یک فرآیند سنگینه.
یکی از بهترین راه های موجود برای ساخت یک شی از اشیاء موجود، متد ()clone هست. Clone ساده ترین روش برای اجرای یک الگوی نمونه اولیه هست.
با این مثال میتونید کامل این الگو رو درک کنید. تصور کنید شما یک طراح هستید که مبلمان میسازید.
به صورت کلی بخوام این پترن رو در یک جمله تعریف کنم، "راهی برای ساخت اشیاء جدید با کپی کردن موارد موجود" میشه. برای کسب اطلاعات بیشتر و مشاهده نمونه کد ها، مقالات زیر رو مطالعه کنید.
- Article
- Article
- Article
#design_pattern
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡5🔥3👌3
با Minify کم حجم جلو برو 🦦
Minify یک پکیج قدرتمند برای ساده کردن کدهای Html ،Css و جاوااسکریپت هست. Minify اندازه فایلها رو کاهش میده و زمان بارگذاری سریعتر و تجربه کاربری روانتری رو تضمین میکنه. Minify با یکپارچگی ساده و الگوریتمهای کارآمد، ابزاری هست که جهت بهینهسازی استفاده میشه. این پکیج ویژگی های زیادی داره، مانند:
1⃣ پشتیبانی از چند فرمت
این ابزار قادر به Minify فایلهای CSS، JavaScript، HTML، JSON و SVG هست. به این معنا که میتونید فایلهای مختلفی رو با استفاده از این ابزار بهینهسازی کنید.
2⃣ قابلیت استفاده از خط فرمان
minify ابزار خط فرمانی رو هم فراهم میکنه که امکان کمینهسازی فایلها رو از طریق خط فرمان امکان پذیر میکنه. این ویژگی به دولوپرا اجازه میده تا به طور خودکار و یا در فرآیندهای CI/CD از اون استفاده کنن.
3⃣ تنظیمات پیشرفته
این ابزار به شما امکان میده تا تنظیمات پیشرفتهای رو برای Minify فایلها اعمال کنید. به عنوان مثال، شما میتونید نیازمندیهای خاص خودتون رو برای فرآیند Minify تعریف کنید.
4⃣ نمایش خطاها و اخطارها
در صورت وجود هر گونه خطا یا اخطار در فرآیند Minify، این ابزار به شما گزارش میده و خطاها رو به شما نمایش میده تا بتونید اونها رو برطرف کنید و فایلهای بهینهسازی شده رو به درستی دریافت کنید.
به صورت کلی پکیج Minify یک راه آسون و موثر برای بهینه سازی کد های شما ارائه میده، که منجر به زمان بارگذاری سریع تر و تجربه کاربری بهتر میشه.
برای کسب اطلاعات بیشتر به داکیومنت خود پکیج مراجعه کنید.
Document🌐
#minify
@CodeModule
Minify یک پکیج قدرتمند برای ساده کردن کدهای Html ،Css و جاوااسکریپت هست. Minify اندازه فایلها رو کاهش میده و زمان بارگذاری سریعتر و تجربه کاربری روانتری رو تضمین میکنه. Minify با یکپارچگی ساده و الگوریتمهای کارآمد، ابزاری هست که جهت بهینهسازی استفاده میشه. این پکیج ویژگی های زیادی داره، مانند:
این ابزار قادر به Minify فایلهای CSS، JavaScript، HTML، JSON و SVG هست. به این معنا که میتونید فایلهای مختلفی رو با استفاده از این ابزار بهینهسازی کنید.
minify ابزار خط فرمانی رو هم فراهم میکنه که امکان کمینهسازی فایلها رو از طریق خط فرمان امکان پذیر میکنه. این ویژگی به دولوپرا اجازه میده تا به طور خودکار و یا در فرآیندهای CI/CD از اون استفاده کنن.
این ابزار به شما امکان میده تا تنظیمات پیشرفتهای رو برای Minify فایلها اعمال کنید. به عنوان مثال، شما میتونید نیازمندیهای خاص خودتون رو برای فرآیند Minify تعریف کنید.
در صورت وجود هر گونه خطا یا اخطار در فرآیند Minify، این ابزار به شما گزارش میده و خطاها رو به شما نمایش میده تا بتونید اونها رو برطرف کنید و فایلهای بهینهسازی شده رو به درستی دریافت کنید.
به صورت کلی پکیج Minify یک راه آسون و موثر برای بهینه سازی کد های شما ارائه میده، که منجر به زمان بارگذاری سریع تر و تجربه کاربری بهتر میشه.
برای کسب اطلاعات بیشتر به داکیومنت خود پکیج مراجعه کنید.
Document
#minify
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11⚡4
با Cheerio هر سایتی که میخوای scrap کن! 🐙
اگه با Node.js کار میکنید و به ابزاری برای دستکاری و تجزیه HTML نیاز دارید، پکیج Cheerio راه حل شماست. Cheerio یک API قدرتمند، سریع و انعطاف پذیر مشابه jQuery برای دستکاری HTML سمت سرور ارائه میده. با Cheerio میتونید به راحتی ساختارهای DOM رو پیمایش و دستکاری کنین، و کارهای مختلفی رو بدون محیط کامل مرورگر انجام بدید.
Cheerio چه کاربردی داره؟🤔
1⃣ Web Scraping: از این پکیج به طور گسترده برای web scraping استفاده میشه. با واکشی محتوای HTML از یک صفحه وب، میتونید از Cheerio برای استخراج و دستکاری داده ها استفاده کنید. این برای کارهایی مانند بازیابی قیمت محصولات از یک سایت e-commerce، استخراج مقالات خبری یا جمع آوری اطلاعات برای اهداف تحقیقاتی عالیه.
2⃣ استخراج داده: چه با فایل های HTML استایتک کار کنید و چه با محتوای تولید شده به صورت داینامیک، Cheerio به شما اجازه میده تا داده های لازم رو به طور موثر تجزیه و استخراج کنید. این به ویژه برای مدیریت رسپانس های HTML از سرویس های وب یا API هایی که داده های HTML رو برمیگردونن، مفیده.
3⃣ تست و اتوماسیون: Cheerio میتونه در محیط های تستی برای تایید ساختار و محتوای اسناد HTML استفاده بشه. این به صورت یکپارچه با فریمورک های تست مانند Mocha و Chai ادغام میشه و شما رو قادر میسازه تا تستهای قدرتمندی برای برنامههای وب خود بنویسید.
Cheerio یک ابزار ارزشمند برای دولوپر های Node.js هست. API jQuery مانند اون یادگیری و استفاده ازش رو آسون میکنه، در حالی که ماهیت سبکش تضمین میکنه که برنامه های شما سریع و کارآمد باقی بمونه. برای کسب اطلاعات بیشتر به داکیومنت اصلی اون مراجعه کنید.
#nodejs #cheerio
@CodeModule
اگه با Node.js کار میکنید و به ابزاری برای دستکاری و تجزیه HTML نیاز دارید، پکیج Cheerio راه حل شماست. Cheerio یک API قدرتمند، سریع و انعطاف پذیر مشابه jQuery برای دستکاری HTML سمت سرور ارائه میده. با Cheerio میتونید به راحتی ساختارهای DOM رو پیمایش و دستکاری کنین، و کارهای مختلفی رو بدون محیط کامل مرورگر انجام بدید.
Cheerio چه کاربردی داره؟
Cheerio یک ابزار ارزشمند برای دولوپر های Node.js هست. API jQuery مانند اون یادگیری و استفاده ازش رو آسون میکنه، در حالی که ماهیت سبکش تضمین میکنه که برنامه های شما سریع و کارآمد باقی بمونه. برای کسب اطلاعات بیشتر به داکیومنت اصلی اون مراجعه کنید.
#nodejs #cheerio
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡8🔥4
از sendBeacon جاوااسکریپت چی میدونید؟
فرض کنید میخوایم تعداد دقایقی که کاربر توی صفحهٔ مد نظر ما گذرونده رو به سرور بفرستیم. برای این کار، اطلاعات رو باید درست لحظهای که کاربر به صفحه دیگه هدایت میشه و یا تب رو میبنده انجام بدیم. مشکل استفاده از ajax اینه که بعد از بسته شدن صفحه، مرورگر ممکنه عملیات ایجکس رو اجرا نکنه و بنابراین اطلاعاتی به سرور ارسال نمیشه.
sendBeacon چیه؟😄
sendBeacon متدیه که از آبجکت سراسری navigator که یک Web API هست، قابل دسترسه و هدف از معرفی اون، ارسال اطلاعات آماری (Analytics) و کمحجم به سرور هست. نحوهٔ استفاده از اون به صورت زیر هست:
این متد، اطلاعات رو همیشه با متد POST و بصورت Asynchronous (غیر همگام) به سرور میفرسته. نکتهٔ مهم اینه که این متد اطلاعاتی از سرور برنمیگردونه. خروجی اون یک Boolean هست و در صورتی true برمیگردونه که مرورگر بتونه اطلاعات رو بفرسته. در غیر این صورت false. پس زمانی که به اطلاعات بازگشتی از سرور احتیاج داریم، sendBeacon گزینه مناسبی نیست.
چطوری از sendBeacon استفاده کنیم؟🦦
فرض کنید میخوایم درست قبل از ترک کردن صفحه توسط کاربر، اطلاعاتی رو به سرور بفرستیم. برای این کار ابتدا باید به رویداد visibilitychange گوش بدیم:
این رویداد زمانی اجرا میشه که صفحه قابل مشاهده باشه (visible) یا نباشه (hidden). حالا باید تصمیم بگیریم که اگه وضعیت صفحه hidden بود، بیایم و اطلاعات مد نظر رو به سرور پاس بدیم:
به طور کلی این API کمک میکنه تا اطلاعات رو به صورت غیر همگام به سرور ارسال کنیم. از برتریهای مهم sendBeacon نسبت به ajax اینه که اگه قصد دارید از اون برای ارسال اطلاعاتمون به سرور، درست قبل از ترک شدن صفحه توسط کاربر استفاده کنیم، مرورگر به ما این اطمینان رو میده که حتماً اون رو اجرا کنه. در صورتی که همونطور که برای ajax گفتیم، مرورگر ممکنه قبل از ترک شدن صفحه، تصمیم بگیره که عملیات ajax رو اجرا نکنه.
#sendBeacon
@CodeModule
فرض کنید میخوایم تعداد دقایقی که کاربر توی صفحهٔ مد نظر ما گذرونده رو به سرور بفرستیم. برای این کار، اطلاعات رو باید درست لحظهای که کاربر به صفحه دیگه هدایت میشه و یا تب رو میبنده انجام بدیم. مشکل استفاده از ajax اینه که بعد از بسته شدن صفحه، مرورگر ممکنه عملیات ایجکس رو اجرا نکنه و بنابراین اطلاعاتی به سرور ارسال نمیشه.
راه حلی که قبل از معرفی sendBeacon وجود داشت، ارسال اطلاعات بصورت Synchronous (همگام) درست قبل از ترک کردن کاربر بود که باعث میشد صفحه برای لحظاتی قفل (بلاک) بشه که در نتیجه باعث آسیب تجربهٔ کاربر میشد. همین دلایل بود که توسعهدهندهها رو به فکر یک API قابل اطمینانتر انداخت
sendBeacon چیه؟
sendBeacon متدیه که از آبجکت سراسری navigator که یک Web API هست، قابل دسترسه و هدف از معرفی اون، ارسال اطلاعات آماری (Analytics) و کمحجم به سرور هست. نحوهٔ استفاده از اون به صورت زیر هست:
navigator.sendBeacon(url);
navigator.sendBeacon(url, data);
این متد، اطلاعات رو همیشه با متد POST و بصورت Asynchronous (غیر همگام) به سرور میفرسته. نکتهٔ مهم اینه که این متد اطلاعاتی از سرور برنمیگردونه. خروجی اون یک Boolean هست و در صورتی true برمیگردونه که مرورگر بتونه اطلاعات رو بفرسته. در غیر این صورت false. پس زمانی که به اطلاعات بازگشتی از سرور احتیاج داریم، sendBeacon گزینه مناسبی نیست.
چطوری از sendBeacon استفاده کنیم؟
فرض کنید میخوایم درست قبل از ترک کردن صفحه توسط کاربر، اطلاعاتی رو به سرور بفرستیم. برای این کار ابتدا باید به رویداد visibilitychange گوش بدیم:
document.addEventListener('visibilitychange', () => {
});
این رویداد زمانی اجرا میشه که صفحه قابل مشاهده باشه (visible) یا نباشه (hidden). حالا باید تصمیم بگیریم که اگه وضعیت صفحه hidden بود، بیایم و اطلاعات مد نظر رو به سرور پاس بدیم:
document.addEventListener('visibilitychange', () => {
if (document.visibilityState === 'hidden') {
const data = JSON.stringify({ spent: 3600 });
navigator.sendBeacon('/log', data);
}
});
به طور کلی این API کمک میکنه تا اطلاعات رو به صورت غیر همگام به سرور ارسال کنیم. از برتریهای مهم sendBeacon نسبت به ajax اینه که اگه قصد دارید از اون برای ارسال اطلاعاتمون به سرور، درست قبل از ترک شدن صفحه توسط کاربر استفاده کنیم، مرورگر به ما این اطمینان رو میده که حتماً اون رو اجرا کنه. در صورتی که همونطور که برای ajax گفتیم، مرورگر ممکنه قبل از ترک شدن صفحه، تصمیم بگیره که عملیات ajax رو اجرا نکنه.
#sendBeacon
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡12🔥4
با این سایت یه آمار کلی از گیتهابت در بیار 🌪
سایت githubprofileviewer، یک سایت خلاقانه و کاربردیه که شما میتونید با وارد کردن آیدی اکانتتون یا هر اکانت دیگه ای، هر اطلاعاتی که مورد نیازتون هست رو ببینید!
🌐 Website
#github
@CodeModule
سایت githubprofileviewer، یک سایت خلاقانه و کاربردیه که شما میتونید با وارد کردن آیدی اکانتتون یا هر اکانت دیگه ای، هر اطلاعاتی که مورد نیازتون هست رو ببینید!
#github
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡9🔥3
خروجی کد بالا؟ 🤔
Anonymous Quiz
5%
7,8,11
46%
7,10,11
14%
7,10,12
6%
6,9,10
28%
نمیدونم، رو آیکون لامپ کلیک میکنم تا متوجه بشم💡
👌11🔥6
Node.js چطور با انواع عملیات فایل ها برخورد میکنه؟ 🤟
یکی از جنبه های ضروری بسیاری از برنامه ها مدیریت فایل هست، مثل خوندن و نوشتن فایل ها و ... اما قبل از دونستن نحوه کار مدیریت فایل ها، باید بدونیم خود فایل چیه. به طور خلاصه، فایل یک محفظه داده ای هست که روی یک هارد دیسک ذخیره شده و توسط سیستم عامل (OS) قابل دسترسی و مدیریت هست.
فرآیند کلی مدیریت فایل به چه شکله؟🤔
بیشتر زبان های برنامه نویسی برای مدیریت عملیات فایل به سیستم عامل (OS) متکی هستن. این تعامل برای خوندن و نوشتن فایل ها بدون مدیریت مستقیم پیچیدگی های سخت افزاری ضروری هست.
1⃣ Function Call: ما به عنوان دولوپر یک فانکشن رو برای باز کردن، خوندن، نوشتن یا دستکاری یک فایل مینویسیم. این فانکشن معمولاً بخشی از کتابخانه استاندارد اون زبانه.( در Node.js به عنوان رانتایم این کار رو با ماژول fs هندل میکنه)
2⃣ Library Abstraction: تابع استاندارد کتابخانه پیچیدگی تعامل با سیستم عامل رو خلاصه میکنه. این درخواست رو به گونه ای بسته بندی میکنه که سیستم عامل بتونه اون رو درک کنه. (Node.js از کتابخونه Libuv برای اینکار استفاده میکنه)
3⃣ System Call: فانکشن کتابخانه یک تماس سیستمی برقرار میکنه. فراخوانی سیستم مکانیزمی هست که به برنامه در سطح کاربر اجازه میده تا خدمات رو از سیستم عامل درخواست کنن. فراخوانی های رایج سیستمی برای عملیات فایل شامل «open»، «read»، «write» و «close» هست.
4⃣ OS Handling: سیستم عامل تماس سیستم رو دریافت میکنه، عملیات درخواستی رو انجام میده (مثلاً مکان یابی فایل روی دیسک، خواندن داده ها، نوشتن داده ها)، و نتیجه رو برمیگردونه.
5⃣ Data Retrieval: سیستم عامل داده های فایل یا وضعیت عملیات رو از طریق کتابخانه استاندارد به برنامه برمیگردونه.
این فرآیند تضمین میکنه که برنامه ها میتوننن عملیات فایل رو بدون نیاز به مدیریت جزئیات سطح پایین تعامل با سیستم فایل و سخت افزار انجام بدن. برای کسب اطلاعات بیشتر مقالات زیر رو مطالعه کنید.
- Article
- Article
- Article
#nodejs
@CodeModule
یکی از جنبه های ضروری بسیاری از برنامه ها مدیریت فایل هست، مثل خوندن و نوشتن فایل ها و ... اما قبل از دونستن نحوه کار مدیریت فایل ها، باید بدونیم خود فایل چیه. به طور خلاصه، فایل یک محفظه داده ای هست که روی یک هارد دیسک ذخیره شده و توسط سیستم عامل (OS) قابل دسترسی و مدیریت هست.
فرآیند کلی مدیریت فایل به چه شکله؟
بیشتر زبان های برنامه نویسی برای مدیریت عملیات فایل به سیستم عامل (OS) متکی هستن. این تعامل برای خوندن و نوشتن فایل ها بدون مدیریت مستقیم پیچیدگی های سخت افزاری ضروری هست.
این فرآیند تضمین میکنه که برنامه ها میتوننن عملیات فایل رو بدون نیاز به مدیریت جزئیات سطح پایین تعامل با سیستم فایل و سخت افزار انجام بدن. برای کسب اطلاعات بیشتر مقالات زیر رو مطالعه کنید.
- Article
- Article
- Article
#nodejs
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡8🔥5
در واقع WebGL مخفف Web Graphics Library هست که یک کتابخانه ی جاوااسکریپتیه که با اون میشه اشیاء تعاملی دو بعدی و سه بعدی ایجاد کرد.
کتابخانه WebGL با تمام مرورگر ها سازگاره و همچنین یک تکنولوژی cross-platform هست، و برای رندر کردن تصاویر مستقیما از کارت گرافیک استفاده میکنه
کتابخانه WebGL به هیچ نرم افزار خاص یا پلاگینی وابسته نیست و فقط با استفاده از HTML5 و JavaScript میشه اونو پیاده سازی کرد. پیش از این گرافیک سه بعدی محدود به کنسول های بازی و یا کامپیوتر های سطح بالا بود ولی امروزه با پیشرفت کامپیوتر های شخصی و مرورگر های اینترنت، نمایش گرافیک سه بعدی از طریق تکنولوژی های مدرن و شناخته شده ی وب امکان پذیره.
میتونیم بگیم نسل های آینده ی وب متعلق به WebGL هست چرا که این تکنولوژی بدون شک نقش مهمی رو در ui های نسل بعدی وب بازی خواهد کرد.
برای کسب اطلاعات بیشتر میتونید به داکیومنتش مراجعه کنید
Document
#webgl #ui #library
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡8🔥3
فایل fstab لینوکس چیه و چه کاربردی داره؟🪴
شما برای اینکه بتونید در سیستم عامل لینوکس از یک فایل سیستم یا پارتیشن استفاده کنید، بایستی اون رو در سیستم mount کنید. یکی از فایل هایی که در خصوص mount کردن بسیار به شما و سیستم عامل کمک میکنه، فایلی به اسم fstab هست.
در لینوکس هر دستگاه اکسترنال مثل usb disk ها که ما به طور مداوم اونها رو متصل و جدا میکنیم، یک اسم یونیک و یک دایرکتوری برای ماونت شدن دارن تا از اونجا قابل دسترس باشن. اگر بخوایم ازشون استفاده کنیم بدون اینکه اونارو داخل فایل fstab اضافه کرده باشیم، مجبوریم از اول دوباره به محل مورد نظر با اسم جدید mount کنیم، چون هر دفعه تغییر میکنن و ممکنه گیج بشید.
👍 برای اینکه این اتفاق نیوفته باید اون دیوایس هارو داخل فایل fstab با uuid شون به fstab اضافه کنیم، که در دایرکتوری /etc میتونید بهش دسترسی داشته باشید.
🔵 برای اضافه کردن هر دیسک باید یکسری اطلاعات از اون رو داخل این فایل قرار بدید:
◀️ اطلاعات file system : شناسه اون دیسک یا دیوایسی که در کامپیوتر با اون اسم ذخیره شده مثل uuid.
◀️ اطلاعات mount point : مکانی که اون دیسک یا دیوایس mount شده.
◀️ اطلاعات type :نوع فایل سیستمی که اون دیوایس یا دیسک به اون فرمت شده.
◀️ گزینه های مربوط به فایل سیستم (options) : این اپشن ها نحوه نصب و استفاده از سیستم فایل رو کنترل میکنن. بعضی از گزینه های رایج:
🔵 آپشن auto: سیستم فایل رو به صورت خودکار در زمان بوت نصب میکنه.
🔵 آپشن noauto: فایل سیستم رو به صورت خودکار در زمان بوت سوار نمیکنه.
🔵 آپشن user: به هر کاربری اجازه میده تا فایل سیستم رو نصب کنه.
🔵 آپشن nouser: فقط به کاربر root اجازه میده تا فایل سیستم رو mount کنه.
🔵 آپشن sync: از I/O همزمان برای سیستم فایل استفاده میکنه.
◀️ فلگ Dump :این فلگ یا پرچم نشون میده که آیا سیستم فایل باید در زمان بک آپ گیری، توسط ابزار dump بک آپ گیری بشه یا نه. که یه صورت دیفالت 0 قرار داره که یعنی انجام نشه.
◀️ فلگ Pass : این فلگ به ترتیبی که fsck (ابزار بررسی و تعمیر سیستم فایل) باید هنگام بوت، فایل سیستم ها رو بررسی کنه، اشاره داره. این ابزار در سیستم عامل لینوکس، سازگاری و سلامتی سیستم فایل رو بررسی و در صورت نیاز تعمیر میکنه. که مقدار دیفالتش 0 هست که یعنی برسی انجام نشه.
‼️ اگر میخواید سیستم فایلتون رو هر بار بررسی کنید، باید اون رو روی یکی از مقادیر بالاتر تنظیم کنید.
به طور کلی این فایل کاربردی در لینوکس به شما این امکان رو میده، تا اطلاعات mount کردن دیسکها و پارتیشنها رو در زمان بوت سیستم عامل تعیین کرده، و دستورات mount رو به صورت خودکار اجرا کنید. همچنین از این فایل میتونید برای تنظیمات مربوط به نحوه استفاده از فایل سیستم و تعیین نحوه بکآپ گیری و بررسی سیستم فایل استفاده کنید.
#linux #fstab
@CodeModule
شما برای اینکه بتونید در سیستم عامل لینوکس از یک فایل سیستم یا پارتیشن استفاده کنید، بایستی اون رو در سیستم mount کنید. یکی از فایل هایی که در خصوص mount کردن بسیار به شما و سیستم عامل کمک میکنه، فایلی به اسم fstab هست.
در لینوکس هر دستگاه اکسترنال مثل usb disk ها که ما به طور مداوم اونها رو متصل و جدا میکنیم، یک اسم یونیک و یک دایرکتوری برای ماونت شدن دارن تا از اونجا قابل دسترس باشن. اگر بخوایم ازشون استفاده کنیم بدون اینکه اونارو داخل فایل fstab اضافه کرده باشیم، مجبوریم از اول دوباره به محل مورد نظر با اسم جدید mount کنیم، چون هر دفعه تغییر میکنن و ممکنه گیج بشید.
# <file system> <dir> <type> <options> <dump> <pass>
UUID=1328-jsu383-jseu2j-hndid3 / ext4 defaults,noatime 0 1
به طور کلی این فایل کاربردی در لینوکس به شما این امکان رو میده، تا اطلاعات mount کردن دیسکها و پارتیشنها رو در زمان بوت سیستم عامل تعیین کرده، و دستورات mount رو به صورت خودکار اجرا کنید. همچنین از این فایل میتونید برای تنظیمات مربوط به نحوه استفاده از فایل سیستم و تعیین نحوه بکآپ گیری و بررسی سیستم فایل استفاده کنید.
#linux #fstab
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡9❤🔥4🔥4
بزرگترین منبع برای Cheat Sheets 💎
OverAPI یک سایت جمعآوری کننده cheat sheets برای زبانها و فناوریهای مختلف برنامه نویسی هست. این سایت شامل چیت شیت برای زبانهایی مانند Python، JavaScript ،CSS Java، و بسیاری دیگر هست. این چیت شیتها به دولوپرا کمک میکنن تا به سرعت به اطلاعات ضروری و کاربردی برای کدنویسی دسترسی پیدا کنن.
🔵 https://overapi.com/
#cheatSheet
@CodeModule
OverAPI یک سایت جمعآوری کننده cheat sheets برای زبانها و فناوریهای مختلف برنامه نویسی هست. این سایت شامل چیت شیت برای زبانهایی مانند Python، JavaScript ،CSS Java، و بسیاری دیگر هست. این چیت شیتها به دولوپرا کمک میکنن تا به سرعت به اطلاعات ضروری و کاربردی برای کدنویسی دسترسی پیدا کنن.
#cheatSheet
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10⚡4👌4
برنامهنویسی آخرین شغلیه که توسط هوش مصنوعی جایگزین میشه 🧠
نظر شما راجب این موضوع و عقیده چیه؟🤔
#ai
@CodeModule
نظر شما راجب این موضوع و عقیده چیه؟
#ai
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
👌16🔥3
با این ماژول هر چیزی که میخوای فشرده کن! 🦦
در Node.js برای عملیات فشرده سازی و رفع فشرده سازی یک ماژول قدرتمند وجود داره به اسم zilib. این ماژول هر دو روش همزمان و ناهمزمان رو برای انجام این عملیات ارائه میده و به دولوپر ها این امکان رو میده تا رویکردی رو انتخاب کنن، که به بهترین وجه با نیازهاشون مطابقت داره.
این ماژول در چه مواقعی کاربرد داره؟🤔
1⃣ سرور های وب: سرور های وب میتونن از ماژول
2⃣ فشرده سازی فایل ها: ماژول
3⃣ Data Streams: مدیریت streams داده های بزرگ مانند فایل های لاگ، اغلب به فشرده سازی نیاز داره تا ذخیره سازی و انتقال کارآمدتر بشه. ماژول «zlib» از فشردهسازی مبتنی بر جریان پشتیبانی کنه و اون رو برای برنامههای پردازش داده ایدهآل میکنه.
به صورت کلی ماژول
#nodejs
@CodeModule
در Node.js برای عملیات فشرده سازی و رفع فشرده سازی یک ماژول قدرتمند وجود داره به اسم zilib. این ماژول هر دو روش همزمان و ناهمزمان رو برای انجام این عملیات ارائه میده و به دولوپر ها این امکان رو میده تا رویکردی رو انتخاب کنن، که به بهترین وجه با نیازهاشون مطابقت داره.
این ماژول در چه مواقعی کاربرد داره؟
zlib
برای فشرده سازی ریسپانس های HTTP قبل از ارسال اون ها به کلاینت ها استفاده کنن. این باعث کاهش حجم داده های منتقل شده از طریق شبکه میشه که منجر به بارگذاری سریع تر و کاهش استفاده از پهنای باند میشه. به عنوان مثال، فشرده سازی JSON، HTML یا سایر فایل های ثابت قبل از انتقال، میتونه به طور قابل توجهی عملکرد برنامه رو افزایش بده.zlib
میتونه فایل ها رو برای ذخیره سازی فشرده کنه و استفاده از فضای دیسک رو کاهش بده. همچنین میتونه فایلها رو در صورت نیاز به خوندن یا پردازش از حالت فشرده خارج کنه. این به ویژه برای راه حل های پشتیبان، سیستم های بایگانی یا هر سناریویی که فایل های بزرگ باید به طور موثر ذخیره بشن مفید هست.به صورت کلی ماژول
zlib
در Node.js یک ابزار قدرتمند برای مدیریت فشرده سازی و رفع فشرده سازی داده ها هست. با استفاده از ماژول zlib
، دولوپر ها میتونن برنامه هایی بسازن که هم سریعتر و هم از نظر منابع کارآمدتر باشن. برای کسب اطلاعات بیشتر به داکیومنت خود ماژول مراجعه کنید.#nodejs
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11⚡4
با استفاده از Docker Swarm، میشه یک گروه از worker ها رو بهعنوان یک cluster یا خوشه از سرورهای Docker مدیریت کرد و برنامههای کانتینری رو بر روی اونا اجرا کرد. همچنین امکاناتی برای اجرا، مدیریت، مانیتورینگ و اسکالینگ برنامههای کانتینری در محیطهای توزیعشده فراهم میکنه.
ابزار Docker Swarm برای افرادی که با دستورات Docker آشنا هستن یا در پروژههای کوچیک و متوسط فعالیت میکنن، انتخاب مناسبیه چون یادگیری و نصبش به سادگی انجام میشه. اما Kubernetes به دلیل دارا بودن یک جامعه کاربری بزرگتر و امکان ادغام با Third party tools، از پشتیبانی بیشتری برخورداره و کاربرا میتونن به ابزارهای متنوعی دسترسی پیدا کنن.
به طور کلی، Docker Swarm یک ابزار قدرتمند برای مدیریت و اجرای برنامههای کانتینری در محیطهای توزیعشدست که با استفاده از قابلیتهای مدیریتی، مقیاسپذیری و انعطافپذیری، به توسعهدهندگان امکانات کارآمد و کاربردی برای مدیریت برنامهها رو ارائه میده
#docker #kubernet #dockerswarm
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡9🔥2