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
😎با 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
‌‏Node.js vs Golang، کدوم یک بهتر عمل می‌کنه ؟ 🤟 | 👩‍💻

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

Node.js به عنوان Runtime جاوا اسکریپت شناخته میشه و اینجا برای راحتی، ما به عنوان زبان مثالش میزنیم.

‏Node.js به دلیل سرعت، مقیاس‌پذیری و سهولت استفاده، محبوبیت زیادی کسب کرده. Node.js برای طیف گسترده‌ای از برنامه‌ها، از جمله وب‌سایت‌ها، برنامه‌های وب و APIها، ایده‌آل هست.

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

اما Node.js و Golang چه تفاوت هایی با هم دارن؟

🔵کارایی: Golang به طور کلی سریعتر از Node.js هست، به خصوص برای برنامه‌های کاربردی با کارایی بالا.

🔵مقیاس‌پذیری: Node.js و Golang به خوبی مقیاس‌پذیر هستن و میتونید از آنها، برای ساخت برنامه‌هایی با حجم کاربری بالا استفاده کنید.

🔵همزمانی: Golang دارای مدل همزمانی داخلی قدرتمندی هست، که این زبان رو برای برنامه‌های کاربردی با کارایی بالا، که نیاز به مدیریت وظایف متعدد به طور همزمان دارن مناسب‌تر می‌کنه.

🔵مدیریت خطا: Node.js دارای سیستم مدیریت خطای داخلی هست، در حالی که Golang از رویکردی پیچیده‌تر استفاده می‌کنه، که ممکنه برای برخی از دولوپر ها چالش‌برانگیز باشه.

🔵جامعه و منابع: Node.js دارای جامعه کاربری بزرگتر و منابع بیشتری نسبت به Golang هست (فرضا ایران).

🔵یادگیری: اگه شما از قبل با جاوا اسکریپت کد زده باشید، Node.js زبان آسون تری برای یادگیری خواهد بود. درحالی که Golang منحصر به فردتره و ممکنه برای مبتدیان منحنی یادگیری شیب‌تری داشته باشه.


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

- Article
- Article
- Article

#nodejs #golang
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
7🔥3
Amirali V88:
یه سوال ذهن منو درگیر کرده که تو این گروه حدودا صد نفریم و تو یک روز دو کا پیام اومده اخه دو کااا پیام چطورییییی
نه چطوریییی


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

سوال یا ابهامی باقی نمیمونه 💀

💬@CodeModuleGap
Please open Telegram to view this post
VIEW IN TELEGRAM
3🔥3
⌨️ 5 سرویس API کارآمد و رایگان

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

1️⃣Random User Generator

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

2️⃣Cloud Convert

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

3️⃣Open Weather Map

یک سرویس برای وضعیت آب و هوا و پیش‌بینی اون، که از 40 هزار پایگاه آب و هوا اطلاعات رو جمع آوری میکنه. 

4️⃣Free Music Archive

یک سرویس خیلی کاربردی برای دریافت اطلاعاتی درمورد هنرمندان، آلبوم‌ها، تِرَک ها و ژانرهای مختلف.

5️⃣The Movie Database

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


#api #free
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
11❤‍🔥5🔥3
✌️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
7🔥3
با این تکنیک کدت رو انعطاف پذیر کن 🦦

‏Dependency Injection (DI) یک تکنیک و یک دیزاین پترن مهم و اساسی در برنامه نویسی شی گرا (OOP) هست، و به مدیریت وابستگی بین اجزای مختلف نرم افزار کمک می کنه. این پترن یک سری مزایا و معایب به همراه داره و یک سری مشکلات رو حل میکنه.

به عنوان مثال اگر ما کدی با کوپلینگ محکم داشته باشیم، این شرایط به وجود میاد:

🔵تغییر: تغییر یک قسمت از کد میتونه باعث خرابی سیستم بشه.

🔵آزمایش: تست اجزای جدا شده سخت هست.

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

اما چجوری تزریق وابستگی این مشکل رو حل میکنه؟ 🤔

- جداسازی: DI ساخت و استفاده از وابستگی ها رو جدا میکنه و باعث تقویت loose coupling میشه.

- مدیریت خارجی: یک چارچوب یا کانتینر خارجی ساخت وابستگی و چرخه حیات رو مدیریت میکنه و در صورت نیاز اون هارو تزریق میکنه.

- رابط ها: اجزا از طریق رابط ها با هم تعامل دارن و تعویض پیاده سازی ها رو آسان میکنه.

برخی از مزایا قابل توجه DI ⬇️

‏1. Modularization: کامپوننت ها مستقل از نمونه سازی وابستگی های خود هستن.

2. سهولت تعویض: به راحتی میشه وابستگی های واقعی رو با ماک ه، برای تست، جایگزین کرد.

3. تست پذیری: تست رو با جداسازی اجزا افزایش میده.

4. قابلیت نگهداری: اتصال محکم رو کاهش میده، استفاده مجدد رو ترویج میکنه، تعمیر و نگهداری رو آسون تر می کنه.

روش های تزریق وابستگی

🔢 Constructor Injection: وابستگی ها از Constructor عبور میکنن، و اینکار وابستگی های واضح و به خوبی تعریف شده رو مشخص میکنه.

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

#design_pattern
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
5🔥3
چی بگم والا 🗽💧

#fun
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
😁15
PGTWEET | توییت برنامه نویسی
تجربه برنامه نویسی پایتون: من برنامه نویسی ابتدا زمانی که ۱۴ سالم بود شروع کردم و از پایتون شروع کردم و بعد از این همه مدت میتونم بگم تازه حدود یک الی دو ساله که خیلی توش به نتیجه و پیشرفت چشمگیری رسیدم و دوست دارم اشتباهاتی که توی این مدت یادگیری کردم رو…
این مدل پست‌ها ایده جالبی از آقا آراد بود، که پیشنهاد میکنم حتما مطالعش کنید.

احتمالا خودمون هم اشتراک گذاری اینطور پست هارو شروع کنیم و از تجربیات مخاطبین چنل، برای پیشرفت و روشن کردن مسیر درست برای شما عزیزان استفاده کنیم 🔥
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥13