Dev Perfects – Telegram
Dev Perfects
41 subscribers
9.23K photos
1.26K videos
468 files
13K links
بخوام خیلی خلاصه بگم
این کانال میاد مطالب کانالای خفن تو حوزه تکنولوژی و برنامه نویسی رو جمع میکنه

پست پین رو بخونید
https://news.1rj.ru/str/dev_perfects/455


ارتباط:
https://news.1rj.ru/str/HidenChat_Bot?start=936082426
Download Telegram
به جای استفاده از تولز های درایوری برای داکیومنت کردن کدت برای llm knowledge base بیا از تولزم استفاده کن openai compatible سرعت پشم ریزوم. ایجنت رو تعریف کن بنداز به جون پروزه

https://github.com/ingig/code-narrator

@DevTwitter | <raas/>
Forwarded from Code Module | کد ماژول (genix)
‏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
Forwarded from LinAcademy
زندگی مثل یه بازی rpg هستش لول گرفتی اسکیل آپ کن، نگرفتی بازم mob بکش یا quest بزن تا لول بگیری.

این یعنی چی؟

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


@LinAcademy
Forwarded from linuxtnt(linux tips and tricks) (hosein seilany https://seilany.ir/)
Forwarded from یه شعر (Poem Bot)
مولانا | دیوان شمس | رباعیات | رباعی شمارهٔ ۱۷۸۲

با زهره و با ماه اگر انبازی
رو خانه ز ماه ساز اگر میسازی
بامی که به یک لگد فرو خواهد شد
آن به که لگد زنی فرو اندازی

#مولانا | گنجور
📍@iipoem
هر وقت ازتون پرسیدن ValueTuple چیه این رو به یاد بیارید
https://github.com/Farfetch/kafkaflow/blob/3.0.10/src/KafkaFlow.Abstractions/Message.cs

هیچی نیست به جز یه کانتینر برای جا به جا کردن memory address ها ولی با هر بار پاس دادنش، کپی میشه.

و اگر داخل یه کلاس هم ذخیره اش کنید میره روی Heap و اونجا Allocate میشه.

@DevTwitter | <Armin/>
Forwarded from DevAcademy
سلام دوستان!
ما در شرکت Nomarz LTDدر حال گسترش تیم فنی هستیم و به دنبال یک Senior Java Developer می‌گردیم!

🔹 نیازمندی‌ها:
حداقل 5 سال سابقه کار در Backend Development
تسلط به Java و مفاهیم Microservices
آشنایی با Golang
آشنایی کامل با Spring Boot و REST APIs
آشنایی با مفاهیم Blockchain و Web3
درک عمیق از Multithreading، Concurrency و Asynchronous Programming

💰 حقوق: پرداخت به صورت Tether (USDT)، از $2000 شروع و بسته به توانایی‌های شما قابل افزایش هست.
📍 محل کار: کاملاً Remote
📆 روزهای کاری: دوشنبه تا جمعه

اگه شرایط رو دارید و به این فرصت علاقه‌مندید، رزومه‌تون رو برامون تو لینکدین بفرستید! 🚀

https://www.linkedin.com/posts/ali-abbasi1990_golang-java-backend-activity-7290737975074676736-GHFI?utm_source=share&utm_medium=member_ios

💻@DevAcaademy
💬
@DevAcademyGroup
Forwarded from Geek Alerts
آپدیت Windsurf wave 2 مدل R1 از دیپ‌سیک رو آورده و Cascade رو اضافه کردن که مکالمات یه پروژه رو یادش میمونه، مثلا میتونید برید دنبال یه پروژه دیگه و وقتی برگردید مکالمه‌های پروژه قبلی سر جاشون هست. بعضی از کاربرها گفتن از Cursor بهتره ولی به نظرم تست کنید.

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

https://codeium.com/download
codeium
@geekaerts
Forwarded from Go Casts 🚀
سازنده Redis که چند وقتی میشه مجدد به تیم Redis برگشته، در بلاگ شخصی ش یه پست گذاشته و یه سری practice های رایج رو مورد انتقاد قرار داده و میگه که ما با این کارها داریم دنیای نرم افزار رو خراب میکنیم.

مثلا اشاره داره به اینکه وقتی به جوونترا توصیه میکنیم don't invent the wheel و چرخ رو از اول نساز، یعنی بهشون اجازه نمیدیم که بفهمن ابزارها چطوری کار میکنن و این خوب نیست

با اینکه میگیم کد نباید کامنت داشته باشه خوب نیست

یا اینکه دغدغه مون شده سرعت تولید نرم افزار به جای طراحی درست نرم افزار

خلاصه دل پری دارن ایشون :)

