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
اگه به دنبال کتابی هستید که طیف وسیعی از موضوعات امنیتی از جمله رمزنگاری، امنیت شبکه، کنترل دسترسی، روش‌های احراز هویت و دفاع از بدافزار رو پوشش بده، این کتاب رو که خودمم شروع کردم میخونم رو بهتون پیشنهاد میدم.

#book
@CodeModule
9🔥4👌2
Biome چیه و چه کاربردی داره؟ 🐝

‏Biome یک ابزار جامع برای مدیریت کیفیت کد در پروژه‌های جاوااسکریپتی/تایپ اسکریپتی هست که ترکیبی از قابلیت‌های ابزارهایی مثل ESLint برای کنترل خطاهای کد، و Prettier برای قالب‌بندی خودکار کد(فرمتر) ارائه میده. Biome با هدف بهبود عملکرد و نگهداری کدهای پروژه طراحی شده و به دولوپرا کمک میکنه تا کدهایی تمیز، بهینه و قابل مدیریت تولید کنن.

ویژگی های کامل Biome❗️

قالب‌بندی خودکار کد: Biome به‌طور خودکار کدهای شما رو قالب‌بندی میکنه تا ظاهری منظم و مرتب داشته باشن.

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

کنترل نسخه و بهینه‌سازی کد: با ادغام با سیستم‌های کنترل نسخه، Biome بهینه‌سازی کدها رو به صورت کارآمد انجام میده.

یکپارچه‌سازی ابزارهای مختلف: به جای استفاده از چندین ابزار جداگونه مثل ESLint و Prettier‏، Biome همه این امکانات رو در یک پکیج ارائه میکنه.

به طور کلی این ابزار غول مرحله آخره و همه امکانات رو یکجا داره و با استفاده از اون، میتونید کدهای تمیزتر و با کیفیت‌تری بنویسید. برای کسب اطلاعات بیشتر به داکیومنتش مراجعه کنید.
#biome
@CodeModule
🔥104👌2
هنوز عوضش نکردم 😂

#fun
@CodeModule
😁25👌2
سیستمی قدرتمند به نام Strapi

‏Strapi یک سیستم مدیریت محتوا (CMS) اوپن سورسه که به زبان JavaScript و با استفاده از Node.js توسعه یافته. این سیستم بهتون این امکان رو میده که به سرعت API‌های قدرتمند رو ایجاد، و محتوا رو مدیریت کنید.

برخی از ویژگی‌های برجسته Strapi

📍قابلیت ساخت و مدیریت API‌های REST و GraphQL‏: Strapi به شما اجازه میده تا به راحتی API‌های RESTful و GraphQL بسازید و مدیریت کنید. این امکان به دولوپرا این اجازه رو میده تا داده‌های خودشون رو به شکل دلخواه در اختیار کلاینت‌ها قرار بدن.

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

📍سفارشی‌سازی بالا و توسعه‌پذیری: به دلیل اینکه Strapi با استفاده از Node.js ساخته شده، شما می‌تونید به راحتی کد پایه اون رو تغییر بدید و با افزودن پلاگین‌ها و توسعه‌های سفارشی، CMS خودتون شخصی‌سازی کنید.

📍پشتیبانی از دیتابیس‌های مختلف: Strapi از چندین دیتابیس مثل SQLite، MySQL، PostgreSQL و MongoDB پشتیبانی می‌کنه. این انعطاف‌پذیری به شما اجازه میده تا با توجه به نیازهای پروژتون، دیتابیس مناسب رو انتخاب کنید.

📍امنیت و احراز هویت: Strapi دارای مکانیزم‌های امنیتی پیشرفته‌ایه که شامل JWT (JSON Web Tokens)، RBAC (Role-Based Access Control) و پشتیبانی از OAuth و Passport.js برای احراز هویت هست.

📍مدیریت فایل: Strapi امکاناتی برای آپلود و مدیریت فایل‌ها و تصاویر داره که می‌تونه اون هارو در منابع مختلف مانند AWS S3، Cloudinary و غیره ذخیره کرد.

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

