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
با کیا شدیم ۸۵ میلیون نفر :))

#fun
@CodeModule
😁39🔥2💔1
منبعی پر از سوالات تخصصی Next.js 💥

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

🔗 Link

#next #interview
@CodeModule
🔥134👌1
میدونستی با Node.js میتونی انیمیشن های جذابی توی ترمینال بسازی؟ 🚀

یکی از کارهایی که میتونید به عنوان سرگرمی انجام بدید، ساخت انیمیشن های ترمینال هست. مقاله vladimirvovk یک راهنمای جامع در مورد چگونگی انجام این کار هست. این مقاله نحوه ساخت digital rain که شبیه به Matrix هست رو نشون میده که با استفاده از process.stdout، اون رو میسازه(البته به صورت کوچیک شده). همچنین یک مقدمه کوتاهی از ANSIS هم داره که کار رو برای ساخت رنگ ها ساده میکنه و میتونید از اون توی انیمیشن هاتون استفاده کنید.

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

#nodejs
@CodeModule
12👌5
معماری Modular Monolith چیه و چه کاربردی داره؟ 🦦

اخیرا معماری modular monolith توجه خیلی از متخصصان رو به خودش جلب کرده، چرا که گوگل چارچوب «Service Weaver» رو پیشنهاد میکنه تا دولوپر ها رو قادر میسازه تا برنامه‌ها رو به صورت modular monolith بنویسن و اونها رو به عنوان مجموعه‌ای از ریزسرویس‌ها به کار بگیرن. گوگل اون رو چارچوبی در نظر گرفت که بهترین های هر دو دنیا رو داره و به نظر میرسه یک روند در معماری نرم افزار باشه.

اما ‏Modular Monolith چی هست؟

تو یک دهه اخیر شرکت های زیادی مثل آمازون، نتفلیکس و...، از میکروسرویس ها برای توسعه اپلیکیشن های خودشون استفاده کردن. اما با این حال، چندین شرکت مزایای مورد انتظار رو از مهاجرت به میکروسرویس ها به دست نیاوردن و به دلیل مسائلی مثل هزینه بالا و پیچیدگی میکروسرویس ها، با مشکل مواجه شدن. همین مشکلات باعث توجه متخصصان به مفهوم "Modular Monolith" شد. گوگل چارچوب "Service Weaver" رو پیشنهاد کرد تا دولوپر ها رو قادر بسازه برنامه ها رو به صورت یکپارچه مدولار بنویسن و اون ها رو به عنوان مجموعه ای از ریزسرویس ها به کار بگیرن.

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

1 - سرعت توسعه یکپارچه، با مقیاس‌پذیری

2 - امنیت و fault-tolerance در میکروسرویس ها

‏monoliths های سنتی اغلب بر روی لایه ها تمرکز میکنن و اغلب شامل سه لایه هستن: UI، Business و Data.

اما تفاوت اون با monolithic system چیست؟ 🤔

تفاوت اون با یک monolithic system در این هست که سیستم رو به ماژول های جداگانه تقسیم میکنه و تیم ها، مستقل میتونن روی هر ماژول کار کنن تا زمان توسعه محصول رو کاهش بدن و انعطاف پذیری و درک بیشتری داشته باشن. پیشنهاد modular monolith از سمت گوگل هیجان‌انگیز هست و شباهت‌هایی با traditional monolith و modularization mechanism که در گذشته بود داره و بنظر ترکیبی از هر دو هست.

به صورت کلی نتایج نشان میده که Modular Monolith یک الگوی معماری نرم‌افزاری هست که مزایای monolith رو با معماری میکروسرویس ترکیب میکنه. در این معماری، سیستم‌ها به صورت ماژول‌های جفت‌شده آزاد سازمان‌دهی میشن که هر کدام مرزهای کاملاً تعریف شده و وابستگی‌های صریح به ماژول‌های دیگر رو مشخص میکنن. به خصوص تفاوت اون با modularization که قبلا گفته شد، در اینه که در صورت تمایل اون رو میشه جابجا کرد یا بعداً به عنوان میکروسرویس مستقر کرد.

#architecture
@CodeModule
8🔥4
2024 شروع خوبی بود اما 2025 این آمار باید ۲ برابر بشه.