We are destroying software
https://antirez.com/news/145

@gocasts
Forwarded from Linuxor ?
توی پروتکل QUIC که HTTP 3 بر پایه اونه، شناسه اتصال (Connection ID) یه شناسه یکتاست که برای شناسایی و مدیریت ارتباطات استفاده می‌شه. این شناسه مستقل از آدرس IP هستش یعنی حتی اگه کاربر به شبکه‌ای جدید متصل شه و IP تغییر کنه، ارتباط قطع نمی‌شه و اتصال ادامه پیدا می‌کنه. این ویژگی به QUIC کمک می‌کنه که پایداری بیشتر و تأخیر کمتری توی تغییرات ناگهانی شبکه داشته باشه.


@Linuxor
بالاخره Codective Docs منتشر شد
تجربیاتی که تو این سال‌ها به عنوان Developer و Mentor کسب کردم رو اینجا جمع‌آوردی کردم
این مستندات نکات کاربردی که حرفه‌ای‌ها ازش استفاده میکنن و همچنین اشتباهات رایجی که بین تازه‌کارها رایجه رو شامل میشه

خوشحال میشم یه نگاهی بندازید و نظرتون رو بگید:
https://docs.codective.ir/clean-code

بعضی از سوالاتی که اینجا می‌تونید به جوابش برسید:
- چطور از Prettiern و ESLint و Stylelint استفاده کنیم؟
- کد تمیز (Clean Code) چه ویژگی‌هایی باید داشته باشه؟
- کد کثیف رو چطور تشخیص بدیم؟ (Code Smells)
- از چه تکنیک‌هایی برای Refactor میشه استفاده کرد؟
- چطور عکس‌های با کیفیت اما کم‌حجم داشته باشیم؟
- تفاوت تگ b با strong چیه و بهتره از کدوم باید استفاده کنیم؟
- چطور اعداد رو با کاراکترهای فارسی بنویسیم بدونِ اینکه تو محتوا دست ببریم؟
- چطور فقط یه CSS برای سایت چند-زبانه بنویسیم؟
- چه زمانی باید از Child Combinator استفاده کنیم؟
- تفاوت px با rem چیه و بهتره از کدوم استفاده کنیم؟
- تفاوت RGB و HSL چیه و بهتره از کدوم استفاده کنیم؟
- چطور Animation با Performance بالا داشته باشیم و از افت فریم جلوگیری کنیم؟
- اصول UI چیه و چرا باید ازشون پیروی کنیم؟
- کاربرد فایل‌های README.md و CONTRIBUTING.md چیه و تو هر کدوم چه محتوایی باید قرار بدیم؟

این مستندات به مروز زمان کامل‌تر میشه...

@DevTwitter | <Bijan Eisapour/>
توی یوتوب یک مدته این محتواهایی که طرف میاد کرنل رو با بیزی باکس می‌کنه توی هم و با و بعدش cpio میسازه ازشون خیلی یک مدته زیاد شده، حالا من که امیدوارم از این ترندهای زودگذر نباشه :)))))


@SohrabContents
Forwarded from 🎄 یک برنامه نویس تنبل (The Lazy 🌱 Raymond)
🔶 یه مشکلی که ووکامرس دارد که هنگامی که در صفحه تسویه حساب پرداختی انجام می شود به صفحه سفارش حساب کاربری منتقل نمی شود و حالا نمی دونم برگه ای برای این کار دارد یا خیر.