🔗 Document

#strapi
@CodeModule
🔥13👌3
با پترن Facade پیچیدگی رو ساده کن! 🪼

الگوی Facade (یا façade) یک الگوی طراحی نرم افزاری هست که معمولاً در برنامه نویسی شی گرا استفاده میشه. این الگو مشابه نما در معماری هست که به عنوان یک رابط رو به جلو عمل میکنه که کدهای زیرین ساختاری پیچیده تری رو پوشش میدن. یک Facade میتونه:

- بهبود خوانایی و قابلیت استفاده یک کتابخانه با پوشاندن تعامل با اجزای پیچیده تر در پشت یک API واحد (و اغلب ساده شده) ارائه میده. همچنین یک رابط کاربری خاص برای عملکردهای عمومی تر ارائه میده.

دولوپر ها اغلب زمانی از الگوی طراحی نما استفاده میکنن که درک یک سیستم بسیار پیچیده یا دشوار هست، چرا که سیستم دارای کلاس های وابسته به یکدیگر هست یا کد سورس کد در دسترس نیست. این الگو پیچیدگی های سیستم بزرگتر رو پنهان میکنه و رابط کاربری ساده تری رو برای مشتری فراهم میکنه. این معمولا شامل یک کلاس wrapper هست که شامل مجموعه ای از اعضای مورد نیاز کلاینت هست. این اعضا از طرف کلاینت(مشتری) به سیستم دسترسی پیدا کرده و جزئیات پیاده سازی رو مخفی میکنه.

به عنوان مثال برنامه صبحگاهی خود رو تصور کنید. احتمالاً شامل چندین مرحله هست: دم کردن قهوه( یا چای)، روشن کردن چراغ ها، پخش موسیقی. هر یک از این اقدامات ممکنه شامل تعامل با دستگاه ها یا برنامه های جداگانه باشه.

الگوی طراحی نما مثل داشتن یک دکمه دستی "Morning Magic" روی میز خواب شما هست:

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

‏- Facade (دکمه جادویی صبح): این دکمه به عنوان Facade عمل میکنه. این یک رابط واحد - یک دکمه ساده - برای فعال کردن کل برنامه صبحگاهی فراهم میکنه.

به صورت کلی الگوی نما، در برنامه نویسی شی گرا، مانند نمای ساختمان در معماری عمل میکنه. جلوی ساده‌ای رو ارائه میکنه که عملکرد پیچیده درونی رو پنهان میکنه. در اصطلاح نرم افزاری، کلاسی هست که رابط کارآمد (streamlined interface) رو برای یک زیرسیستم یا کتابخانه پیچیده فراهم میکنه. برای اطلاعات بیشتر این مقالات ممکنه کمک کننده باشه:
- Article
- Article
- Article

#design_pattern
@CodeModule
🔥103👌3
نه ببین پکیج بهتره 😂😂

#fun
@CodeModule
😁262
اگه علاقه‌مند بودید بیشتر در مورد سینتکس و سمنتیک بدونید، این کتاب رو که خودمم میخونم پیشنهاد میدم. کتاب "Formal Syntax and Semantics of Programming Languages" نوشته Kenneth Slonneger مقدمه ای جامع بر مفاهیم اساسی در تئوری زبان برنامه نویسی ارائه میده. بر روی روش‌های رسمی مورد استفاده برای توصیف سینتکس و سمنتیک زبان‌های برنامه‌نویسی تمرکز داره و میتونید با دانلود PDF اون رو بخونید.

🔗 Link

#syntax #semantics
@CodeModule
10🔥2👌2
اگه برای تمرین و کدنویسی دنبال ui خاصی میگردید، این طرح فیگما رو به هیچ وجه از دست ندید 💀

🔗 Link

#figma
@CodeModule
🔥11💔1
Good Morning New Yorkers ☀️
<unknown>
رویا پردازی خالی به درد نمیخوره.
اگه دوست داری همچین صدایی رو سر صبح بشنوی باید زحمتش رو بکشی 🌑