چند وقتیه فعالیت چنل به نسبت قبل کمتر شده، که دلیلش گرفتاری های روزمره هست که روز به روز داره بهشون اضافه میشه :))

تو سال جدید دوباره برمیگردیم به روال قبل و با پست ها و میتینگ های خاص مثل همیشه، به استقبال شما ماژولیتیای عزیز میایم💙

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


@CodeModule
@CodeModuleGap
🔥14😁3👌1
۳۰ توصیه از یک برنامه‌نویس سنیور: نکاتی که ای کاش زودتر می‌دونستیم! 🦠

۱. کد تمیز مهم‌تر از کد سریعه. بعداً که برگردی سراغ کدت، از خودت تشکر می‌کنی!

۲. مهارت های نرم(ارتباط، حل مسئله و...) رو جدی بگیر.

۳. همیشه فکر کن یه نفر دیگه قراره کدت رو بخونه - حتی اگه تنها توی پروژه کار می‌کنی.

۴. هر روز حداقل نیم ساعت مطالعه کن، مهم نیست چقدر شلوغی!

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

۶. گیت رو جدی بگیر. روزی میرسه که نجاتت میده و مهم نیست کجای رودمپ هستی، یادش بگیر.

۷. وقتی یه چیزی رو نمی‌دونی، با افتخار بگو نمی‌دونم. هیچکس همه چیز رو نمی‌دونه.

۸. کد ریویو فقط برای پیدا کردن باگ نیست. ازش برای یادگیری استفاده کن.

۹. با تیمت خوب رفتار کن. مهم نیست چقدر باهوشی، اگه نتونی با بقیه کار کنی، به درد نمی‌خوری!

۱۰. قبل از شروع کدنویسی، نحوه پیاده سازی تسک هارو تو ذهنت طراحی کن.

۱۱. هر تغییری رو تست کن، حتی اگه مطمئنی درسته.

۱۲. دیباگ کردن رو یاد بگیر، console.log همیشه جواب نمیده!

۱۳. امنیت رو از روز اول جدی بگیر. بعداً خیلی دیره.

۱۴. پرفورمنس مهمه، ولی نه به قیمت امنیت.

۱۵. داکیومنت بنویس. نه برای بقیه، برای خودت!

۱۶. هر ۶ ماه یه تکنولوژی جدید یاد بگیر.

۱۷. توی کامیونیتی‌ها فعال باش. یه روزی به دردت می‌خوره.

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

۱۹. تخصص و انرژیت رو ارزون در اختیار بقیه قرار نده.

۲۰. استک‌اورفلو و Gpt خوبه، ولی اول سعی کن خودت فکر کنی.

۲۱. کامنت بذار، ولی نه برای توضیح کد بد.

۲۲. پشت سیستم ورزش کن. کمردرد شوخی نداره.

۲۳. به چشم‌هات استراحت بده و قانون ۲۰-۲۰-۲۰ رو رعایت کن.

۲۴. زندگی فقط کد نیست. تفریح هم مهمه.

۲۵. تخمین زمانی رو ضرب در ۲ کن، باز هم کمه!

۲۶. تکنیکال دبت رو جدی بگیر. یه روز میاد سراغت.

۲۷. کمال‌گرایی رو بزار کنار و MVP بساز.

۲۸. از شکست‌هات یاد بگیر، همه اشتباه می‌کنن.

۲۹. صبور باش، همه یه روزی جونیور بودن.

۳۰. لذت ببر! برنامه‌نویسی قشنگ‌ترین شغل دنیاست.


شما چه تجربه ای دارید؟ 🤔
لیست رو اگه میتونید تکمیل تر کنید.

#tips
@CodeModule
🔥35👌9❤‍🔥1
چقدر از ‏Event Loop در جاوااسکریپت اطلاعات دارید؟ 🦦

‏Event Loop یه مکانیزم خیلی مهم توی جاوااسکریپته که باعث میشه این زبان با وجود Single-Threaded بودن، بتونه غیر بلاک‌کننده و (Asynchronous) کار کنه.

به زبان ساده Event Loop مسئول اینه که کارهای مختلف جاوااسکریپت رو مدیریت کنه و مطمئن بشه، کدهای ما به ترتیب و به درستی اجرا میشن.

