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
🔗 منظور از HTTP چیست؟

در اصل HTTP یک پروتکل است که وظیفه برقراری ارتباط میان Server و Clinet را در یک شبکه کامپیوتری برعهده دارد، به طوری که اطلاعات وب از طریق http به کامپیوتر بازدید کننده ارسال می شود

🔗 منظور از HTTPS چیست؟

حرف S در https به معنی امنیت است.
در https نشان از  امنیت است، که هم کامپیوتر بازدید کننده و هم وب سایت دارای کد محرمانه هستند که به آنها اجازه می دهد تا اطلاعتشان بصورت رمز گذاری شده بین یکدیگر رد و بدل شود، که برای فعال سازی ان باید ssl داشته باشیم.

تفاوت HTTP و HTTPS در چیست?

فرق بین http و https در امنیت این پروتکل است. در واقع ایراد HTTP عدم رمزگذاری اطلاعات است. این بدان معنی است که اگر فردی در میانه راه تبادل اطلاعات، بین کاربر و وب سایت قرار گیرد (مانند سرویس دهنده اینترنت) قادر است اطلاعات رد و بدل شده را مشاهده کند. ولی این اتفاق در https به دلیل امنیت آن نمی افتد.

میشه بازم دلیل بیاری که چرا HTTPS بهتره ؟

🔵 امنیت
🟢 سئو
🔴 معتبر تر برای گوگل
🟡 اینماد دو ستاره برای کسب و کار های ایرانی


#protocol #web #different
@CodeModule
تفاوت کتابخانه (library) و فریم‌ورک (framework) چیه؟ 🧐

یکی از سوالای اساسی توی مصاحبه ها اینه که چه تفاوتی بین کتابخانه و فریم ورک هست؟

🔵 تفاوت اصلی بین کتابخانه و فریم‌ورک در “وارونگی کنترل (inversion of Control)” هست. وقتی که شما یک method رو از کتابخانه فراخوانی می‌کنید، شمایید که بر رویکرد اون کنترل دارید. اما در فریم‌ورک این‌مسئله برعکسه.

فریم‌ورکه که کدهای شما و فراخوانی می‌کنه.

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

🔵 در سمت دیگه، کتابخانه هیچ چیزی رو برای شروع در اختیار شما نمیزاره. در مقابلِ فریم‌ورک، ویژگی‌های محدودتری در کتابخانه وجود داره. همچنین برای استفاده گسترده‌تر از اونا باید از ویژگی‌های ثالث (third-party) دیگر استفاده کنید.

🔵 فریم‌ورک، تمامی جریان (flow) رو در کنترل خود داره و نقاطی از پیش تعریف‌شده وجود داره که شما باید، با کد‌های خودتون اونا رو تکمیل کنید. همچنین فریم‌ورک معمولاً پیچیده‌تر هستن.

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

در نهایت میشه به این نتیجه رسید که کتابخانه، تو توسعه ویژگی‌های اپلیکیشن به ما کمک می‌کنه و فریم‌ورک اسکلت اون رو تشکیل میده. در این‌میان API، اتصال دهنده‌ای برای استفاده هر‌دوی اونا در کنار هم است😉


#framework #library #different
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
آشنایی با Kubernetes و تفاوت آن با Docker 🐚

در واقع Kubernetes نوعی سیستم هست که وظیفه هماهنگ کردن برنامه‌های کاربردی و در حال اجرا روی کانتینر‌های مجازی بر عهده داره. Kubernetes اغلب “K8s”  نامیده میشه. K8s به‌منظور استقرار و مدیریت برنامه‌های ابری، از طریق زیرساخت‌ها و پلتفرم‌های ابر عمومی و بصورت خودکار، استفاده میشه.


⚡️وظایف kubernetes چیه ؟

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


☯️ ویژگی‌های قابل توجه Kubernetes

◀️کشف سرویس و بالانس کردن بار

◀️سازماندهی Storage و فضای ذخیره‌سازی

◀️جمع‌کردن و گسترش دوباره داده‌ها

◀️بسته‌بندی خودکار

◀️ویژگی Self-healing

◀️مدیریت و پیکربندی مخفی


تفاوت Docker با Kubernetes چیه ؟

همونطور که توی پست های قبل توضیح دادیم، docker یک سکو و پلتفرم نرم‌افزاریه که به‌منظور ساخت و ایجاد برنامه‌های کاربردی کانتینری استفاده میشه. درحالی‌ که Kubernetes یا K8s وظیفه خودکار کردن ابزارهای مختلف و از جمله فرآیند اجرای برنامه‌های کانتینری و cloud native application ها رو که با استفاده از Docker ساخته شدن رو بر عهده داره.

😉بسیاری از سازمان‌ها و شرکت‌ها از هر دو سیستم یعنی Docker و Kubernetes به‌صورت همزمان استفاده می‌کنن.

در نهایت Kubernetes تاریخچه‌ای ۱۵ ساله داره و به لطف این پشتوانه و جامعه بزرگ توسعه‌دهنده هایی که اونو بهینه می‌کنن، تونسته که به یکی از موفق‌ترین نمونه‌ها در دنیا متن‌باز تبدیل بشه و انتظار میره در آینده هم شاهد افزایش و پیشرفت این ساز و کار کارآمد باشیم

