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
نوروز سال ۲۵۸۴ شاهنشاهی رو بهتون تبریک میگم دوستان🔥🥳

امیدوارم تموم قله های موفقیت رو فتح کنید و امسال، سال شما باشه💙


@CodeModule
❤‍🔥48😁4👌2💔2
بخدا یه ساله کد نزدم دوستان.

#fun
@CodeModule
😁44
معماری میکرو فرانت‌اند چیه؟! 🪡

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

مزایای استفاده از میکروفرانت‌اند 👇

مستقل بودن تیم‌ها و توسعه سریعتر

هر تیم می‌تونه روی یک بخش خاص از پروژه کار کنه، بدون اینکه روی سایر بخش‌ها تأثیر بذاره. این موضوع روند توسعه رو سریع‌تر و مدیریت رو ساده‌تر می‌کنه.

چند تکنولوژی در یک پروژه

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

بروزرسانی آسون و بدون تأثیر روی کل پروژه

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

بهینه‌سازی عملکرد

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

مقیاس‌پذیری بهتر

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


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

#microfrontend
@CodeModule
🔥12❤‍🔥21
‏RFC 4122 چیست؟ 🎲

‏RFC 4122‏ یک استاندارد فنی هست که توسط سازمان IETF‏ (Internet Engineering Task Force) تعریف شده، و برای تولید UUID هست که به شناسه‌های GUID هم شناخته میشه. این استاندارد تعریف میکنه که UUID باید یک مقدار ۱۲۸ بیتی باشه که به‌صورت یونیک تولید میشه. هدف اصلی این شناسه‌ها اینه که بتونن بدون نیاز به یک مرجع مرکزی، آیدی های یونیک تولید کنن.

همون‌طور که گفتیم یکی از دلایل اصلی استفاده از UUIDها اینه که نیازی به یک مرجع متمرکز(Central Authority) برای تولیدشون وجود نداره. یعنی میتونن در هر سیستمی، بدون نگرانی از تداخل، آیدی های جدید تولید کرد. این ویژگی باعث میشه که UUIDها برای سیستم‌های توزیع‌شده و محیط‌هایی که نیاز به id به فرد دارن، ایده‌آل باشن. UUIDها میتونن به صورت خودکار و با سرعت بالا (تا ۱۰ میلیون آیدی در ثانیه) برای اهداف مختلفی مثل transaction IDs, database IDs, or session IDs و ... تولید و استفاده بشن.

IEEE 802 و ارتباط آن با UUID

‏IEEE 802 مجموعه‌ای از استانداردهای مربوط به شبکه‌های کامپیوتری هست که در لایه‌های فیزیکی و پیوند داده مدل OSI فعالیت میکنن. این استانداردها در فناوری‌های ارتباطی کاربرد داره.

در برخی نسخه‌های UUID، یکی از بخش‌های این شناسه ۱۲۸ بیتی، از آدرس MAC دستگاه گرفته میشه. آدرس MAC یک مقدار ۴۸ بیتی منحصر به فرد هست که به هر کارت شبکه اختصاص داده شده و معمولاً از یک محدوده‌ی آدرس اختصاصی، که توسط IEEE مدیریت و انتخاب میشه. استفاده از MAC در تولید UUID باعث میشه که شناسه‌ها در بین دستگاه‌های مختلف یکتا باشن. اما به دلایل امنیتی و حریم خصوصی، این روش همیشه توصیه نمیشه و در برخی نسخه‌های UUID، روش‌های دیگه‌ای جایگزین اون شدن.

ساختار UUID بر اساس RFC 4122

‏UUIDها از ۱۲۸ بیت تشکیل شدن و به صورت یک استرینگ ۳۶ کاراکتری نمایش داده میشن. این رشته شامل ۳۲ کاراکتر هگزادسیمال (اعداد ۰-۹ و حروف a-f) و ۴ خط تیره (-) است که بخش‌های مختلف UUID رو از هم جدا می‌کنن. فرمت کلی UUID به این صورته:

xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx
‏- x یک عدد هگزادسیمال (۰ تا ۹ و A تا F) هست

‏- M نسخه‌ی UUID رو مشخص میکنه.
‏- N مقدار variant رو تعیین میکنه.

‌‌‌‏UUID از چندین بخش اصلی تشکیل شده؟‏

1. ‏time_low (بخش پایین timestamp) – ۳۲ بیت

‏2. time_mid (بخش میانی timestamp) – ۱۶ بیت

‏3. time_hi_and_version (بخش بالایی timestamp + شماره نسخه) – ۱۶ بیت