اجزای اصلی Event Loop شامل موارد زیر هست 🦠

1. ‏Call Stack

یک لیست (ساختار داده‌ای ‏LIFO) که جاوااسکریپت توش توابع در حال اجرا رو نگه می‌داره. هر تابعی که صدا زده میشه میره روی استک و بعد از اجرا، ازش حذف میشه. این قلب تپنده اجرای کدهای همزمان (synchronous) هست.

2. ‏Web APIs

وقتی یه کار غیربلاک‌کننده مثل تایمر (setTimeout) یا ریکوستی(fetch) اجرا میشه، به Web APIs سپرده میشه. Web APIs این کارها رو در محیط مرورگر یا Node.js مدیریت می‌کنه و بعد از تموم شدن، نتیجه رو به Callback Queue می‌فرسته.

3. ‏Callback Queue

یه صف که توابع آماده اجرا مثل تایمرها و Event Listeners در اون نگهداری میشن. وقتی Call Stack خالی بشه، Event Loop این صف رو یکی‌یکی اجرا می‌کنه.

4.‏ Microtasks Queue

وظایفی مثل Promise.then و Mutation Observers در این صف قرار می‌گیرن. این صف همیشه قبل از Callback Queue پردازش میشه و اولویت بیشتری داره.

5. ‏Macrotasks Queue

وظایفی مثل setTimeout و setInterval در این صف قرار می‌گیرن. این صف بعد از Microtasks پردازش میشه و شامل کارهایی با اولویت پایین‌تره.

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

از بحث Event Loop در اکثر مصاحبه ها سوال میاد و یادگیریش، بهتون در درک جاوااسکریپت خیلی کمک میکنه.


#eventloop
@CodeModule
🔥15👌4❤‍🔥3
Clerk، ابزاری کارآمد و ساده برای احراز هویت 😎

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

⚡️سادگی و با چند خط کد، یه سیستم احراز هویت امن و مدرن رو به اپلیکیشنتون اضافه کنید.

‼️چرا Clerk برای برنامه‌نویس‌ها عالیه؟

سرعت و سهولت یکپارچه‌سازی: با کتابخانه‌های آماده برای فریم‌ورک‌ها و زبان‌های برنامه‌نویسی محبوب، خیلی سریع می‌تونید Clerk رو به پروژتون اضافه کنید.

امنیت بالا: دیگه نگران آسیب‌پذیری‌های امنیتی مربوط به احراز هویت نباشید. با رعایت به‌روزترین استانداردهای امنیتی، خیالتون رو راحت می‌کنه.

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

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

مدیریت آسان کاربران: داشبورد کاربری ساده و قدرتمند برای مدیریت کاربران و تنظیمات مربوط به اون‌ها.

صرفه‌جویی در زمان و هزینه: با استفاده از Clerk دیگه نیازی به صرف زمان و منابع برای توسعه و نگهداری سیستم احراز هویت اختصاصی ندارید.

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

Document 🌕

#authentication #clerk
@CodeModule
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥62👌2💔1
چند تا کامند کاربردی و کمتر شناخته شده از گیت 🦦

میدونستی به جز push و pull گیت کامند های دیگه ای هم داره؟ در این پست من چند کامند کمتر شناخته شده و کاربردی رو بهتون معرفی میکنم.

💎 ‏git stash

زمانی که شما در برنچ A هستید و یهویی مجبورید به برنچ B سوییچ کنید و نمی‌خواید این تغییرات نیمه‌کاره رو کامیت کنید، git stash به دادتون میرسه. تغییراتتون رو جمع می‌کنه و میتونید بدون کامیت کردن به یک برنچ دیگه برید.

💎 ‏conditional config

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

💎 ‏git blame

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

💎 ‏git reflog

این کامند برای زمانی خوبه که یک خرابکاری کردی، مثلا یک کامیت پاک کردی و این کامند بهت نشون میده چه تغییراتی صورت گرفته. این کامند به طور پیش‌فرض فعال هست و تغییرات محلی رو ثبت می‌کنه. (مثلا زمانی که ما از کامند git log استفاده میکنیم)

💎 ‏git diff —word —diff

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

💎 ‏git push —force-with-lease