برای یادگیری kubernetes میتونید به داکیومنتش مراجعه کنید.😎

Document 🌕

#kubernetes #containers #different #docker
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
😉همه چیز راجب Markdown و Rich Text

تو این پست قراره به بررسی و مقایسه تخصصی Markdown و Rich Text بپردازیم.

‼️مارک داون (Markdown) چیه؟

در واقع Markdown یک زبان ساده برای نگارش متنه که به شما این امکان و میده، محتوای خودتونو با استفاده از نشانگرهای ساده مثل # برای تایتل ها و * برای تاکید متن، و ... فرمت‌بندی کنید. همچنین فایل های Markdown با فرمت .md شناخته میشن.

مزایای استفاده از Markdown :

🔵سادگی و قابل فهم بودن برای همه

🔵قابلیت تبدیل به HTML و دیگر فرمت‌ها

🔵امکان استفاده از ویرایشگرهای متنی ساده

‼️ریچ تکست (Rich Text) چیه ؟

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

مزایای استفاده از Rich Text :

🔵امکان افزودن تصاویر، جداول و فرمت‌بندی پیچیده

🔵قابلیت نمایش زیبا و حرفه‌ای

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

🔵 تفاوت بین Markdown و Rich Text چیه ؟

تا اینجا فهمیدیم که Markdown به عنوان یک زبان ساده و قابل خواندن شناخته میشه، در حالی که Rich Text امکانات پیچیده‌تر و ظاهر زیباتر رو فراهم میکنه. در صورتی که به سادگی و سرعت نوشتن نیاز دارید، Markdown مناسبه، اما اگر به فرمت‌بندی پیچیده و ظاهر جذاب نیاز دارید، Rich Text بهترین گزینست.

تفاوت های دیگه ای که وجود داره، richText محدودیت هایی توی استفاده داره که Markdown نداره و همچنین درک و استفاده Markdown ساده تر از Rich Text هست، ولی در سمت دیگه Rich Text امکانات بیشتر و بهتری در اختیارتون قرار میده.

با درک تفاوت‌ها بین Markdown و Rich Text، میتونید تصمیم بهتری برای نگارش و فرمت‌بندی محتواهاتون بگیرید. انتخاب بین سادگی و پیچیدگی، به نوع محتوا و نیازتون بستگی داره.


#markdown #richText #different
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
چرا لینوکس رو به ویندوز ترجیح بدیم؟🖼️

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


1️⃣لینوکس پایدار و مستحکمه

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

👌لینوکس خيلی بهتر از ويندوز ميتونه تعداد زیادی از پردازش هارو در يک لحظه اجرا كنه.


2️⃣لینوکس امنه

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

🟢البته لینوکس کمتر توسط ویروس ها و هكرها مورد حمله قرار میگيره و آسیب پذیری تو سیستم عامل لينوكس، زودتر و سريعتر پیدا و تصحيح میشه.

3️⃣لینوکس رایگانه

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

4️⃣ لینوکس اوپن سورسه

یکی دیگه از مزایای لینوکس Open Source بودنشه. این مسئله مزیت زیادی به خصوص برای افرادی که به برنامه نویسی آشنا هستن داره. چرا که اونها با دسترسی به کدهای لینوکس، میتونن تغییرات مورد نیاز و دلخواهی رو روش اعمال کنن. در واقع هر برنامه نویسی میتونه مطابق با نیازهاش سیستم عامل لینوکسشو شخصی سازی کنه و اونو تغییر بده. در حالی که کدهای سیستم عامل ویندوز غیر قابل مشاهده و استفادست، و امکان توسعه و تغییرش فقط توسط خود مایکروسافت امکان پذیره.

5️⃣لینوکس هر نوع فایلی رو اجرا می‌کنه

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

این سیستم عامل محبوب و دوست داشتنی مزایای دیگه ای هم داره، اما ترجیح دادیم به مهم ترین و حیاتی ترین تفاوت هاشون بپردازیم.امیدوارم لذت برده باشید🔥


#linux #os #windows #different
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
🥶 تفاوت تایپ‌های void و never در تایپ‌اسکریپت

تایپ های void و never، شاید در ظاهر شباهت‌های زیادی به هم داشته باشن، اما کاربرد کاملاً متفاوتی دارن که در این پست با هم بررسیشون می‌کنیم 😎

🔵 تایپ void چیه؟

اگه تابعی داریم که هیچ چیزی ریترن نمی‌کنه، برای نوع خروجی اون از تایپ void استفاده می‌کنیم. به عبارت دیگه، وقتی تابعی رو می‌بینیم که خروجی اون void هست، به این معنیه که اون تابع چیزی رو ریترن نمی‌کنه. مثل کد زیر :

function logMessage(message: string): void {
       console.log(message);
     }

    
🔵 تایپ never چیه؟