@CodeModule
🔥10
چه الگوریتمی برای ساخت توکن jwt انتخاب کنم؟ 🔒

هنگام پیاده سازی jwt برای اپلیکیشن های خودمون، یکی از تصمیمات کلیدی که باید بگیریم انتخاب الگوریتم امضای مناسب هست. JWT از الگوریتم های مختلفی پشتیبانی میکنه که رایج ترین اون ها HS256 و RS256 هست.

الگوریتم HS256 چیست؟

‏HS256 یک الگوریتم امضای متقارن هست. در رمزنگاری متقارن، هم برای امضا و هم برای تأیید توکن از یک کلید استفاده میشه. این کار اون رو ساده و کارآمد میکنه.

چه زمانی از HS256 استفاده کنیم؟

اگر عملکرد یک نگرانی کلیدی هست و شما در یک محیط قابل اعتماد کار می کنید (جایی که هر دو طرف امضا و تأیید یک راز رو به اشتراک میذارن)، HS256 میتونه انتخاب خوبی باشه. با این حال، از اونجا که امضا و تأیید هر دو به یک کلید متکی هستن، راز باید به طور ایمن محافظت بشه.


الگوریتم ‏RS256 چیست؟

‏RS256، یک الگوریتم امضای نامتقارن هست. برخلاف HS256، از یک جفت کلید استفاده میکنه: یک کلید خصوصی برای امضای توکن و یک کلید عمومی مربوطه برای تأیید اون. این امر RS256 را برای سناریوهایی که طرف‌های امضا و تأیید موجودیت‌های متفاوتی هستن، مانند سیستم‌های توزیع‌شده یا زمانی که توکن‌ها در سرویس‌های مختلف به اشتراک گذاشته میشه، ایمن‌تر میکنه.

چه زمانی از RS256 استفاده کنیم؟

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


اما رمزنگاری متقارن و نامتقارن چی هستن؟

رمزنگاری متقارن (به عنوان مثال، HS256) : در الگوریتم های متقارن، کلید مخفی یکسانی هم برای امضا و هم برای تأیید استفاده میشه. این رویکرد ساده و کارآمد هست، اما با خطره به خطر افتادن کلید همراه هست، زیرا هر دو طرف باید به طور ایمن یک کلید را به اشتراک بگذارند و مدیریت کنن.

رمزنگاری نامتقارن (به عنوان مثال، RS256) : در الگوریتم های نامتقارن، از دو کلید مختلف استفاده میشه: یک کلید خصوصی برای امضا و یک کلید عمومی برای تأیید. کلید خصوصی باید امن نگه داشته بشه، در حالی که کلید عمومی می تواند آزادانه توزیع بشه. این روش سطح بالاتری از امنیت رو ارائه میده.


به عنوان مثال من در پروژه خودم از RS256 استفاده کردم و به این صورت میتونید جفت کلید (private,public) رو بسازیم(با استفاده از openssl):

openssl genrsa -out token.prv.key 2048
openssl rsa -in token.prv.key -pubout -out token.pub.key

‏- token.prv.key: کلید خصوصی مورد استفاده برای امضای JWT.
‏- token.pub.key: کلید عمومی مورد استفاده برای تأیید JWT.

برای امضا و تایید این کلید ها میتونیم اینکار انجام بدیم:
// sign token with private key
jwt.sign(payload, prvkey, {
expiresIn: exp,
algorithm: 'RS256',
});

// verify token with public key
jwt.verify(token, pubkey, { algorithms: ['RS256'] })


برخی از best Practices برای ساخت کلید ها :

1. کلید خصوصی خودتون رو پابلیک نکنید: کلید خصوصی شما باید همیشه محرمانه بمونه.

2. استفاده از کلیدهای قوی: هنگام تولید کلیدهای RSA، اندازه کلید حداقل 2048 بیت برای RS256 توصیه میشه.