این یه جور فورس پوش هست، ولی با احتیاط! به جای اینکه فورس بزنی و تغییرات دیگران رو overwrite کنی، این تضمین می‌کنه که اگه کسی دیگه چیزی تو ریپازیتوری تغییر داده، پوش تو انجام نشه.

به صورت خلاصه این کامند ها قطعا یه روز به کارتون میاد و به نوبه خودشون کاربردی هستن. دقت کنید تعداد کامند های گیت حدودا بیشتر از ۱۵۰ تا هست و اگه علاقه مند به کشف باقی موارد هستید، میتونید از YouTube اقای Scott Chacon اطلاعات خوبی به دست بیارید. ایشون نویسنده کتاب معروف Git Pro، و یکی از بنیانگذاران گیت هاب هستن.

#git
@CodeModule
🔥212
۶ ساعت دیباگ کردن می‌تونه شمارو از ۵ دقیقه داکیومنت خوندن نجات بده 💎

#fun
@CodeModule
😁63
Swagger این ابزار رو ببینه جیغ می‌کشه!

پکیج swagger-typescript-api یک ابزار قدرتمند و کاربردیه که بهتون کمک می‌کنه بر اساس Swagger پروژتون، کدهایی رو که شامل اینترفیس‌ها، تایپ‌ها، و فانکشن‌های مورد نیاز برای تعامل با API هستن، به‌طور خودکار تولید کنید. کافیه آدرس swagger پروژه رو تحویلش بدید تا شیک و مجلسی، کل کوئری های مورد نیاز رو جنریت کنه.

قابلیت‌ها و کاربردهای اصلی 👇🏻

1.تولید تایپ‌ها و اینترفیس‌ها:

این پکیج فایل‌ TypeScript تولید می‌کنه که شامل تمام تایپ‌های مربوط به داده‌هایی هست که API شما دریافت یا ارسال می‌کنه. این کار باعث جلوگیری از خطاهای تایپی و افزایش سرعت توسعه میشه.

2.ایجاد ریکوست فانکشن ها:

فانکشن‌هایی برای فراخوانی هر یک از endpointهای API تولید می‌کنه که مستقیماً با تایپ‌های TypeScript همخوانی دارن.

3.پشتیبانی از OpenAPI:

به‌طور کامل از نسخه‌های OpenAPI (مانند OpenAPI 3.0) پشتیبانی می‌کنه.

4.سفارشی‌سازی بالا:


می‌تونید قالب‌(template)های خودتون رو برای تولید کد سفارشی استفاده کنید. در کل گزینه‌های متنوعی برای تنظیم ساختار خروجی فراهم هست.

به طور خلاصه این پکیج به شدت سرعت توسعه رو بالا میبره و با مدل تایپ های تمیز و مرتب، از خطاهای احتمالی پروژتون جلوگیری میکنه.
(این ابزار خوراک ریکت کوئری دولوپر ها هست)

🔗 Link

#tools #swagger
@CodeModule
🔥6310❤‍🔥2
حباب هوش مصنوعی شکست! 🫧

اخیراً یک مدل هوش مصنوعی به نام DeepSeek از چین معرفی شد که توجه بسیاری به خودش جلب کرد. این مدل زبانی عملکردی شبیه به GPT داره و از طریق پرامت های کاربران، پاسخهای خودش رو تولید میکنه اما تفاوت اصلی اون در هزینه ها و روشهای توسعه اون هست. گفته میشه DeepSeek با بودجه حدود ۵ تا ۶ میلیون دلار ساخته شده و در برخی آزمون ها حتی از مدل های پیشرفته تری مثل GPT بهتر عمل کرده. این اتفاق تأثیر زیادی روی بازار گذاشته به طوری که ارزش سهام شرکت هایی مثل انویدیا و open ai کاهش پیدا کرده.

قبل از این، شرکتهایی مثل انویدیا و open ai ادعا میکردن توسعه هوش مصنوعی به منابع سخت افزاری عظیم و سرمایه گذاری کلان نیاز داره. انویدیا با فروش سخت افزارهای ویژه به غولهای فناوری مانند آمازون و مایکروسافت سود زیادی کسب میکرد و open ai هم بر پیچیدگی توسعه مدلهای زبانی تأکید داشت، تا این فناوری رو در انحصار خودش نگه داره. اما ظهور دیپ سیک این narrative رو زیر سوال برد. تیم توسعه دهنده دیپ سیک نشون داد با بهینه سازی روشهای قدیمی و کاهش مصرف منابع، میشه مدلی کارآمد حتی روی سیستم‌های گیمینگ معمولی ساخت، بدون نیاز به ابررایانه ها یا بودجه های میلیاردی 💸

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