‏4. clock_seq_hi_and_reserved (بخش بالایی شماره sequence + مقدار variant) – ۸ بیت

‏5. clock_seq_low (بخش پایینی شماره sequence) – ۸ بیت

‏6. node (شناسه گره، معمولاً MAC یا مقدار تصادفی) – ۴۸ بیت

‏انواع UUID و روش‌های تولید آنها‏

1. نسخه ۱ (UUIDv1): بر اساس زمان و شناسه گره (معمولاً آدرس MAC) ساخته میشه. این نسخه تضمین میکنه که UUIDها به ترتیب زمانی تولید بشن.

2. نسخه ۲ (UUIDv2): مشابه نسخه ۱ هست اما برای استفاده در سیستم‌های DCE Security طراحی شده.

3. نسخه ۳ (UUIDv3): بر اساس هش MD5 و یک نام (namespace) ساخته میشه.

4. نسخه ۴ (UUIDv4): به طور کامل تصادفی هست و از اعداد تصادفی برای تولید UUID استفاده میکنه.

5. نسخه ۵ (UUIDv5): مشابه نسخه ۳ است اما از الگوریتم هش SHA-1 استفاده میکنه.


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

#uuid #rfc4122
@CodeModule
8🔥4
چرا ‏Vitest رو به Jest ترجیح بدیم؟ 🥶

‏Jest و Vitest یکی از چندین فریمورک‌هایی هستن که برای نوشتن تست‌ (unit test یا integration test) داخل پروژه‌هامون استفاده میکنیم.

‏Vitest به عنوان جایگزینی جدیدتر، سریع تر و ساده تر معرفی شد. این فریمورک به دلیل (Hot Module Replacement) HMR و پشتیبانی از ESM (ECMAScript Modules) سرعتی به مراتب بالاتر از jest داره. پشتیبانی داخلی از Ts بدون نیاز به ابزارهای اضافی باعث شده محیط نوشتن کد‌ها دارای ساختاری یکسان باشه و مثل خیلی از فریمورک‌های دیگه اجرای تست‌ها در مرورگر و Node.js به راحتی امکان پذیره. مهاجرت از Jest به Vitest کار چندان سختی نیست اگر از قبل با jest کار کرده باشید.

قید Jest رو کلا بزنیم؟

قطعا نه و هنوز تو بعضی شرایط انتخاب منطقی‌تریه. برای مثال در پروژه های Next.js یکسری محدودیت‌ها برای Vitest وجود داره و استفاده از Jest منطقی‌تره.

آیا پروژه باید با vite باشه تا بتونیم از Vitest استفاده کنیم؟

‏Vitest به‌عنوان یک فریمورک تست مستقل کار می‌کنه و میتونیم اون رو در هر پروژه جاوا/تایپ اسکریپت استفاده، و فقط کانفیگ‌های مربوطه رو اضافه کنیم.

#testing
@CodeModule
🔥12👌3
با React Scan بیشتر آشنا بشید 💎

پکیج React Scan در واقع یک ابزار نسبتاً جدید و جالب برای آنالیز و اسکن پروژه‌های ریکتی هست که به شما، در شناسایی رندرهای غیرضروری در پروژتون کمک میکنه. این ابزار مشکلات عملکردی مربوط به re-render شدن کامپوننت‌ها رو بدون نیاز به تغییر در کد به راحتی شناسایی میکنه.

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

📎 Document

#reactScan
@CodeModule
🔥21👌1
چطور اکانت گیتهابم رو حفظ کنم؟ مروری بر 2FA و اهمیت مدیریت دسترسی‌ها 🔥

چند روز پیش یک مشکلی با سیستم 2FA داشتم که خیلی به موقع خودش رو نشون داد. به اپ 2FA در گوشیم دسترسی نداشتم و از اون بدتر، ریکاوری کدهایی که باید ذخیره می‌کردم رو اصلاً نداشتم! (که خب معمولاً خیلیا همینطوری هستن). این شد که یک وضعیت بحرانی پیش اومد و من به از تمام اکانت‌های گیت‌هابم اومده بودم بیرون. تنها راه دسترسی به اکانتم هم یه PAT یا (Personal Access Token) بود که به سختی ساعت‌ها گشتم تا پیداش کنم و در نهایت تونستم وارد بشم. ولی این اتفاق به من یادآوری کرد که چقدر مهمه چند تا نکته امنیتی ساده رو برای اکانت گیت‌هابمون فعال کنیم تا مثل من یهو از زندگی ناامید نشین!