3. انقضای توکن: همیشه یک زمان انقضا معقول برای توکن‌های خود («exp») تعیین کنین تا خطر استفاده طولانی‌مدت از توکن‌های دزدیده شده رو کاهش بده.

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

#jwt
@CodeModule
👌12🔥52😁1
با PWA Builder بیشتر آشنا بشید

‏PWA Builder یک ابزار آنلاینه که به دولوپرا کمک می‌کنه تا برنامه‌های PWA رو به آسونی و به سرعت بسازن. این ابزار، به‌ویژه برای افرادی که به تازگی با توسعه PWA آشنا شدن، بسیار مفید هست.

ویژگی های کاربردی این ابزار 🕷

تولید manifest.json: ‏PWA Builder به شما این امکان رو میده که فایل manifest.json رو به راحتی تولید کنید. این فایل اطلاعاتی درباره نام، آیکون‌ها، رنگ‌ها و سایر جزئیات اپلیکیشن شما رو در بر می‌گیره.

ایجاد Service Worker: این ابزار به شما کمک می‌کنه تا یک Service Worker سفارشی بسازید. از این فایل برای مدیریت کش، بهینه‌سازی بارگذاری و قابلیت آفلاین بودن PWA استفاده میشه.

تجزیه و تحلیل وب‌سایت: ‏PWA Builder وب‌سایت شما رو تجزیه و تحلیل می‌کنه و به شما نشون میده، که آیا قابلیت‌های PWA رو داره یا نه. همچنین می‌تونه نکاتی جهت بهبود اپلیکیشن ارائه بده.

تنظیمات سفارشی: دولوپرا می‌تونن تنظیمات مختلفی رو برای سفارشی‌سازی PWA پروژشون انجام بدن، مثل تعیین استراتژی‌های کش و زمان انقضا.

تست و دپلوی: ‏PWA Builder به شما این امکان رو میده که پس از ایجاد PWA، اون رو تست کنید و حتی به راحتی در پلتفرم‌های مختلف دپلوی کنید.

تولید آیکون‌های مورد نیاز: ‏PWA Builder می‌تونه آیکون‌ با اندازه‌های مختلف که برای استفاده در manifest نیاز دارید، تولید کنه.

‏به طور کلی PWA Builder به عنوان یک ابزار ساده و مفید برای شروع توسعه PWA، به شما کمک میکنه تا به راحتی به ویژگی‌های مختلف این نوع برنامه‌های وب دسترسی پیدا کنید و اون هارو بهینه‌سازی کنید.

🔗 Website

#pwa
@CodeModule
🔥8👌3
وقتی اینترنت نمیتونه مشکلت رو حل کنه 😂

#fun
@CodeModule
😁23
Good Night 🌑

@CodeModule
❤‍🔥28👌5
پالت رنگی پروژت رو پیدا کن 🩸

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

این سایت به طور خاص برای Tailwind طراحی شده. زمانی که پالت رنگیتون رو انتخاب کردید، این سایت نمونه کدهای مربوط به پیکربندی فایل tailwind.config.js رو برای شما تولید میکنه، تا به راحتی بتونید رنگ‌های سفارشیتون رو به فایل کانفیگ Tailwind اضافه کنید.

🔗 Link

#color #tailwind
@CodeModule
🔥173👌3
دورهمی های کدماژول، قسمت هشتم

موضوع: هوش‌مصنوعی، بررسی تأثیرات و بهره برداری از آن 🤖

مهمان گفتگو: آقای ماهان حیدری

زمان برگزاری: پنجشنبه (۱۸ مهر)، ساعت ۱۰

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


فردا شب ساعت 10 این گفتگو و دورهمی رو از دست ندید‌(لینک میت رأس ساعت قرار میگیره)

@CodeModule
4🔥83👌3
الگوریتم انتخاب چیست؟ 👽

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

این الگوریتم چطور کار میکنه؟ 🦠