این اتفاق رو سرآغاز تحولی در حوزه هوش مصنوعی میتونیم بدونیم. حالا دیگه هر تیم کوچیک یا حتی افراد مستقل با دانش فنی مناسب امکان ساخت مدل‌های رقابتی رو دارن. موفقیت دیپ سیک همچنین نشون میده ادعاهای شرکتهای بزرگ درباره ضرورت منابع انحصاری همیشه واقعی نیست و تنها راهی برای حفظ سلطه بازار هست. حالا چالش جدیدی پیش روی صنعت قرار گرفته: آیا این روند بازتر شدن فناوری ادامه پیدا می‌کنه یا غول های تکنولوژی راهی برای بازپسگیری انحصار پیدا میکنن؟ 🤔

🔗 همین الان DeepSeek رو امتحان کن

#ai
@CodeModule
21❤‍🔥2👌2🔥1
صداقت حرف اول رو میزنه.

#fun
@CodeModule
😁43👌1
‏Trust Proxy توی Express.js چیه و دقیقاً چه کاری میکنه؟ 🤔

‏Trust Proxy یه تنظیم توی Express هست که به اپلیکیشن میگه آیا باید به اطلاعاتی که توی هدرهای X-Forwarded-For و X-Forwarded-Proto میاد، اعتماد کنه یا نه.

حالا این یعنی چی؟ یعنی وقتی برنامه بک اند یه سرور واسطه‌ای (مثل Nginx یا Cloudflare) قرار داره، IP و پروتکل واقعی کاربر توی این هدرها قرار می‌گیره. Express به‌طور پیش‌فرض به این اطلاعات اعتماد نداره اما اگه trust proxy رو فعال کنید، Express از این هدرها برای تعیین IP و پروتکل واقعی کاربر استفاده میکنه.

‏۲. Trust Proxy به چه دردی میخوره؟

وقتی که برنامه‌ شما رو یه پراکسی معکوس (Reverse Proxy) یا یه لود بالانسر اجرا میشه، در حالت عادی Express فقط IP و اطلاعاتی که از سمت اون پراکسی دریافت کرده رو می‌بینه، نه اطلاعات اصلی کاربر. این یعنی ممکنه req.ip اشتباه باشه، req.protocol به جای https مقدار http داشته باشه و کلی مشکل دیگه.

اینجاست که Trust Proxy به درد می‌خوره 👇🏻

‏- وقتی فعال بشه، Express مقدار واقعی IP کاربر رو از X-Forwarded-For میخونه.

‏- req.protocol‏ رو بر اساس X-Forwarded-Proto تنظیم میکنه. ‌‌‏
‏- req.hostname رو درست مقداردهی میکنه‏

۳. چجوری Trust Proxy رو توی Express فعال کنیم؟

خیلی ساده!
const app = express();
app.set("trust proxy", true);


با این تنظیم:

‏- req.ip مقدار واقعی آی‌پی کاربر رو میده.
‏- req.protocol مقدار واقعی http یا https رو نشون میده.

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


‏ ۴. Trust Proxy چه مقدارهایی میگیره؟


مقدار true همیشه بهترین گزینه نیست. Express چند مدل مقدار رو قبول میکنه:

app.set("trust proxy", false);  // پیش‌فرض، هیچ پراکسی‌ای رو قبول نمی‌کنه.
app.set("trust proxy", true); // به همه پراکسی‌ها اعتماد میکنه.
app.set("trust proxy", "loopback"); // فقط به 127.0.0.1 اعتماد میکنه.
app.set("trust proxy", "127.0.0.1"); // فقط به این IP خاص اعتماد میکنه.
app.set("trust proxy", ["192.168.1.1", "10.0.0.1"]); // لیستی از پراکسی‌های قابل‌اعتماد.
app.set("trust proxy", 2); // از آخرین دو پراکسی مقدار رو می‌خونه.