اما تابع زیر این مشکل رو حل می کند.

add_action( 'template_redirect', 'redirect_to_account_after_offline_payment' );
function redirect_to_account_after_offline_payment() {
if ( is_wc_endpoint_url( 'order-received' ) && ! isset( $_GET['payment'] ) ) {
wp_redirect( wc_get_account_endpoint_url( 'orders' ) );
exit;
}
}


#ووکامرس

@TheRaymondDev
Forwarded from 🎄 یک برنامه نویس تنبل (The Lazy 🌱 Raymond)
🔶 مدیریت کارها با تنظیم زمان آن

نسخه ایرانی :

https://app.mypomodoro.ir/

نسخه اصلی :

https://pomofocus.io/

اپ گوشی هم زیاد داره ولی بدیش اینه که بری سمت گوشی حواست پرت میشه و از کارت دور میشی.

@TheRaymondDev
Forwarded from 🎄 یک برنامه نویس تنبل (The Lazy 🌱 Raymond)
🔶 بخش Software Sources یه باگی داره که سرورهای ایران و کشورهای دیگر را مخفی می کند که باید چند بار اجرا کنید که سرورهای ایران و جهان رو نمایش بده.
الان تونستم روی سرور ایران Aminidc قرار بدم که بتونم نرم افزارهای مورد نیاز رو نصب کنم.
فکر کردم سرور ایران حذف شده که به خاطر این باگ خنده دار خوشبختانه سرور ایران حذف نشده است.

#لینوکس

@TheRaymondDev
Forwarded from یه شعر (Poem Bot)
مولانا | دیوان شمس | رباعیات | رباعی شمارهٔ ۴۲۶

ناگاه برویید یکی شاخ نبات
ناگاه بجوشید چنین آب حیات
ناگاه روان شد ز شهنشه صدقات
شادی روان مصطفی را صلوات

#مولانا | گنجور
📍@iipoem
Forwarded from Gopher Academy
🔵 عنوان مقاله
Product Management Is Broken. Engineers Can Fix It

🟢 خلاصه مقاله:
این مقاله به بررسی تغییراتی می‌پردازد که شرکت PostHog در نحوه همکاری مدیران پروژه (PMs) و مهندسان اعمال کرده است تا بهینه‌سازی فرایندهای کاری خود را برای دستیابی به سرعت و استقلال عمل پیش ببرد. PostHog تصمیم گرفته است فرایندهای سنتی بین PM و مهندسان را کنار بگذارد و به جای آن، مدلی را پیاده‌سازی کند که در آن هر دو گروه بیشترین میزان مسئولیت و اختیار را داشته باشند. این شرکت با دادن استقلال بیشتر به افراد و تیم‌ها، توانسته است که رویکردی مبتنی بر سرعت و کارآمدی در پیش بگیرد. به این ترتیب، PM‌ها و مهندسان با همکاری نزدیک‌تر و داشتن دید واضح‌تر از اهداف و چشم‌اندازهای کلی پروژه‌ها، می‌توانند در کوتاه‌ترین زمان ممکن به نتایج بهتر دست یابند. تغییر در نحوه همکاری و تقسیم کار، به هر فرد امکان می‌دهد که با تکیه بر تخصص خود، به افزایش کارایی و تاثیرگذاری بیشتر در پروژه‌ها کمک کند.

🟣لینک مقاله:
https://golangweekly.com/link/165340/web


👑 @gopher_academy
دستورها و آپشن کامندها لینوکس یادت میره؟
خواندن manpage برات سخته؟
نگران نباش
صفحات TLDR یک تلاش جامعه محور برای ساده کردن man pages با نمونه های عملیه
کافیه tldr را نصبش کنی

https://github.com/tldr-pages/tldr

@DevTwitter | <MehrdadLinux/>
‏واکسن فایزر: C
واکسن مدرنا: ++C
واکسن آسترازنکا: Python
واکسن جانسون: Rust
واکسن اسپوتنیک: C Sharp
واکسن برکت : PHP

@DevTwitter | <Muhammadreza Haghiri/>