Code Module | کد ماژول
Ir al canal en Telegram
Hello World 🌎 <> Earth is programmable if you code it Group 👇🏻 @CodeModuleGap Contact Us 👇🏻 @MrShahiin @neoMahan
Mostrar más1 957
Suscriptores
+224 horas
+187 días
+6930 días
Archivo de publicaciones
درود دوستان
به یک Mern Stack developer که ساکن شیراز باشه نیازمندم (در جهت استخدام)
اطلاعات کامل راجب شرکت رو پیوی میفرستم (قرارداد تمام وقت، حقوق بر اساس سطح و لول دولوپر مشخص میشه). اگه فرد توانمندی میشناسید ممنون میشم معرفی کنید.
@MrShahiin
درود
به یک متخصص سئو نیازمندیم.
اگه فرد کار بلدی سراغ دارید ممنون میشم معرفی کنید.
@MrShahiin
اگه برای تمرین و کدنویسی دنبال ui خاصی میگردید، این طرح فیگما رو به هیچ وجه از دست ندید 💀
🔗 Link
#figma
@CodeModule
درود💙
نیازمند یک برنامه نویس asp.net جهت توسعه یک پروژه هستم.
اگه کسی رو میشناسید ممنون میشم معرفی کنید.
@MrShahiin
Repost from Fullstacks — Academy
قابلیت جدید CSS برای ساخت Carousel
تو این ویدئو به قابلیت جدید CSS برای ساخت Carousel میپردازیم.
مشاهده ویدئو
این ویدئو بخشی از استریم های هفتگی جامعه ست شما هم میتونید با دنبال کردن کانال توی لایو ها شرکت کنید:
https://twitch.tv/fullstacksjs
عضویت در جامعه:
https://fullstacksjs.com
#wus #carousel #css
با پکیج nextjs-toploader رنگ و بوی جدیدی به پروژت بده🔥
nextjs-toploader یه پکیجِ انیمیشنی هست که در پروژههای Next.js استفاده میشه. با استفاده از این پکیج، زمانی که بین صفحات مختلف جابهجا میشید، در بالای صفحه یه progress bar (نوار لودینگ باریک) نشون داده میشه.
درست مثل نوار باریکی که بالای سایت معروفی مثل YouTube موقع لود صفحه جدید میبینی.برخی ویژگیهای nextjs-toploader 🧬 خیلی ساده و سریع راهاندازی میشه. 🧬 رنگ، ارتفاع، سرعت پیشروی و شکلش کاملا قابل تغییره. 🧬 با Router Events توی Next.js کار میکنه (مثل routeChangeStart, routeChangeComplete) برای کسب اطلاعات بیشتر به داکیومنت این پکیج مراجعه کنید. #animation #toploader @CodeModule
گروه تـاپیک برنامهنویســی
💬 | t.me/TopicsDev
چنل توسعه دهندگان و برنامه نویسان ❤️🩹
👨🏻💻| t.me/IDevZone
چطور اکانت گیتهابم رو حفظ کنم؟ مروری بر 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با React Scan بیشتر آشنا بشید 💎
پکیج React Scan در واقع یک ابزار نسبتاً جدید و جالب برای آنالیز و اسکن پروژههای ریکتی هست که به شما، در شناسایی رندرهای غیرضروری در پروژتون کمک میکنه. این ابزار مشکلات عملکردی مربوط به re-render شدن کامپوننتها رو بدون نیاز به تغییر در کد به راحتی شناسایی میکنه.
برخلاف ابزارهای دیگه مثل React Devtools، این پکیج بهصورت دقیق مشخص میکنه که کدوم کامپوننتها باعث کند شدن پروژتون و آسیب به پرفورمنس میشن.
📎 Document
#reactScan
@CodeModule
چرا 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
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
معماری میکرو فرانتاند چیه؟! 🪡
تا به حال شده به این فکر کنی که یه پروژه بزرگ مثل یه پازل پیچیدهاست که باید هر قطعهاش به درستی کنار هم قرار بگیره؟ حالا تصور کن که میتونستیم هر یک از این قطعات رو به صورت جداگونه و مستقل توسعه بدیم و بعد به هم وصل کنیم. اینجاست که مفهوم میکرو فرانتاند روشن میشه. میکرو فرانتاندها همونطور که از اسمشون پیداست بخشهای کوچکی از یه پروژه بزرگ هستن که به صورت مستقل و مجزا توسعه، تست و منتشر میشن.
مزایای استفاده از میکروفرانتاند 👇
مستقل بودن تیمها و توسعه سریعتر
هر تیم میتونه روی یک بخش خاص از پروژه کار کنه، بدون اینکه روی سایر بخشها تأثیر بذاره. این موضوع روند توسعه رو سریعتر و مدیریت رو سادهتر میکنه.
چند تکنولوژی در یک پروژه
در یک پروژه میشه از فریمورک و کتابخانه های مختلف مثل React، Vue یا Angular در قسمتهای مختلف استفاده کرد. این ویژگی برای پروژههای قدیمی که نیاز به مهاجرت تدریجی دارن، بسیار مفید هست.
بروزرسانی آسون و بدون تأثیر روی کل پروژه
هر میکروفرانتاند بهصورت مستقل دپلوی میشه و تغییرات در یک بخش، باعث خرابی یا مشکل در سایر بخشها نمیشه.
بهینهسازی عملکرد
بهجای لود شدن یک برنامه بزرگ، فقط بخشهای موردنیاز بارگذاری میشن که باعث بهبود زمان لود صفحه و تجربه کاربری میشه.
مقیاسپذیری بهتر
با افزایش کاربران و نیازهای پروژه، میشه بخشهای مختلف رو بهصورت مستقل گسترش داد.
با این رویکرد هر بخش از فرانتاند میتونه به صورت مستقل توسعه، تست و دیپلوی بشه. دقیقا مثل معماری میکروسرویس ها در بکاند. برای کسب اطلاعات بیشتر این مقاله رو میتونید مطالعه کنید.
#microfrontend
@CodeModule
نوروز سال ۲۵۸۴ شاهنشاهی رو بهتون تبریک میگم دوستان🔥🥳
امیدوارم تموم قله های موفقیت رو فتح کنید و امسال، سال شما باشه💙
@CodeModule
🥶 چه آینده ای در انتظار Typescript هست ؟
🔵تایپاسکریپت 5.8.2 آخرین نسخه رسمی که تا امروز (13 مارس 2025) منتشر شده، که در 27 فوریه 2025 اومده. این نسخه بیشتر روی بهبودهای کوچک و رفع مشکلات تمرکز داشته و چیز خیلی عجیب و غریبی توش نیست. طبق اعلام تیم تایپاسکریپت توی وبلاگ رسمیشون، چندتا تغییر اصلی داشته:
✅بهبود type checking ها: مثلاً بررسی دقیقتر تایپ هایی که توی شرطها برمیگردن یا وقتی به یه چیزی با ایندکس دسترسی پیدا میکنی.
✅پشتیبانی بهتر از ابزارهای ویرایشگر : مثل مرتب کردن importها بدون توجه به بزرگ یا کوچیک بودن حروف، که با بقیه ابزارها بهتر جور دربیاد.
✅رفع اشکالات: یه سری باگهای نسخههای آزمایشی رو درست کردن.
‼️این نسخه بیشتر یه بهروزرسانی معمولی بود و برای اکثر برنامهنویسها تغییر بزرگی توی کارشون ایجاد نکرد، مگر اینکه از یه سری ویژگی خاص استفاده میکردن که حالا دقیقتر شده.
⚡️حالا خبر بزرگ : تایپاسکریپت 7.0 با زبان Go
حالا بریم سراغ چیزی که همه رو توی شبکههای اجتماعی و جاهای دیگه هیجانزده کرده. طبق پستهایی که توی X دیدم و یه اعلامیه که ظاهراً 11 مارس 2025 توی وبلاگ تایپاسکریپت منتشر شده، تیم مایکروسافت داره روی یه نسخه کاملاً جدید کار میکنه که با زبان Go بازنویسی شده. یعنی کمپایلر تایپاسکریپت که الان با خودش نوشته شده و به جاوااسکریپت تبدیل میشه، قراره به یه برنامه مستقل و سریع با Go تبدیل بشه.
👩💻چرا Go رو انتخاب کردن؟
🔵سرعت: توی پستهای X گفته شده که تستهای اولیه نشون میده این نسخه تا 10 برابر سریعتر از نسخه الان کار میکنه. مثلاً توی پروژههای بزرگ مثل VS Code که از سرور تایپاسکریپت (tsserver) زیاد استفاده میکنه، این سرعت میتونه کار رو خیلی راحتتر کنه.
🔵کارایی: Go یه زبان کامپایلشدهست و خیلی بهینهتر از جاوااسکریپت اجرا میشه، مخصوصاً برای کارای سنگین مثل بررسی نوعها توی پروژههای بزرگ.
❓چیا قراره عوض بشه ؟
🔵پرفورمنس بهتر : اگه این 10 برابر سریعتر بودن واقعی باشه، برای پروژههای بزرگ که الان بررسی نوعهاشون گاهی چند ثانیه یا حتی چند دقیقه طول میکشه، یه تغییر بزرگه.
🔵سرور سریعتر: چون VS Code و خیلی از ویرایشگرها از tsserver برای تحلیل کد استفاده میکنن، این میتونه تجربه برنامهنویسی رو خیلی بهتر کنه.
هنوز معلوم نیست این تغییر به Go روی خود زبان (مثل دستورات یا ویژگیها) اثر میذاره یا فقط کمپایلر رو عوض میکنه 🏖️
#typescript #go #news
@CodeModule
¡Ya disponible! Investigación de Telegram 2025 — los principales insights del año 