1- سیو کردن ریکاوری کدها
اولین و مهم‌ترین چیزی که باید انجام بدید اینه که ریکاوری کدها رو دانلود کنید و حتما یه جایی ذخیره کنید. نوشتن اونا توی جایی که به راحتی بهش دسترسی داشته باشید (مثلاً یه فایل امن یا یه اپ مخصوص ذخیره‌سازی پسورد) خیلی می‌تونه کمک‌کننده باشه. این کار رو حتما انجام بدید که اگر روزی روزگاری به اپ 2FA دسترسی نداشتید، راحت بتونید وارد بشید.

2- فعال کردن SSH
یکی دیگه از کارهایی که به شدت توصیه می‌کنم، فعال کردن SSH برای اکانت گیت‌هاب هست. این کار کمک می‌کنه که بدون نیاز به وارد کردن پسورد یا توکن، بتونید به راحتی به گیت‌هاب دسترسی پیدا کنید.

نحوه فعال سازی SSH:
- ابتدا باید یک کلید SSH بسازید (با استفاده از ssh-keygen در ترمینال).
- بعد از ساخت کلید، باید اون رو به گیت‌هاب اضافه کنید از طریق تنظیمات SSH Keys در گیت‌هاب.

3- اکسس توکن (PAT)
همچنین به جای استفاده از پسورد برای احراز هویت، می‌تونید از اکسس توکن‌ها (PAT) استفاده کنید. این توکن‌ها برای ارتباط امن‌تر با گیت‌هاب خیلی مفید هستند.

نحوه فعال سازی PAT:
- به تنظیمات اکانت گیت‌هاب برید.
- در قسمت Developer Settings، گزینه Personal Access Tokens رو پیدا کنید.
- توکن جدید بسازید و سطوح دسترسی مورد نظر رو انتخاب کنید.

مهم:
اگر هیچ کدوم از این روش‌ها رو برای اکانتتون فعال نکردید، گیت‌هاب هیچ تضمینی نمیده که بتونید اکانتتون رو بازیابی کنید. نهایتاً ممکنه مجبور میشید ایمیل رو unlink کنید و یه اکانت جدید بسازید، ولی حتی در این صورت هم تاریخچه کامیت‌ها و اطلاعات دیگه رو ممکنه از دست بدید.

#github
@CodeModule
10
با پکیج nextjs-toploader رنگ و بوی جدیدی به پروژت بده🔥

‏nextjs-toploader یه پکیجِ انیمیشنی هست که در پروژه‌های Next.js استفاده میشه. با استفاده از این پکیج، زمانی که بین صفحات مختلف جابه‌جا میشید، در بالای صفحه یه progress bar (نوار لودینگ باریک) نشون داده میشه.

درست مثل نوار باریکی که بالای سایت‌ معروفی مثل YouTube موقع لود صفحه جدید میبینی.


برخی ویژگی‌های nextjs-toploader

🧬 خیلی ساده و سریع راه‌اندازی میشه.

🧬 رنگ، ارتفاع، سرعت پیشروی و شکلش کاملا قابل تغییره.

🧬 با Router Events توی Next.js کار میکنه (مثل routeChangeStart, routeChangeComplete)

برای کسب اطلاعات بیشتر به داکیومنت این پکیج مراجعه کنید.

#animation #toploader
@CodeModule
🔥12❤‍🔥4👌1
Forwarded from FullstacksJS — Academy
قابلیت جدید CSS برای ساخت Carousel
تو این ویدئو به قابلیت جدید CSS برای ساخت Carousel می‌پردازیم.

مشاهده ویدئو

این ویدئو بخشی از استریم های هفتگی جامعه ست شما هم میتونید با دنبال کردن کانال توی لایو ها شرکت کنید:
https://twitch.tv/fullstacksjs

عضویت در جامعه:
https://fullstacksjs.com

#wus #carousel #css
7❤‍🔥2
اگه برای تمرین و کدنویسی دنبال ui خاصی میگردید، این طرح فیگما رو به هیچ وجه از دست ندید 💀

🔗 Link

#figma
@CodeModule
🔥17
پیغام‌های زیبا با Sonner ☔️

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

‏Shadcn از این پکیج برای کامپوننت Toast خودش استفاده می‌کنه


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

🔗 Document

#sonner
@CodeModule
🔥15
یه موردی خیلی توجهم رو جلب کرده.

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

واقعا رسالت این کار چیه؟ /:

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

@CodeModule
👌36😁2