- مقدار 2 یعنی چی؟
وقتی مقدار 2 رو میدید، Express میاد ip واقعی کاربر رو از دو پراکسی آخر توی X-Forwarded-For استخراج میکنه. این کار به درد جایی میخوره که چند تا سرور بین کاربر و اپلیکیشن هستن.

- پس مقدار true بدیم یا نه؟
بهتره فقط به پراکسی‌هایی که می‌شناسی اعتماد کنید. مثلاً اگه سرور فقط Cloudflare یا Nginx قرار داره، میتونید فقط به اون آی‌پی‌ها اعتماد کنین تا از IP Spoofing جلوگیری بشه.


‏Trust Proxy یه تنظیم مهمه که وقتی برنامتون یه پراکسی مثل Nginx یا Cloudflare باشه، کمک میکنه Express اطلاعات واقعی کاربر رو تشخیص بده. اما باید دقت کنی که به هر پراکسی‌ای اعتماد نکنید! برای امنیت بیشتر، فقط به آی‌پی‌هایی که واقعاً Proxyهای خودتون هستن اجازه بدید.

برای جزئیات بیشتر میتونید به مستندات رسمی Express در مورد TrustProxy مراجعه کنید، که این جنبه ها رو با عمق بیشتری توضیح میده.

#nodejs #express
@CodeModule
13👌3
یه جوری راجب همه چیز پست زدیم که دیگه واقعا ایده ندارم.

یه ساعت درگیر پست زدن راجب یه موضوع بودم، بعد ک تموم شد فهمیدیم راجب اون موضوع قبلا پست گذاشتیم :)))

نظرتون چیه یکم از دنیای جاوااسکریپت خارج بشیم و یه سری به باقی زبان و اکوسیستم ها بزنیم؟
👌461
از لودینگ های معمولی خسته شدی؟ برو سراغ skeleton 💀

سایت skeletonreact ابزاری برای ایجاد کامپوننت‌های اسکلت انیمیشنی هست و از خروجی در قالب‌هایی نظیر React، ‏React Native‏، Vue و Vanilla HTML پشتیبانی می‌کنه. انیمیشن های اسکلتی رو میتونیم به‌ عنوان جایگزینی برای لودینگ‌های معمولی و خسته کننده در نظر بگیریم، و اونها به ما این قابلیت رو میدن که به کاربران پیش‌نمایشی از ساختار صفحات، مثل مکان‌نماهایی برای متون یا تصاویر ارائه بدیم تا تجربه کاربری بهتری در زمان بارگذاری داده‌ها فراهم بشه.

🔗 Link

#tools #skeleton
@CodeModule
🔥264👌1💔1
آرشیو کتاب ها و دوره های رایگان برنامه نویسی🔥

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

🔗 Link

#repository
@CodeModule
🔥15👌1
‏TanStack Form بلاخره استیبل شد🗽

‏TanStack Form یک کتابخانه جدید از تیم TanStack هست که برای مدیریت فرم‌ در پروژه های شما طراحی شده. این کتابخانه به تازگی استیبل شده و به‌عنوان جایگزینی برای کتابخانه‌هایی مثل React Hook Form و Formik در نظر گرفته میشه.

ویژگی‌های اصلی TanStack Form👇🏻

پشتیبانی از چندین فریم‌ورک و کتابخانه: این کتابخانه از React، Vue، Angular، Solid و Lit پشتیبانی می‌کنه.

بدون وابستگی خارجی: TanStack Form بدون وابستگی به کتابخانه‌های دیگه طراحی شده که منجر به حجم کم و عملکرد بهینه میشه.

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

طراحی بدون رابط کاربری (Headless): امکان استفاده از کامپوننت‌ها و هوک‌های بدون رابط کاربری برای انعطاف‌پذیری بیشتر در طراحی فرم‌ها.

واکنش‌گرایی جزئی: بهبود عملکرد با به‌روزرسانی‌های جزئی در کامپوننت‌ها.

اعتبارسنجی هم‌زمان و غیرهم‌زمان: امکان تعریف قوانین اعتبارسنجی مختلف برای فیلدها و فرم.

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

🔗 Link

#tanstack
@CodeModule
🔥15👌1
🥶 چه آینده ای در انتظار 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
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥222👌1