الگوریتم‌های انتخاب به‌طور مؤثر k‌امین کوچک‌ترین (یا بزرگترین) عنصر رو در مجموعه‌ای از داده‌های نامرتب پیدا میکنه. برخلاف الگوریتم‌های مرتب‌سازی که کل مجموعه رو مرتب میکنه، الگوریتم‌های انتخاب بر یافتن یک عنصر خاص تمرکز میکنه. به عنوان مثال لیستی رو در نظر بگیرید که میخوایم با استفاده از الگوریتم انتخاب کوچیکترین(بزرگترین) مقدارش رو پیدا کنیم. این الگوریتم به این صورت کار میکنه:

‏1. Initialization: با انتخاب یک عنصر اولیه از داده ها شروع می کنیم. این عنصر میتونه هر عنصری در مجموعه باشه.

2. حلقه مقایسه: حلقه ای رو وارد می کنیم که از طریق داده های باقی مانده تکرار میشه. در هر تکرار، عنصر فعلی رو با عنصر اولیه (یا نامزد فعلی برای kامین کوچکترین/بزرگترین) مقایسه میکنه.

3. به روزرسانی کاندید: * اگه عنصر فعلی کوچکتر (برای کوچکترین) یا بزرگتر (برای بزرگترین) از عنصر کاندید باشه، نامزد رو به روز می کنیم. به این معنا که عنصر فعلی کاندیدای بهتری برای kامین کوچکترین/بزرگترین موقعیت میشه.
* اگه عنصر فعلی برابر با نامزد باشه، رفتار خاص به الگوریتم انتخاب بستگی داره. برخی از الگوریتم‌ها ممکن هست با اونها به طور مساوی رفتار کنن، در حالی که برخی دیگر ممکن است مکانیزمی برای قطع رابطه داشته باشن.

4. تکرار: مراحل 2 و 3 تکرار میشه تا زمانی که تمام عناصر مجموعه با نامزد مقایسه بشن.

5. نتیجه: پس از بررسی همه عناصر، عنصر نامزد نهایی به kامین کوچکترین (یا بزرگترین) مقدار در مجموعه تبدیل میشه.

برای درک بهتر، این گیف به بهترین شکل نحوه کار کرد رو نشون میده.

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

برای کسب اطلاعات بیشتر مقالات زیر رو بخونید 👇🏻
- Article
- Article
- Article
نحوه پیاده سازی این الگوریتم در js

#algorithm
@CodeModule
🔥132
🔵در میتینگ هوش مصنوعی و برسی تاثیرات آن ، راجع به کاربرد هوش مصنوعی و نحوه استفاده صحیح ازش صحبت کردیم و همچنین برخی از این ابزار های رایگان و کاربردی رو معرفی کردیم.

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

🔗Leonardo ai --> image generating
🔗Krea ai --> image generating
🔗Beativen ai --> music generating
🔗Canva --> design and image generating
🔗Pixverse -->video platform

#ai #tools
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥112
از هفته دیگه کلاسام شروع میشه 😂

#fun
@CodeModule
😁25🔥1👌1
‏Drag & Drop ساده تر از همیشه 👾

توی این پست می‌خوام بهتون یک کتابخانه جدید برای drag-and-drop یا به اصطلاح خودش drag-to-swap معرفی کنم. این کتابخانه فوقعالده سبک و ساده هست، و با اکثر تکنولوژی و کتابخانه های فرانتی مثل react ،vue ،angular ،svelte و ... سازگاره و
از اونها پشتیبانی میکنه.

من خودم قبلا برای drag and drop از react-dnd استفاده می کردم، ولی از این به بعد اگر تو پروژه ای این فیچر رو لازم داشته باشم، از این کتابخانه استفاده میکنم. چرا که با حداقل تغییر و به سهولت این قابلیت رو به پروژه‌های ما اضافه می‌کنه. برای کسب اطلاعات بیشتر به داکیومنتش مراجعه کنید.

🔗 Document

#swapy
@CodeModule
🔥163👌3