بعضی توابع ممکنه اصلاً به مرحلهٔ ریترن کردن هم نرسن. برای مثال به یک Error برخورد کنید و اصلا چیزی ریترن نشه. مثل کد زیر :

function throwError(message: string): never {
       throw new Error(message);
     }


⚡️تفاوت بین void و never چیه ؟

🔵با توجه به نتایجی که از تعاریف تایپ های void و never گرفتیم، تایپ void یک نوع بازگشتیه که به عنوان "هیچ چیز" در نظر گرفته میشه و عملکردی رو نشون میده، که هیچ مقداری رو بر نمیگردونه. این یعنی تابع یا متودی که بازگشتی از نوع void داره، فقط یک process خاصی رو انجام میده.

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

در مجموع، تفاوت اصلی بین این دو تایپ اینه که void عملکردی رو نشون میده که هیچ مقداری رو بر نمیگردونه، در حالی که never توصیف یک عملکردیه که هیچگاه به پایان نمیرسه ✈️

#typescript #type #different
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
✌️JsDoc چیه و چه تفاوتی با Ts داره؟

JSDoc یک سیستم Documentation برای جاوا اسکریپت هست که روی استانداردتر و درست‌تر نوشتن کدهای جاوا اسکریپت، براساس یکسری از پترن ها تمرکز داره. این سیستم براساس کامنت‌هایی که در خود سینتکس وجود داره کار میکنه.

🔵در پست های قبلی درباره اینکه TypeScript چیه صحبت کردیم، پس اینجا خیلی توضیح خاصی بابتش نمیدم تا به اصل مطلب برسیم.

برتری های ‏JSDoc نسبت به TypeScript

◀️انعطاف‌پذیری و سازگاری

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

◀️حاشیه نویسی یا Code Annotation

‏JSDoc تنها یک ابزار Type Checking نیست بلکه میتونه، برای تولید مستندات و تشریح چگونگی کارکرد بخش‌های مختلف کدهاتون ازش استفاده کنید. تمام این موارد باعث میشه تا فرایند درک و نگهداری از کدها ساده‌تر بشه.

◀️حذف زمان کامپایل

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

برتری های TypeScript نسبت به JSDoc

◀️سیستم Static Type قدرتمندتر

 تایپ اسکریپت یک مدل قدرتمند و جامع، از تایپ‌های مختلف رو ارائه میکنه و همچنین امکانات کاملی برای Error Handling رو تحویل ما میده. برخلاف JSDoc که سیستم تایپینگ اون در داخل کد جاوا اسکریپت تعریف میشه، تایپ اسکریپت به صورت مستقل عمل می‌کنه و از یک سیستم منحصر به فرد استفاده می‌کنه.

◀️وجود Type Interface

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

◀️کامیونیتی و سازگارپذیری

تایپ اسکریپت خودش رو به سرعت با نسخه‌های جدید جاوا اسکریپت تطبیق میده و همچنین، کامیونیتی قدرتمندتری به نسبت JSDoc در اختیار داره. این موضوع باعث میشه که نسبت به JSDoc کمی دلسرد بشیم.


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

Document 🌐

#jsdoc #typescript #different
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
با Preact و تفاوت هاش با React آشنا بشید

🟣‏Preact یک کتابخانه جاوا اسکریپتیه که به عنوان یک جایگزین سریع و سبک برای React طراحی شده. این کتابخانه با React سازگاری داره، بنابراین دولوپرا میتونن یک MVP (محصول حداقلی قابل قبول) رو به یک برنامه کامل React توسعه بدن.

🚀‏Preact یک Virtual DOM کوچیک داره که فقط ۳ کیلوبایت حجمشه، که این موضوع باعث انتقال سریع‌تر از سرور به کلاینت و بهینه‌سازی loadtime میشه.

‏Preact همچنین یک compatibility layer با React فراهم میکنه و به عنوان یک جایگزین مناسب عمل میکنه. این باعث میشه که دولوپرا به راحتی بتونن اونو تو برنامه‌هاشون بگنجونن و از همون کد و کتابخانه‌ها استفاده کنن، اما با عملکرد بهتر.

ویژگی های کلیدی و تفاوت های React و Preact

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

برای تعیین اینکه کدومشون گزینه بهتریه، باید در نظر بگیرید که آیا عملکرد Preact کافیه یا اگر به ویژگی‌های بیشتری که React ارائه میده نیاز دارید. عوامل دیگه ای مثل complexity، اندازه و عملکرد پروژه هم میتونه در این تصمیم تاثیرگذار باشن.

🔢Complexity: اگر پروژه شما به API پیچیده‌تر و بیشتری نیاز داره، React ممکنه انتخاب بهتری باشه. Preact دارای API ساده‌تریه و ممکنه تمام ویژگی‌های پیشرفته React رو نداشته باشه.

🔢Size‏ : Preact دارای باندل سایز کوچیکتری نسبت به React هست که این می‌تونه، برای بهینه‌سازی loadtime برنامه و کاهش استفاده از پهنای باند مفید باشه. اگر سایز یکی از موارد کلیدی پروژه شماست، Preact ممکنه انتخاب بهتری باشه.

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

#preact #react #different
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM