همه چیز راجب Container ها ⚡️
امروزه در دنیای نرم افزار، Container ها نقش مهمی پیدا کردن و داخل تکنولوژی های بزرگی مثل Docker و kubernetes که دربارشون مفصل صحبت کردیم، استفاده میشن.
🗂 اما کانتینرها دقیقا چی هستند؟
در واقع Containerization یک روش استقرار نرم افزاره که کد برنامه رو با تمام وابستگی های اون (کتابخانه ها و فایل های کانفیگ) مورد نیاز برای اجرا، در یک واحد مستقل به اسم Container بسته بندی میکنه. پس کانتینرها محل نگهداری دپندنسیها و کانفیگیوریشن فایلها هستن.
🤔 کانتینرها چجوری کار میکنن؟
1️⃣ مرحله اول : ساخت تصویر
ما به عنوان یک دولوپر کد هارو مینویسیم و تمام وابستگی های مورد نیاز رو مشخص میکنیم. با استفاده از ابزار هایی مثل Docker یک تصویر درست میکنیم که این تصویر شامل تمام چیز هایی هست که برای اجرای برنامه در هر محیطی نیازه، که از استاندارد (OCI) Open Container Initiative پیروی میکنه.
💙 این تصویر از چند لایه تشکیل میشه:
◀️ لایه پایه : معمولا شامل یک سیستم عامل مینیمال مثل لینوکس هست.
◀️ لایه های وابستگی : این لایه حاوی کتابخونه های از پیش نصب شده و اجزای مورد نیاز برنامه هست.
◀️ لایه برنامه : حاوی کد های برنامه و هر فایل پیکربندی اضافه مخصوص برنامه هست.
2️⃣ مرحله دوم : اجرای کانتینر
زمانی که یک تصویر رو با استفاده از موتور Docker اجرا میکنید، یک کانتینر در حال اجرا از اون تصویر ایجاد میشه.
موتور Docker از هسته سیستم عامل میزبان برای عملکردهای اصلی استفاده میکنه، اما فرایندها و منابع کانتینر رو ایزوله میکنه.
این امر باعث میشه یک محیط اجرای سبک و کارآمد برای اجرای برنامه فراهم میشه.
⚠️ نکات مهمی که بهتره بدونید:
🔵 هر کانتینر در یک فضای کاربری جداگانه اجرا میشه که از تداخل بین برنامهها یا وابستگیها جلوگیری میکنه.
🔵 برای مدیریت تعداد زیادی از کانتینرها، از پلتفرمهای ارکستراسیون کانتینری مثل Kubernetes استفاده میشه.
🔵 بسیاری از پلتفرمهای کانتینری مثل Docker، از رویکرد "امن به صورت پیشفرض" پشتیبانی میکنن، به این معنا که ویژگیهای امنیتی به طور پیشفرض فعال هستن و خطر پیکربندی نادرست رو کاهش میدن.
اما یکسری نقاط ضعف هم وجود داره :
🔢 برخی از منابع هسته سیستم عامل اصلی یا فریمورک های مشترک ممکن توسط چند کانتینر قابل دسترسی باشن، این میتونه آسیب پذیری احتمالی در صورت عدم مدیریت رو ایجاد کنه.
🔢 یک نقض امنیتی در سیستم عامل میزبان میتونه همه کانتینر های درحال اجرا رو به خطر بندازه.
به صورت کلی اگر به دنبال افزایش کارایی، مقیاس پذیری و امنیت در پروژه ها هستید، بهتره از داکر و کانتینرها استفاده کنید🔥
#docker #containerization #container #kubernetes
@CodeModule
امروزه در دنیای نرم افزار، Container ها نقش مهمی پیدا کردن و داخل تکنولوژی های بزرگی مثل Docker و kubernetes که دربارشون مفصل صحبت کردیم، استفاده میشن.
🗂 اما کانتینرها دقیقا چی هستند؟
در واقع Containerization یک روش استقرار نرم افزاره که کد برنامه رو با تمام وابستگی های اون (کتابخانه ها و فایل های کانفیگ) مورد نیاز برای اجرا، در یک واحد مستقل به اسم Container بسته بندی میکنه. پس کانتینرها محل نگهداری دپندنسیها و کانفیگیوریشن فایلها هستن.
ما به عنوان یک دولوپر کد هارو مینویسیم و تمام وابستگی های مورد نیاز رو مشخص میکنیم. با استفاده از ابزار هایی مثل Docker یک تصویر درست میکنیم که این تصویر شامل تمام چیز هایی هست که برای اجرای برنامه در هر محیطی نیازه، که از استاندارد (OCI) Open Container Initiative پیروی میکنه.
زمانی که یک تصویر رو با استفاده از موتور Docker اجرا میکنید، یک کانتینر در حال اجرا از اون تصویر ایجاد میشه.
موتور Docker از هسته سیستم عامل میزبان برای عملکردهای اصلی استفاده میکنه، اما فرایندها و منابع کانتینر رو ایزوله میکنه.
این امر باعث میشه یک محیط اجرای سبک و کارآمد برای اجرای برنامه فراهم میشه.
⚠️ نکات مهمی که بهتره بدونید:
اما یکسری نقاط ضعف هم وجود داره :
به صورت کلی اگر به دنبال افزایش کارایی، مقیاس پذیری و امنیت در پروژه ها هستید، بهتره از داکر و کانتینرها استفاده کنید
#docker #containerization #container #kubernetes
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7👌5⚡2😁1
۵ پستی که پیشنهاد میکنم از دست ندید (پارت دوم) 💀
🔵 اهمیت مهارت سرچ در برنامه نویسی
🔵 اصول نوشتن کامیت حرفهای در گیتهاب
🔵 تبدیل ui سایت مد نظر به فایل فیگما
🔵 مفهوم TDD در برنامه نویسی
🔵 ۵ نکته جهت نوشتن کد تمیز و خوانا
🔴 پارت قبل رو یادتون نره :))
#top
@CodeModule
#top
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5⚡3👌3
تابع ()calc برای انجام عملیات ریاضی ساده و پیشرفته، روی ابعاد و ویژگیهای یک واحد طراحی وب استفاده میشه. این تابع به طراحان وب امکان میده تا مقادیر پیکسلی، درصدی و دیگر واحدهای مورد استفاده در CSS رو با بقیه ترکیب کنن و به شکل دقیقتر کنترل کنن.
این تابع بخصوص برای انجام عملیات ریاضی بر روی مقادیر نسبی (مثل em, rem, vw, %) بسیار کاربردی و مفیده. در مثال زیر عرض یک عنصر نسبت به عرض عنصر نگهدارنده اون (والدش) محاسبه شده :
.element {
margin-right: calc(10% + 5px);
}
اما برای ضرب و تقسیم اگر فاصله وجود نداشته باشه، مشکلی به وجود نمیاد و محاسبه به درستی انجام میشه.
margin-right: calc(10% -5px); /* خطا */
margin-right: calc(10% +5px); /* خطا */
margin-right: calc(10%/5px); /* صحیح */
margin-right: calc(10%*5px); /* صحیح */
با استفاده از این تابع، میتونید دقیق تر و حساب شده تر مقادیر پراپرتی هاتون رو حساب کنید. نمونه مثال بیشتر و سایر اطلاعات رو میتونید تو مقاله زیر مطالعه کنید
#css #calc
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10⚡4👌3😁2❤🔥1
متغیر محیطی چیه و کاربردش در Node.js 🤟
متغیرهای محیطی (Environment Variables) مقادیر پویایی با نامهای مشخص هستن، که در خارج از برنامه تنظیم میشن و به طور کلی برای پیکربندی برنامه در محیطهای مختلف (مانند توسعه، تولید و تست) یا ذخیره اطلاعات حساس که نباید به صورت پابلیک در کد ذخیره بشن، استفاده میشه.
نحوه تنظیم متغیرهای محیطی⬇️
روشهای مختلفی برای تنظیم متغیرهای محیطی در Node.js وجود داره.
🔵 تنظیم از طریق ترمینال :
🔵 تنظیم در فایل
ابتدا یک فایل
و بعد میتونیم با استفاده از پکیجی مثل
دسترسی به متغیرهای محیطی در Node.js
در nodejs ما با استفاده از process.env که به صورت سراسری یا گلوبال در دسترس هست، میتونیم به متغیر های محیطی دسترسی داشته باشیم، و برای نام گذاری متغیر های محیطی باید نام متغیرها رو با حروف بزرگ و با underscore جدا کنیم. ( چون این یک قانون و استاندارده)
🔵 از متغير های محیطی برای تنظیم مقادیر مختلف مانند آدرس سرور دیتابیس، پورت برنامه، و اطلاعات حساس مثل رمز عبور دیتابیس و غیره استفاده میشه. در حالت معمولی، نباید این اطلاعات رو در کد ها ذخیره کنیم.
🔵 برای راحتی و دسترسی مطمئن تر به متغیر های محیطی، میتونیم از پکیج dotenv استفاده کنیم.
به صورت کلی با استفاده از متغیر های محیطی، میتونیم کد های nodejs خودمون رو تمیز تر و امن تر نگه داریم.
#env #environment_variables
@CodeModule
متغیرهای محیطی (Environment Variables) مقادیر پویایی با نامهای مشخص هستن، که در خارج از برنامه تنظیم میشن و به طور کلی برای پیکربندی برنامه در محیطهای مختلف (مانند توسعه، تولید و تست) یا ذخیره اطلاعات حساس که نباید به صورت پابلیک در کد ذخیره بشن، استفاده میشه.
نحوه تنظیم متغیرهای محیطی
روشهای مختلفی برای تنظیم متغیرهای محیطی در Node.js وجود داره.
export NODE_ENV=production
node app.js
.env
:ابتدا یک فایل
.env
در پروژه میسازیم و متغیرهای محیطی رو به صورت KEY=VALUE
تعریف میکنیم:NODE_ENV=production
DB_HOST=localhost
DB_PASSWORD=secret123
و بعد میتونیم با استفاده از پکیجی مثل
dotenv
این فایل رو در برنامه خودمون بارگیری کنیم:const dotenv = require('dotenv');
dotenv.config();
console.log(process.env.NODE_ENV); // Output: production
دسترسی به متغیرهای محیطی در Node.js
در nodejs ما با استفاده از process.env که به صورت سراسری یا گلوبال در دسترس هست، میتونیم به متغیر های محیطی دسترسی داشته باشیم، و برای نام گذاری متغیر های محیطی باید نام متغیرها رو با حروف بزرگ و با underscore جدا کنیم. ( چون این یک قانون و استاندارده)
const hostname = process.env.DB_HOST;
console.log(hostname); // Output: localhost
به صورت کلی با استفاده از متغیر های محیطی، میتونیم کد های nodejs خودمون رو تمیز تر و امن تر نگه داریم.
#env #environment_variables
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡11🔥4😁2
توی این پست با هم یک راهکار یاد میگیریم که توی سیستم عامل لینوکس، به جای اینکه هی یک دستور تکراری و طولانی رو بارها و بارها بنویسیم و وقتمون رو تلف کنیم، براش یک alias بنویسیم تا با کامند کوتاه و دلخواهمون اون دستور رو اجرا کنیم
داخل سیستم عامل های لینوکسی یک فایل وجود داره به اسم bashrc، که داخل این فایل ما میتونیم یسری کانفیگ برای shell بنویسیم، مثل فانکشن های کاستوم شده و یا alias ها و ... که بتونیم، اونارو داخل shell اجرا کنیم.
# syntax :
# nano <.bashrc dir>
nano ~/.bachrc
برای تعریف alias باید از خود کلمه کلیدی alias استفاده کنید و اسم شناسه دلخواهتون رو بنویسید، و برای مقدار هم کامند مورد نظر رو قرار بدید، طبق سینتکس زیر (برای مثال من کامند shutdown رو تست میکنم) :
# alias syntax :
# alias <keyword>='<command>'
alias shut='sudo shutdown -P now'
بعد از اینکه alias هاتون رو تعریف کردید، فایل رو سیو میکنید و خارج میشید. حالا اگه دستورتون رو در shell وارد کنید کامند رو پیدا نمیکنه، چون برای اینکه بتونید shell configuration government رو آپدیت کنید تا alias ها یا سایر کانفیگ ها قابل استفاده بشن، باید دستور زیر رو وارد کنید:
# syntax :
# source <.bashrc dir>
source ~/.bashrc
#linux #shell
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡5🔥4
تا حالا اسم فریمورک Gatsby به گوشتون خورده؟ 🤔
در واقع Gatsby یک فریمورک منبع باز برای توسعه وبسایتهای استاتیکه که بر پایه React و GraphQL ساخته شده. این ابزار برای ساخت سایت هایی با صفحه های استاتیک، به خاطر سرعت لود بالاش فوق العادست.
برخی از ویژگی های Gatsby⬇️
🔵 پشتیبانی از Gatsby :GraphQL از GraphQL برای مدیریت دادهها استفاده میکنه که به دولوپرا این اجازه رو میده، تا دادهها رو به طور مستقیم از منابع مختلف (مانند CMS ها، فایلهای Markdown، API ها و غیره) فراخوانی کنن.
🔵 پشتیبانی از پلاگینها: Gatsby دارای اکوسیستم وسیعی از پلاگینهاست که میتونن برای افزودن قابلیتهای مختلف مانند SEO، تصاویر بهینهسازی شده، آنالیتیکس و موارد دیگر استفاده بشن.
🔵 مستندات قوی و جامعه فعال: Gatsby دارای مستندات جامع و کامیونیتی فعاله که به دولوپرا کمک میکنه، تا به سرعت یاد بگیرند و مشکلات خودشون رو حل کنن.
🔵 پشتیبانی از Gatsby :PWA به دولوپرا این امکان رو میده تا به راحتی وبسایتهای خودشون رو به PWA تبدیل کنن، که باعث افزایش قابلیتهای آفلاین و تجربه کاربری بهتر میشه.
🔵 بهینهسازی عملکرد: Gatsby به طور پیشفرض تکنیکهای مختلف بهینهسازی عملکرد، از جمله تقسیم کد (Code Splitting)، فشردهسازی تصویر (Image Optimization) و لود تنبل (Lazy Loading) رو پیادهسازی میکنه.
به طور خلاصه، Gatsby یک فریمورک قوی و منعطف برای توسعه وبسایتهای سریع، امن، و بهینه هست که با استفاده از React و GraphQL، تجربه دولوپرا و کاربران رو بهبود میبخشه. برای اطلاعات بیشتر میتونید به داکیومنت این فریمورک مراجعه کنید.
Document🌐
#gatsby #react
@CodeModule
در واقع Gatsby یک فریمورک منبع باز برای توسعه وبسایتهای استاتیکه که بر پایه React و GraphQL ساخته شده. این ابزار برای ساخت سایت هایی با صفحه های استاتیک، به خاطر سرعت لود بالاش فوق العادست.
برخی از ویژگی های Gatsby
به طور خلاصه، Gatsby یک فریمورک قوی و منعطف برای توسعه وبسایتهای سریع، امن، و بهینه هست که با استفاده از React و GraphQL، تجربه دولوپرا و کاربران رو بهبود میبخشه. برای اطلاعات بیشتر میتونید به داکیومنت این فریمورک مراجعه کنید.
Document
#gatsby #react
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡6🔥4
خروجی کد بالا چیه؟ 🤔
Anonymous Quiz
16%
Null
34%
Undefined
20%
1
14%
Error
16%
نمیدونم، رو آیکون لامپ کلیک میکنم تا متوجه بشم💡
🔥11⚡4❤🔥2
ویدیو مد نظرتو با هوش مصنوعی ترجمه کن! 😎
توی این پست میخوام با ابزاری به اسم synclabs آشناتون کنم که به شما اجازه میده، تا هر ویدیو ای که دوست داشتید رو از هر جایی (یوتیوب، مقالات، وبلاگ ها و ...) رو به هر زبانی که میخواید ترجمه کنید.
دیگه نیاز نیست بخاطر بلد نبودن زبان های خارجه، منابعتون رو محدود کنید🏖️
🔵 Website
#ai #tools
@CodeModule
توی این پست میخوام با ابزاری به اسم synclabs آشناتون کنم که به شما اجازه میده، تا هر ویدیو ای که دوست داشتید رو از هر جایی (یوتیوب، مقالات، وبلاگ ها و ...) رو به هر زبانی که میخواید ترجمه کنید.
دیگه نیاز نیست بخاطر بلد نبودن زبان های خارجه، منابعتون رو محدود کنید
#ai #tools
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👌3
الگو طراحی سازنده چیه؟ 🧐
الگو طراحی سازنده یا به عبارت دیگه Builder Design pattern یک الگو Creational و همچنین جزو 23 الگو مهم GoF هست.
به صورت کلی یک الگو طراحی نرم افزاره که برای ساخت اشیاء پیچیده به صورت گام به گام استفاده میشه. همین امر باعثه ترویج سازماندهی بهتر کد، بهبود خوانایی و افزایش انعطاف پذیری در ساخت شئ میشه.
بیاید یک مثال بزنیم!
فکر کنید قرار یک کلاس House بسازیم که این کلاس، یک شبیه ساز از فرایند ساخت خونه هست و قراره در بیشتر موارد ازش استفاده کنیم.
به صورت بیسیک و پایه باید خونه چهاردیوار، یک دَر، یک جفت پنجره و یک سقف داشته باشه. اما اگه یکی مثلا بخواد برای خونه خودش حیاط خلوت، بالکن یا یک طبقه جدید اضافه کنه چی؟
احتملا ساده ترین راه حل گسترش کلاس با پارامتر های زیاده، مثلا :
اما در بیشتر موارد پارامتر ها استفاده نمیشن و هر زمان از کلاس House استفاده کنیم کد رو کثیف میکنه.
اینجاست که الگو Builder به کمکمون میاد!
الگو بیلدر میگه فراخوانی متد هارو از constructor به متد build منتقل کنیم، به این صورت :
اینجوری دیگ لازم نیست از پارامتر های زیادی
استفاده کنیم. برای هر خونه متد هارو صدا میزنیم و در آخر با صدا زدن متد Build، خونه ساخته میشه
چه زمانی از این الگو استفاده کنیم؟
🔢 ساخت یک شی پیچیده با تعداد پارامتر های بالا.
🔢 هر زمان نیاز به ساخت یک شئ به صورت گام به گام داشتیم.
چه زمانی از این الگو استفاده نکنیم؟
🔵 برای اشیایی با تنها چند پارامتر و فرایند ساخت ساده، استفاده از الگو سازنده توصیه نمیشه.
🔵 اگه برای شما سرعت در اولویت قرار داره، مراحل اضافی مثل (فراخوانی متد ها) میتونه بر عملکرد تاثیر بزاره و در صورت وجود پترن یا کد بهتر، باید از اون استفاده کنیم.
🔵 اگه کلاس Builder با constructor ارتباط داشته باشه، میتونه انعطاف پذیری و نگهداری کد رو کاهش بده که برای نگهداری بهتر از loser coupling استفاد میکنیم.
به عنوان مثال در جاوا اسکریپت میشه به این شکل این الگو رو پیاده سازی کرد.
به صورت کلی استفاده از الگو سازنده بستگی به شرایط پروژه داره، و ممکنه در یک پروژه حتی چندین بار ازش استفاده بشه. برای اطلاعات و مثال های بیشتر، میتونید این مقاله رو مطالعه کنید.
#design_pattern #builder
@CodeModule
الگو طراحی سازنده یا به عبارت دیگه Builder Design pattern یک الگو Creational و همچنین جزو 23 الگو مهم GoF هست.
به صورت کلی یک الگو طراحی نرم افزاره که برای ساخت اشیاء پیچیده به صورت گام به گام استفاده میشه. همین امر باعثه ترویج سازماندهی بهتر کد، بهبود خوانایی و افزایش انعطاف پذیری در ساخت شئ میشه.
بیاید یک مثال بزنیم!
فکر کنید قرار یک کلاس House بسازیم که این کلاس، یک شبیه ساز از فرایند ساخت خونه هست و قراره در بیشتر موارد ازش استفاده کنیم.
به صورت بیسیک و پایه باید خونه چهاردیوار، یک دَر، یک جفت پنجره و یک سقف داشته باشه. اما اگه یکی مثلا بخواد برای خونه خودش حیاط خلوت، بالکن یا یک طبقه جدید اضافه کنه چی؟
احتملا ساده ترین راه حل گسترش کلاس با پارامتر های زیاده، مثلا :
new House(4،1،true، false......)
اما در بیشتر موارد پارامتر ها استفاده نمیشن و هر زمان از کلاس House استفاده کنیم کد رو کثیف میکنه.
اینجاست که الگو Builder به کمکمون میاد!
الگو بیلدر میگه فراخوانی متد هارو از constructor به متد build منتقل کنیم، به این صورت :
House builder :
BuildWalls()
BuildDoors()
And....
Build() : House
اینجوری دیگ لازم نیست از پارامتر های زیادی
استفاده کنیم. برای هر خونه متد هارو صدا میزنیم و در آخر با صدا زدن متد Build، خونه ساخته میشه
چه زمانی از این الگو استفاده کنیم؟
چه زمانی از این الگو استفاده نکنیم؟
به عنوان مثال در جاوا اسکریپت میشه به این شکل این الگو رو پیاده سازی کرد.
به صورت کلی استفاده از الگو سازنده بستگی به شرایط پروژه داره، و ممکنه در یک پروژه حتی چندین بار ازش استفاده بشه. برای اطلاعات و مثال های بیشتر، میتونید این مقاله رو مطالعه کنید.
#design_pattern #builder
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6⚡2
پلاگینی برای مرتب سازی کلاسهای tailwind 😎
🔵 اخیرا یک پلاگین کاربردی و جدید به اسم prettier-plugin-tailwindcss ریلیز شده، که ترکیبی از پلاگین های prettier و tailwindCss هست و کار جفتشون رو یکجا انجام میده.
این پلاگین قابلیت اینو داره که فاصله های اضافی رو در کلاس های تیلویند پاک و مرتب کنه و همچنین، اگه دوتا کلاس مشابه به یک المنت داده باشید یکیشون رو اتوماتیک پاک، و هشدار رو از بین میبره. یکی دیگه از ویژگی این پلاگین اینه که اتوماتیک ترتیب کلاس هارو طبق استاندارد ها، میچینه و مرتب میکنه.
این پلاگین خفن میتونه سرعت کلاس دهی شما رو بهبود ببخشه و کدتون رو دائم مرتب و بهینه نگه داره. برای اطلاعات بیشتر و همچنین نحوه نصب، میتونید مقاله زیر و مطالعه کنید🏖️
🔵 Article
#tailwind #plugin #prettier
@CodeModule
این پلاگین قابلیت اینو داره که فاصله های اضافی رو در کلاس های تیلویند پاک و مرتب کنه و همچنین، اگه دوتا کلاس مشابه به یک المنت داده باشید یکیشون رو اتوماتیک پاک، و هشدار رو از بین میبره. یکی دیگه از ویژگی این پلاگین اینه که اتوماتیک ترتیب کلاس هارو طبق استاندارد ها، میچینه و مرتب میکنه.
این پلاگین خفن میتونه سرعت کلاس دهی شما رو بهبود ببخشه و کدتون رو دائم مرتب و بهینه نگه داره. برای اطلاعات بیشتر و همچنین نحوه نصب، میتونید مقاله زیر و مطالعه کنید
#tailwind #plugin #prettier
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15❤🔥2👌2
استایل دادن به لاگهای جاوا اسکریپت در کنسول ✌️
زیبا جلوه دادن یک متن به اثربخشی اون کمک بسیار زیادی میکنه. دولوپرها گاهی اوقات نیاز دارن تا متونی رو صرفاً جهت اطلاع، دیباگ و در موارد کوچکی سرگرمی، در کنسول مرورگر چاپ کنن. تو این پست به این مورد میپردازیم که چطور به خروجی کدهای جاوا اسکریپت در کنسول مرورگر استایل بدیم.
کد زیر رو در نظر بگیرید⬇️
اولین آرگومان ورودی یعنی (%c%s) استایل متن رو مشخص میکنه، دومین آرگومان رنگ رو تنظیم کرده که در کد بالا red (قرمز) تعیین شده. سومین آرگومان بکگراند رو مشخص میکنه و آرگومان های بعدی، به ترتیب سایز نوشته و خود نوشته هستند. اگه این کد رو در کنسول مرورگر اجرا کنید، کلمه CodeModule به رنگ قرمز، با بکگراند زرد و فونت نسبتاً بزرگی چاپ میشه. استایل های دیگه ای هم میتونیم واسه لاگ هامون در نظر بگیریم و ترتیب آرگومان های استایل دهی اصلا مهم نیست.
برای مثال :
با استفاده از این ترفند، میتونید لاگ های کارآمد تر و زیبا تری داشته باشید🔥
#javascript
@CodeModule
زیبا جلوه دادن یک متن به اثربخشی اون کمک بسیار زیادی میکنه. دولوپرها گاهی اوقات نیاز دارن تا متونی رو صرفاً جهت اطلاع، دیباگ و در موارد کوچکی سرگرمی، در کنسول مرورگر چاپ کنن. تو این پست به این مورد میپردازیم که چطور به خروجی کدهای جاوا اسکریپت در کنسول مرورگر استایل بدیم.
کد زیر رو در نظر بگیرید
console.log("%c%s",
"color: red; background: yellow; font-size: 24px;",
″CodeModule!");
اولین آرگومان ورودی یعنی (%c%s) استایل متن رو مشخص میکنه، دومین آرگومان رنگ رو تنظیم کرده که در کد بالا red (قرمز) تعیین شده. سومین آرگومان بکگراند رو مشخص میکنه و آرگومان های بعدی، به ترتیب سایز نوشته و خود نوشته هستند. اگه این کد رو در کنسول مرورگر اجرا کنید، کلمه CodeModule به رنگ قرمز، با بکگراند زرد و فونت نسبتاً بزرگی چاپ میشه. استایل های دیگه ای هم میتونیم واسه لاگ هامون در نظر بگیریم و ترتیب آرگومان های استایل دهی اصلا مهم نیست.
برای مثال :
let StylesArray=[
'background-color: #f0c807',
'border: 1ps solid red',
'padding: 10px 20px',
'font-size: 10px',
].join(';')
console.log('%c CodeModule',StylesArray)
با استفاده از این ترفند، میتونید لاگ های کارآمد تر و زیبا تری داشته باشید
#javascript
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7😁1👌1
چرا لینوکس رو به ویندوز ترجیح بدیم؟🖼️
ویندوز و لینوکس سیستم عامل های محبوب دنیای تکنولوژی هستن که هر کدوم، کاربرد ها و مزایای خودشون رو دارن. سیستم عامل لینوکس برای قشر برنامه نویس کاربرد زیاد و مهمی داره، اما سیستم عامل ویندوز بیشتر برای قشر کاربران با کاربری روزمره مورد استفاده قرار میگیره.
1️⃣ لینوکس پایدار و مستحکمه
در واقع بیشتر کاربرای لینوکس، هيچوقت يک توقف و خرابی در سرور رو نميبينن و اين ویژگی برای كاربرا، با ارزش میتونه باشه. مخصوصا برای کسب و کارها که از کار افتادگی سرور میتونه عواقب فاجعه بار براشون داشته باشه.
👌 لینوکس خيلی بهتر از ويندوز ميتونه تعداد زیادی از پردازش هارو در يک لحظه اجرا كنه.
2️⃣ لینوکس امنه
لینوکس ذاتا امن تر از ویندوزه. چه روی سرور و چه روی دسکتاپ، و به همین دليله که بر اساس يونيكس ساخته شده. در لینوکس فقط مدیر یا کاربر root، دارای اختیارات مدیریتیه، و کمتر به کاربرای معمولی و برنامه های کاربردی اجازه دسترسی به کرنل داده میشه و همین باعث ميشه همه چیز ماژولار و حفاظت شده باشه.
🟢 البته لینوکس کمتر توسط ویروس ها و هكرها مورد حمله قرار میگيره و آسیب پذیری تو سیستم عامل لينوكس، زودتر و سريعتر پیدا و تصحيح میشه.
3️⃣ لینوکس رایگانه
به دلیل محدودیت هایی که تو کشور ما وجود داره، اکثر کاربرای ایرانی از نسخه های کرک شده ویندوز استفاده میکنن. در حقیقت اگر بخواید نسخه اصلی ویندوز رو تهیه کنید، باید هزینه زیادی متقبل بشید که با شرایط اقتصادی امروز معقول نیست. اما با شرایط مساوی، این برتری با لینوکسه که توزیع های مختلفش به صورت رایگان در دسترس کاربران و در هر جایی از دنیا قرار میگیره.
4️⃣ لینوکس اوپن سورسه
یکی دیگه از مزایای لینوکس Open Source بودنشه. این مسئله مزیت زیادی به خصوص برای افرادی که به برنامه نویسی آشنا هستن داره. چرا که اونها با دسترسی به کدهای لینوکس، میتونن تغییرات مورد نیاز و دلخواهی رو روش اعمال کنن. در واقع هر برنامه نویسی میتونه مطابق با نیازهاش سیستم عامل لینوکسشو شخصی سازی کنه و اونو تغییر بده. در حالی که کدهای سیستم عامل ویندوز غیر قابل مشاهده و استفادست، و امکان توسعه و تغییرش فقط توسط خود مایکروسافت امکان پذیره.
5️⃣ لینوکس هر نوع فایلی رو اجرا میکنه
لینوکس قابلیت اجرای هر فایلی رو داره، در واقع لینوکس سازگاری بیشتری با فرمت های مختلف فایل ها داره. ویندوز ممکنه فایل هایی که فرمت ناشناخته دارن رو پشتیبانی و اجرا نکنه. این مشکل توی لینوکس اصلا وجود نداره، چرا که لینوکس بر خلاف ویندوز برای شناخت فایل ها به پسوندشون محدود نیست.
این سیستم عامل محبوب و دوست داشتنی مزایای دیگه ای هم داره، اما ترجیح دادیم به مهم ترین و حیاتی ترین تفاوت هاشون بپردازیم.امیدوارم لذت برده باشید🔥
#linux #os #windows #different
@CodeModule
ویندوز و لینوکس سیستم عامل های محبوب دنیای تکنولوژی هستن که هر کدوم، کاربرد ها و مزایای خودشون رو دارن. سیستم عامل لینوکس برای قشر برنامه نویس کاربرد زیاد و مهمی داره، اما سیستم عامل ویندوز بیشتر برای قشر کاربران با کاربری روزمره مورد استفاده قرار میگیره.
در واقع بیشتر کاربرای لینوکس، هيچوقت يک توقف و خرابی در سرور رو نميبينن و اين ویژگی برای كاربرا، با ارزش میتونه باشه. مخصوصا برای کسب و کارها که از کار افتادگی سرور میتونه عواقب فاجعه بار براشون داشته باشه.
لینوکس ذاتا امن تر از ویندوزه. چه روی سرور و چه روی دسکتاپ، و به همین دليله که بر اساس يونيكس ساخته شده. در لینوکس فقط مدیر یا کاربر root، دارای اختیارات مدیریتیه، و کمتر به کاربرای معمولی و برنامه های کاربردی اجازه دسترسی به کرنل داده میشه و همین باعث ميشه همه چیز ماژولار و حفاظت شده باشه.
به دلیل محدودیت هایی که تو کشور ما وجود داره، اکثر کاربرای ایرانی از نسخه های کرک شده ویندوز استفاده میکنن. در حقیقت اگر بخواید نسخه اصلی ویندوز رو تهیه کنید، باید هزینه زیادی متقبل بشید که با شرایط اقتصادی امروز معقول نیست. اما با شرایط مساوی، این برتری با لینوکسه که توزیع های مختلفش به صورت رایگان در دسترس کاربران و در هر جایی از دنیا قرار میگیره.
یکی دیگه از مزایای لینوکس Open Source بودنشه. این مسئله مزیت زیادی به خصوص برای افرادی که به برنامه نویسی آشنا هستن داره. چرا که اونها با دسترسی به کدهای لینوکس، میتونن تغییرات مورد نیاز و دلخواهی رو روش اعمال کنن. در واقع هر برنامه نویسی میتونه مطابق با نیازهاش سیستم عامل لینوکسشو شخصی سازی کنه و اونو تغییر بده. در حالی که کدهای سیستم عامل ویندوز غیر قابل مشاهده و استفادست، و امکان توسعه و تغییرش فقط توسط خود مایکروسافت امکان پذیره.
لینوکس قابلیت اجرای هر فایلی رو داره، در واقع لینوکس سازگاری بیشتری با فرمت های مختلف فایل ها داره. ویندوز ممکنه فایل هایی که فرمت ناشناخته دارن رو پشتیبانی و اجرا نکنه. این مشکل توی لینوکس اصلا وجود نداره، چرا که لینوکس بر خلاف ویندوز برای شناخت فایل ها به پسوندشون محدود نیست.
این سیستم عامل محبوب و دوست داشتنی مزایای دیگه ای هم داره، اما ترجیح دادیم به مهم ترین و حیاتی ترین تفاوت هاشون بپردازیم.امیدوارم لذت برده باشید
#linux #os #windows #different
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡10🔥4
Good Night 🌚 ✨
به کسانی که بهتون هِیت میدن و حسادت میکنن احترام بذارید، چرا که اون ها از صمیم قلب معتقدند؛ شما بهتر از خودشون هستید.
@CodeModule
به کسانی که بهتون هِیت میدن و حسادت میکنن احترام بذارید، چرا که اون ها از صمیم قلب معتقدند؛ شما بهتر از خودشون هستید.
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥18👌5🔥4
مفهوم ماژول child_process در Node.js🤟
قبل از اینکه بدونیم child_process چیه، باید با مفهوم process آشنا بشیم. به صورت کلی process یا فرایند، واحد اساسی سیستم عاملها برای زمانبندی منابع هستن.
درواقع فرایند های موجود در یک کامپیوتر،
همه برنامه هایی هستن که درحال اجرا و تعامل با پردازندن.
البته باید به این نکته توجه داشته باشیم :
1️⃣ هر فرایند در ابتدا از یک رشته اصلی شروع میشه و ممکنه از یک یا چند رشته دیگر تشکیل بشه.
2️⃣ یک فرایند میتونه از فرایند های دیگه ای به نام فرایند فرعی، نمونه سازی کنه.
فرایند فرعی یا Sub process چیه ؟
فرایندی که توسط فرایند والد نمونه سازی میشه و به عنوان یک فرایند شناخته میشه، همچنین درست مثل یک فرایند از یک یا چند رشته تشکیل میشه.
فرایند فرعی از منابعی که توسط فرایند والد به اشتراک گذشته میشه استفاده میکنه.
فرایند فرعی به عنوان یک نمونه از فرایند والد ساخته میشه تا وظایف مرتبط با فرایند والد رو در خودش جا بده، به این ترتیب وظایف مرتبط با یکدیگر در یک مکان مشخص و مرتبط نگه داشته میشن.
فرایند فرعی در Node.js🔥
در nodejs ما از ماژول child_process برای تعامل با فرایند ها استفاده میکنیم.
فرایند فرزند یا child_process چیه؟
همونطور که گفتم این ماژول توانایی تعامل و تولید فرایند جدید رو به ما میده،
و برای کار با وظایف طولانی مدت و تعامل با سیستم عامل طراحی شده.
🔵 این ماژول شامل متد های متعددی مثل exec fork و spawn هست که هرکدوم به ما برای تعامل با سیستم کمک میکنند، به طور کلی:
🔵 با استفاده از exec میتونیم یک دستور رو در ترمینال خودمون اجرا کنیم.
با استفاده از spawn میتونیم یک فرایند بسازیم و امکان برقراری ارتباط بین ورودی و خروجی و مدیریت کنیم.
متد fork یک فرایند فرزند ایجاد میکنه که از فرایند اصلی یا والد جداست.
به صورت کلی دونستن نحوه مدیریت فرایند های ثانویه درمورد عملیات فشرده CPU یا CPU-intensive، کاربردی و مفیده که با توجه به پروژمون میتونیم با استفاده از exec spawn و fork قابلیت های مختلفی برای کنترل فرایند ها ارائه بدیم.
#child_process #nodejs
@CodeModule
قبل از اینکه بدونیم child_process چیه، باید با مفهوم process آشنا بشیم. به صورت کلی process یا فرایند، واحد اساسی سیستم عاملها برای زمانبندی منابع هستن.
درواقع فرایند های موجود در یک کامپیوتر،
همه برنامه هایی هستن که درحال اجرا و تعامل با پردازندن.
البته باید به این نکته توجه داشته باشیم :
فرایند فرعی یا Sub process چیه ؟
فرایندی که توسط فرایند والد نمونه سازی میشه و به عنوان یک فرایند شناخته میشه، همچنین درست مثل یک فرایند از یک یا چند رشته تشکیل میشه.
فرایند فرعی از منابعی که توسط فرایند والد به اشتراک گذشته میشه استفاده میکنه.
فرایند فرعی به عنوان یک نمونه از فرایند والد ساخته میشه تا وظایف مرتبط با فرایند والد رو در خودش جا بده، به این ترتیب وظایف مرتبط با یکدیگر در یک مکان مشخص و مرتبط نگه داشته میشن.
فرایند فرعی در Node.js
در nodejs ما از ماژول child_process برای تعامل با فرایند ها استفاده میکنیم.
فرایند فرزند یا child_process چیه؟
همونطور که گفتم این ماژول توانایی تعامل و تولید فرایند جدید رو به ما میده،
و برای کار با وظایف طولانی مدت و تعامل با سیستم عامل طراحی شده.
با استفاده از spawn میتونیم یک فرایند بسازیم و امکان برقراری ارتباط بین ورودی و خروجی و مدیریت کنیم.
متد fork یک فرایند فرزند ایجاد میکنه که از فرایند اصلی یا والد جداست.
به صورت کلی دونستن نحوه مدیریت فرایند های ثانویه درمورد عملیات فشرده CPU یا CPU-intensive، کاربردی و مفیده که با توجه به پروژمون میتونیم با استفاده از exec spawn و fork قابلیت های مختلفی برای کنترل فرایند ها ارائه بدیم.
#child_process #nodejs
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👌6
اگه برای تمرین و کدنویسی دنبال ui خاصی میگردید، این طرح فیگما رو به هیچ وجه از دست ندید 💀
(طرح رسپانسیوش هم موجوده)
🔵 Link
#figma
@CodeModule
(طرح رسپانسیوش هم موجوده)
#figma
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12❤🔥3
Please open Telegram to view this post
VIEW IN TELEGRAM
😁13