TGViewer
Channel Public Channel
️ CodeNight | آموزش برنامه نویسی

️ CodeNight | آموزش برنامه نویسی

@codenight_ir

🚀 کدنایت | آموزش برنامه‌نویسی از صفر تا صد
گولنگ، جاوااسکریپت، نودجی اس، وب، اپلیکیشن و الگوریتم
🧑🏻‍💻 آموزش پروژه‌محور و رایگان
🤖آموزش هوش مصنوعی و vibe coding و Ai engineering

💻 مناسب مبتدی تا پیشرفته
🌐 codenight.ir
Subscribers
811
Photos
8
Videos
0
Links
63
Recent Posts 20 shown
Post #123 36
مشکل از نشت فایل .env بود
حالا چطور این فایل در دسترس هکر ها قرار گرفته بود جالب بود

اول که اصلا نمیفهمیدم داستان چیه و چطور این اتفاق افتاده

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

بعد متوجه شدم فقط کدنایت نیست دوتا دیگه از پروژه هام هم همین مشکل رو دارن و قضیه خیلی برام ترسناک و عجیب بود ولی شانسی که روی پروژه های دیگم داشتم بسته بودن پورت دسترسی به دیتابیس در خارج از سرور بود


بعد کامل تمامی پسورد ها، کلید های دسترسی، همه چی رو ریست کردم و از نو ست کردم و کلا فایل . env رو هم از روی سرور هم از روی سیستمم پاک کردم برای همه ی پروژه ها و به github secrets انتقال دادم
و دسترسی دیتابیس رو هم داخلی کردم

خلاصه که مشکل برطرف شد و پیشگیری های لازم هم انجام شد

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

خلاصه که خود ai هم زیر بار نمیرفت که به این اطلاعات دسترسی داره یا نداره درحالی که همیشه محتاطانه دسترسی دادم و
کلام آخر مواظب باشید و حتی env فایل هاتون روی سیستم خودتون امنیت نداره
  • 🔥 2
  • 🤣 2
  • 💩 1
Post #122 50
ببخشید بابت تاخیر و از دسترس خارج شدن سایت باید دلیلش رو پیدا میکردم و باگ های امنیتی رو فیکس میکردم
  • ❤ 3
  • 💩 1
  • 😍 1
Post #121 50
کدنایت مجددا لانچ شد و در دسترس قرار گرفت ✅
  • ❤ 3
  • 💩 1
Post #120 75
🧠 یک Prompt خوب برای Vibe Coding چه ویژگی‌هایی داره؟

وقتی با Codex، Claude Code یا ابزارهای مشابه کدنویسی می‌کنید، کیفیت خروجی AI تا حد زیادی به کیفیت دستور و Context شما بستگی داره.

یک Prompt خوب معمولاً این بخش‌ها رو مشخص می‌کنه:

🎯 1. Goal — دقیقاً چی می‌خوای؟
به‌جای «سیستم Login بساز» بگو هدف دقیقاً چیه و چه قابلیت‌هایی نیاز داری.

🧩 2. Context — AI باید چی بدونه؟
تکنولوژی‌ها، معماری فعلی، ساختار پروژه و بخش‌هایی که قبلاً پیاده‌سازی شدن رو مشخص کن.

📏 3. Constraints — محدودیت‌ها چیه؟
مثلاً:
«پکیج جدید نصب نکن»
«ساختار فعلی پروژه تغییر نکنه»
«از Repository Pattern استفاده کن»

📂 4. Scope — کجا اجازه تغییر داره؟
مشخص کن AI چه فایل‌ها یا بخش‌هایی رو می‌تونه تغییر بده و به چه قسمت‌هایی نباید دست بزنه.

☑ 5. Acceptance Criteria — از کجا بفهمیم کار تموم شده؟
مثلاً:
«ورودی‌ها Validate بشن، تست‌ها Pass بشن و Error Handling مناسب داشته باشیم.»

🔍 6. Verification — خروجی رو بررسی کن
از Agent بخواه بعد از تغییرات، Test/Lint/Build مرتبط رو اجرا کنه و نتیجه رو گزارش بده.

مثلاً به‌جای:

❌ «برای پروژه سیستم ثبت‌نام بساز.»

بنویس:

☑ «برای Backend فعلی یک Registration API ایجاد کن. از معماری و Conventionهای موجود پروژه پیروی کن، ورودی‌ها رو Validate کن، Password رو امن ذخیره کن، فایل‌های غیرمرتبط رو تغییر نده، تست‌های مرتبط رو اضافه کن و در پایان Test و Lint رو اجرا کن.»

💡 یک Prompt خوب فقط نمیگه “چی بساز”؛ مشخص می‌کنه “در چه Contextی، با چه محدودیت‌هایی و با چه معیار موفقیتی بساز”.

در Vibe Coding قرار نیست بیشتر Prompt بنویسیم؛

قرارِ ابهام کمتری برای AI باقی بذاریم. 🚀


کانال آموزشی کدنایت | آموزش برنامه نویسی

https://t.me/codenight_ir
https://t.me/codenight_ir
  • ❤ 4
  • 💩 1
Post #119
️ CodeNight | آموزش برنامه نویسی pinned «⚠️‼️سلام دوستان وبسایت کدنایت سرویس ایمیلیش هک شده اگر ایمیل در قالب انتقال پول برای دسترسی دائمی دریافت کردید لطفا مراقب باشید ⛔️ وبسایت رو موقتا از دسترس خارج کردم که مشکل رو پیدا کنم و به زودی مجددا در دسترس قرار میگیره 📃حتما یک گزارش کامل از مشکل به…»
Post #118 131
⚠️‼️سلام دوستان وبسایت کدنایت سرویس ایمیلیش هک شده اگر ایمیل در قالب انتقال پول برای دسترسی دائمی دریافت کردید لطفا مراقب باشید

⛔️ وبسایت رو موقتا از دسترس خارج کردم که مشکل رو پیدا کنم و به زودی مجددا در دسترس قرار میگیره

📃حتما یک گزارش کامل از مشکل به وجود اومده توی کانال میفرستم که تجربه ای بشه برای همه مون

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

ممنون از صبر و شکیبایی شما 🙏
  • ❤ 9
  • 👍 3
  • 🙏 2
Post #117
️ CodeNight | آموزش برنامه نویسی pinned «یک نکته خیلی مهم برای کار کردن با مدل های ai که به وضوح خودم توی همکاری های اخیرم این مشکل رو تو ۸۰ درصد دوستان دیدم که اشتباه پرامپت میدن برای توسعه دادن و کار کردن با مدل های LLM هوش مصنوعی 👇👇»
Post #116 207
🔍 چطور از AI بخوایم واقعاً کدمون رو بررسی کنه؟

یکی از اشتباهات رایج موقع کار با ابزارهایی مثل Claude Code و Codex اینه که فقط بنویسیم:

«این پروژه رو بررسی کن و ببین مشکلی داره یا نه.»

این پرامپت خیلی کلیه و معمولاً نتیجه‌اش هم یک Code Review سطحی میشه.

اگر می‌خوای AI مثل یک Senior Developer پروژه رو بررسی کنه، باید دقیقاً مشخص کنی دنبال چه چیزهایی بگرده.

مثلاً:

🪲 Bugs & Logic
خطاهای منطقی، Edge Caseها، مشکلات async/await، Race Condition، خطاهای Runtime و مدیریت اشتباه Errorها

🔐 Security
مشکلات Authentication و Authorization، Injection، XSS، CSRF، SSRF، IDOR، افشای اطلاعات حساس، JWT، CORS و Input Validation

⚡️ Performance
پیدا کردن Queryهای اضافی، N+1، عملیات Blocking، Memory Leak، الگوریتم‌های ناکارآمد و مشکلات Cache

🏗 Architecture
Coupling بالا، Separation of Concerns، ساختار ماژول‌ها، Business Logic و مشکلات Scalability

🗄 Database & API
Transactionها، Constraintها، Validation، Pagination، Data Integrity و Query Performance

🚀 Production Readiness
Logging، Monitoring، Graceful Shutdown، Timeout، Retry، Rate Limiting، Health Check و مدیریت Environment Variableها

اما بخش مهم‌تر پرامپت اینجاست 👇

از AI بخواه برای هر مشکل مشخص کند:

Severity: Critical / High / Medium / Low
Location: فایل و تابع مربوطه
Problem: مشکل دقیقاً چیست؟
Impact: چه تأثیری دارد؟
Evidence: بر چه اساسی این مشکل را تشخیص داده؟
Recommended Fix: بهترین راه اصلاح چیست؟

و حتماً این قانون را هم اضافه کن:

❌ در مرحله اول هیچ کدی را تغییر نده.
❌ صرفاً برای بهتر شدن ظاهر کد Refactor پیشنهاد نده.
❌ مشکلات فرضی را به‌عنوان باگ قطعی گزارش نکن.
☑ ابتدا معماری و Flow پروژه را درک کن.
☑ بعد Audit را انجام بده.
☑ مشکلات را براساس اولویت P0 تا P3 مرتب کن.

💡 نکته مهم برای Vibe Coding:

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

همین تفاوت ساده می‌تونه خروجی «یه نگاه بنداز به کدم» رو به یک Code Review ساختاریافته و قابل استفاده تبدیل کنه.

کانال آموزشی کدنایت | آموزش برنامه نویسی
https://t.me/codenight_ir
https://t.me/codenight_ir
  • 👍 1
Post #115 183
یک نکته خیلی مهم برای کار کردن با مدل های ai که به وضوح خودم توی همکاری های اخیرم این مشکل رو تو ۸۰ درصد دوستان دیدم که اشتباه پرامپت میدن برای توسعه دادن و کار کردن با مدل های LLM هوش مصنوعی 👇👇
Post #114 195
☕️ اقا سلام
چه خبر جمعه‌تون چطور می‌گذره ‌؟
خدااروشکر با وجود ai میتونیم یه جمعه رو برای خودمون داشته باشیم 🫠

جمعه مشغول چه چیزی هستید؟
استراحت می‌کنید، کد می‌زنید، چیزی یاد می‌گیرید یا کلاً تصمیم گرفتید امروز سمت لپ‌تاپ نرید؟

با یه ایموجی نشون بدید امروز مشغول چکاری هستید 😁!

ببینیم امروز چند نفر واقعاً استراحت می‌کنن و چند نفر هنوز درگیر کدن! 😂💻
  • 👨‍💻 12
  • ✍ 3
  • 🍾 3
  • 💩 1
  • 👌 1
Post #113 241
🚀 اولین قدم یک Vibe Coder برای شروع پروژه چیه؟

اشتباه رایج اینه که همون اول Cursor، Codex یا Claude Code رو باز کنیم و بگیم:

«یه فروشگاه اینترنتی کامل برام بساز!»

قبل از اینکه AI حتی یک خط کد بنویسه، باید Context پروژه رو براش مشخص کنید.

یعنی AI باید بدونه:

📌 قراره چی بسازیم؟
📌 کاربران سیستم چه کسانی هستن؟
📌 قابلیت‌های اصلی پروژه چیه؟
📌 از چه تکنولوژی‌هایی استفاده می‌کنیم؟
📌 معماری پروژه چطوریه؟
📌 قوانین و محدودیت‌های توسعه چی هستن؟

مثلاً به‌جای:

❌ «یک فروشگاه اینترنتی بساز»

به AI توضیح بدید:

«می‌خوایم یک فروشگاه اینترنتی با Next.js و Express.js بسازیم. دیتابیس MySQL هست، Backend معماری Layered داره، Authentication با JWT انجام میشه و پروژه باید قابلیت مدیریت محصول، سفارش و پرداخت داشته باشه.»

بعد این اطلاعات رو داخل فایل‌های Context پروژه مثل AGENTS.md یا فایل‌های راهنمای مخصوص ابزار مورد استفاده‌تون نگه دارید.

💡 قانون مهم Vibe Coding:

قبل از اینکه به AI بگید کد بزن، مطمئن بشید می‌دونه چی، چرا و با چه قوانینی باید بسازه.

هرچقدر Context پروژه دقیق‌تر باشه، خروجی AI هم به چیزی که واقعاً می‌خواید نزدیک‌تر میشه.

قدم بعدی؟

طراحی Structure و Architecture پروژه قبل از شروع توسعه. 👨🏻‍💻

کانال آموزشی کدنایت | آموزش برنامه نویسی

https://t.me/codenight_ir
https://t.me/codenight_ir
  • 💩 1
Post #112 214
🚀 ورژن Claude Opus 5.5 منتشر شد؛ آپدیت مهم برای کاربران Claude Code

شرکت Anthropic مدل جدید Claude Opus 5.5 رو معرفی کرده و نکته جالب اینجاست که این مدل حالا به‌صورت پیش‌فرض در Claude Code برای کاربران Pro استفاده میشه.

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

⚡️ چه چیزهایی بهتر شده؟

• بیش از ۳۰٪ تولید خروجی سریع‌تر نسبت به Opus 5
• حدود ۴۰٪ هزینه کمتر برای هر Task در workloadهای معمول
• عملکرد بهتر در Coding و کارهای Agentic و طولانی
• توانایی بهتر در بررسی و تغییر Codebaseهای بزرگ
• نوشتن واضح‌تر، اصطلاحات اضافه کمتر و رعایت بهتر Writing Rules
• مدیریت بهتر Taskهای چندمرحله‌ای و طولانی

💰 قیمت API هم کاهش پیدا کرده:

Input: $4 / 1M tokens
Output: $20 / 1M tokens
Cache Read: $0.20 / 1M tokens

اما برای کاربران Claude Code یک تغییر مهم دیگه هم وجود داره:

Anthropic اعلام کرده محدودیت ۵ ساعته کاربران Pro و Max افزایش پیدا کرده و طبق ایمیل ارسالی، روی Opus 5.5 محدودیت مصرف تقریباً ۲۵٪ بیشتر از Opus 5 جواب میده.

🧠 یک قابلیت مهم دیگه هم Effort هست.

Opus 5.5 در Claude Code به‌صورت پیش‌فرض با:

medium effort

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

برای Taskهای سخت‌تر هم می‌تونید داخل Claude Code از:

/effort

استفاده کنید و میزان reasoning مدل رو بالاتر ببرید.

👨🏻‍💻 برای برنامه‌نویس‌ها این آپدیت یعنی چی؟

در Vibe Coding و AI-assisted Development فقط قدرت خام مدل مهم نیست؛ اینکه Agent با تعداد مرحله و Token کمتر بتونه Codebase رو بفهمه، تغییرات دقیق‌تری انجام بده و Taskهای طولانی‌تری رو کامل کنه، اهمیت زیادی داره.

و به نظر میاد Opus 5.5 دقیقاً روی همین قسمت تمرکز کرده.

من هم حتماً Opus 5.5 رو روی پروژه‌های واقعی تست می‌کنم و تجربه استفاده ازش در Claude Code رو باهاتون به اشتراک می‌ذارم. 👨🏻‍💻🔥

کانال آموزشی کدنایت | آموزش برنامه نویسی
https://t.me/codenight_ir
  • 🔥 2
  • 💩 1
Post #111 196
🔌 مفهوم MCP چیه و چرا برای برنامه‌نویس‌ها مهمه؟

اگه با ابزارهایی مثل AI Agentها، Claude یا Codex کار می‌کنید، احتمالاً اسم MCP رو زیاد شنیدید.

عنوان MCP یا Model Context Protocol یک استاندارد برای متصل کردن AI به ابزارها و منابع خارجی محسوب میشه.

یعنی به‌جای اینکه AI فقط متن ورودی شما رو داشته باشه، با کمک MCP می‌تونه به ابزارهایی مثل:

• دیتابیس
• فایل‌های پروژه
• GitHub
• سرویس‌ها و APIها
• ابزارهای توسعه
• سیستم‌های داخلی شرکت

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

مثلاً تصور کنید به Agent می‌گید:

«بیا Issueهای باز پروژه رو بررسی کن و ببین کدوم‌ها مربوط به Backend هستن.»

اگر Agent از طریق MCP به GitHub دسترسی داشته باشه، می‌تونه اطلاعات موردنیازش رو از ابزار متصل‌شده دریافت و بررسی کنه.

در معماری MCP معمولاً سه مفهوم مهم داریم:

🔵 MCP Host:
اپلیکیشنی که AI داخلش اجرا یا استفاده میشه
🔵 MCP Client:
ارتباط با MCP Server رو مدیریت می‌کنه
🔵 MCP Server:
قابلیت‌ها و اطلاعات یک سیستم یا ابزار رو در اختیار AI قرار میده


کانال آموزشی کدنایت | آموزش برنامه نویسی

https://t.me/codenight_ir
https://t.me/codenight_ir
  • ❤ 2
  • 💩 1
Post #110 235
یک Variable در Go روی Stack می‌رود یا Heap؟ Compiler تصمیم می‌گیرد

یکی از مفاهیم مهم Performance در Go، Escape Analysis است.

در Compiler بررسی می‌کند آیا عمر یک Variable فقط داخل همان Function است یا Reference آن جایی خارج از Scope باقی می‌ماند.

اگر بتواند روی Stack قرار بگیرد:

Function Ends → Memory Automatically Reclaimed

اما اگر Escape کند:

Heap Allocation → GC Eventually Handles It

برای دیدن تصمیم Compiler می‌توانید هنگام تحلیل پروژه از خروجی Escape Analysis استفاده کنید:

go build -gcflags="-m" ./...

📌 اما هدف این نیست که «هر Heap Allocation بد است».

موارد Stack vs Heap را به Micro-Optimization تبدیل نکنید.


کانال آموزشی کدنایت | آموزش برنامه نویسی

https://t.me/codenight_ir
https://t.me/codenight_ir
  • ❤ 2
  • 💩 1
Post #109 246
وقتی Cursor به عنوان یک Agent واقعی در VSCode زندگی می‌کنه
ادیتور Cursor یکی از محبوب‌ترین ویرایشگرهای AI-native است؛ یک fork از VS Code که کل تجربه‌ی ادیتور را حول AI بازطراحی کرده، نه اینکه فقط یک افزونه باشد.
⚡ Tab:
پیشرفته‌ترین اتوکامپلیت بازار. فقط خط فعلی را حدس نمی‌زند، کل تغییرات مرتبط در فایل‌های دیگر را هم پیشنهاد می‌دهد و با یک Tab قبول می‌شوند.
🤖 Agent Mode + Composer:
می‌توانید یک تسک چندمرحله‌ای بدهید (مثلاً «یک endpoint جدید با NestJS و TypeORM بساز و تستش کن») و Agent خودش پلن می‌ریزد، فایل‌ها را ویرایش می‌کند، کامند اجرا می‌کند و نتیجه را نشان می‌دهد. نسخه‌ی جدیدتر Composer برای تسک‌های پیچیده‌تر بهینه شده.
🔌 MCP و Skills:
مثل Claude Code از MCP servers و skill/hook پشتیبانی می‌کند، یعنی می‌توانید ابزارهای بیرونی (دیتابیس، Jira و…) را به Agent وصل کنید.
☁️ Cloud/Background Agents + Bugbot:
می‌توانید چند Agent را هم‌زمان روی بک‌گراند بفرستید تا ساعت‌ها کار کنند، و Bugbot هم روی PR های گیت‌هاب ریویو خودکار می‌زند.

// مثال: ارجاع به فایل با @
@src/orders/orders.service.ts
یک متد findByUserId اضافه کن که با TypeORM سفارش‌های یک کاربر رو از MySQL بخونه


🎯 نکته طلایی: در Agent Mode همیشه diff نهایی رو قبل از accept کامل بخوان؛ Agent قدرتمند است ولی گاهی فایل‌های بیشتر از حد لازم را دست می‌زند.
کانال آموزشی کدنایت | آموزش برنامه نویسی
https://t.me/codenight_ir

#VibeCoding #کدنایت #Cursor #AI_Agent #برنامه_نویسی
  • ❤ 1
  • 👍 1
Post #108 263
🧠 ساختار پیشنهادی پروژه برای Vibe Coding حرفه‌ای

اگه می‌خوای با ابزارهایی مثل Codex، Claude Code یا Cursor روی یک پروژه واقعی کار کنی، بهتره اطلاعات و دستورالعمل‌های مربوط به AI رو هم داخل خود پروژه ساختاربندی کنی.
یک ساختار ساده و قابل توسعه می‌تونه این شکلی باشه:

my-project/
│
├── .ai/
│ ├── prompts/
│ │ ├── create-api.md
│ │ ├── refactor.md
│ │ └── review-code.md
│ │
│ ├── skills/
│ │ ├── backend/
│ │ │ └── SKILL.md
│ │ ├── testing/
│ │ │ └── SKILL.md
│ │ └── database/
│ │ └── SKILL.md
│ │
│ └── hooks/
│ ├── after-edit.sh
│ └── before-commit.sh
│
├── scripts/
│ ├── test.sh
│ ├── lint.sh
│ ├── build.sh
│ └── migrate.sh
│
├── src/
├── tests/
├── README.md
└── AGENTS.md

🔹 prompts/
دستورهای آماده برای کارهای پرتکرار؛ مثل ساخت API، Refactor یا Code Review.

🔹 skills/
دانش و قوانین تخصصی پروژه؛ مثلاً AI بدونه Backend این پروژه با چه معماری و استانداردهایی توسعه داده می‌شه.

🔹 hooks/
کارهایی که قبل یا بعد از یک اتفاق به‌صورت خودکار اجرا می‌شن.

🔹 scripts/
دستورهای اجرایی پروژه برای Test، Lint، Build، Migration و کارهای تکراری.

🔹 AGENTS.md
یک راهنمای کلی برای Agent که توضیح می‌ده پروژه چیه، ساختارش چطوره و چه قوانینی باید رعایت بشه.


هدف اینه که اطلاعات مهم پروژه فقط داخل چت با AI باقی نمونه؛ بلکه داخل خود Repository ذخیره بشه.

در نتیجه وقتی Agent وارد پروژه می‌شه، خیلی سریع‌تر می‌فهمه:
پروژه چیه، چطور ساخته شده، چه قوانینی داره و کارها باید چطور انجام بشن.

کانال آموزشی کدنایت | آموزش برنامه نویسی 👇👇

https://t.me/codenight_ir
https://t.me/codenight_ir
  • ❤ 1
  • 👍 1
Post #107 264
🧠 فایل‌هایی که هر وایب‌کدری باید توی پروژه بشناسه

وقتی با ابزارهایی مثل Codex، Claude Code یا Cursor روی یک پروژه واقعی کار می‌کنی، فقط Prompt نوشتن کافی نیست. معمولاً داخل پروژه فایل‌ها و دستورالعمل‌هایی قرار می‌گیرن که رفتار AI رو کنترل و استاندارد می‌کنن.

🔹 Prompt
دستور یا توضیحیه که مشخص می‌کنه AI باید دقیقاً چه کاری انجام بده؛ مثلاً ساخت API، Refactor کردن کد یا نوشتن تست.

🔹 Skill
یک مجموعه دستورالعمل تخصصیه برای انجام یک نوع کار مشخص. مثلاً Skill مخصوص ساخت Controller، نوشتن Test یا پیاده‌سازی Migration.
به‌جای اینکه هر بار همه قوانین رو توضیح بدیم، AI می‌تونه Skill مربوط به اون کار رو بخونه و اجرا کنه.

🔹 Hook
یک قانون یا اکشن خودکاره که قبل یا بعد از یک اتفاق مشخص اجرا می‌شه.
مثلاً بعد از تغییر کد، به AI بگیم Lint یا Test رو اجرا کنه، یا قبل از Commit یک بررسی مشخص انجام بده.

🔹 Script
یک فایل اجرایی برای انجام کارهای تکراری پروژه است؛ مثل اجرای تست‌ها، Build پروژه، ساخت Migration، Seed کردن دیتابیس یا بررسی کیفیت کد.

💡 تفاوت ساده‌شون:

Prompt → الان چه کاری انجام بده؟
Skill → این نوع کار رو چطور انجام بده؟
Hook → چه زمانی یک کار خودکار اجرا بشه؟
Script → چه دستوری واقعاً اجرا بشه؟

وقتی این مفاهیم رو درست استفاده کنی، AI دیگه فقط یک چت‌بات کنار پروژه نیست؛ کم‌کم تبدیل می‌شه به بخشی از Workflow توسعه نرم‌افزار.

کانال آموزشی کدنایت | آموزش برنامه نویسی 👇👇

https://t.me/codenight_ir
https://t.me/codenight_ir

#VibeCoding #AI #Codex #ClaudeCode #PromptEngineering #SoftwareEngineering
  • ❤ 2
Post #106 254
🛡 چطور با چند خط کانفیگ Nginx، جلوی اجرای Web Shell در پوشه آپلود رو بگیریم؟

بیش از ۷۰٪ نفوذها به سایت‌ها و سیستم‌های مدیریت محتوا (از جمله وردپرس و لاراول) و اپلیکیشن‌ها، سوءاستفاده از قابلیت آپلود فایله.

مهاجم سعی می‌کنه فایلی با پسوند اجرایی یا نام‌های فریب‌دهنده مثل:

shell.php.jpg
backdoor.phtml
script.cgi

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

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

در Nginx می‌تونیم این مسیر رو با یک Rule ساده محدود کنیم:

# جلوگیری از اجرای فایل‌های اسکریپتی داخل پوشه‌های آپلود

location ~* /(?:uploads|files|storage)/.*\.(?:php[0-9]?|phtml|pl|py|cgi|sh|bash)$ {
deny all;
return 403;
}


💡 چه اتفاقی میفته؟
فایل‌های معمولی مثل عکس، ویدیو و PDF همچنان بدون مشکل در دسترس هستن؛ اما اگر کسی موفق بشه یک Web Shell یا فایل اجرایی داخل این مسیرها آپلود کنه، درخواست دسترسی به اون فایل با 403 Forbidden متوقف میشه.

یعنی حتی اگر مرحله‌ی Upload Validation جایی اشتباه عمل کنه، یک لایه امنیتی دیگه در سطح Nginx جلوی اجرای فایل رو می‌گیره.
⚠️ البته این تنظیم به‌تنهایی کافی نیست. در کنار اون باید نوع فایل، پسوند، MIME Type، نام فایل و محل ذخیره‌سازی فایل‌های آپلودی رو هم سمت Backend به‌درستی کنترل کنید.

امنیت خوب معمولاً نتیجه‌ی یک Rule نیست؛ نتیجه‌ی چند لایه دفاعیه. 🔐

کانال آموزشی کدنایت | آموزش برنامه نویسی 👇
https://t.me/codenight_ir
  • 👍 2
Post #105 247
سرویس Node.js هنگ کرده؛ قبل از Restart یک Snapshot از وضعیتش بگیر

در Node.js یک قابلیت Stable و بسیار کاربردی به نام Diagnostic Report وجود دارد که گاهی کمتر از چیزی که باید استفاده می‌شود.

در Diagnostic Report می‌تواند اطلاعاتی مثل:

🔵 JavaScript / Native Stack

🔵 Heap Statistics

🔵 Resource Usage

🔵 libuv Handles

🔵 CPU / Memory

را داخل یک فایل JSON ذخیره کند.

مثلاً می‌توان تنظیم کرد هنگام Fatal Error یا Signal گزارش ساخته شود:

--report-on-fatalerror

--report-on-signal

یا داخل برنامه:

process.report.writeReport()

📌 این قابلیت برای باگ‌هایی که فقط در Production اتفاق می‌افتند بسیار ارزشمند است.

یک نکته امنیتی هم مهم است: Report می‌تواند Environment Variables داشته باشد؛ Node.js گزینه --report-exclude-env را برای حذف آن‌ها ارائه می‌دهد.


کانال آموزشی کدنایت | آموزش برنامه نویسی 👇👇

https://t.me/codenight_ir
https://t.me/codenight_ir
Post #104 271
👨🏻‍💻 مفاهیمی که هر وایب‌کدری باید بدونه

اگه با Codex، Claude Code، Cursor یا Copilot کد می‌زنی، این ۳ مفهوم رو باید بشناسی:

🔹 Token
مدل‌های AI متن، کد و فایل‌ها رو به تکه‌های کوچیکی به اسم Token تبدیل می‌کنن. هرچی اطلاعات بیشتری به مدل بدی، Token بیشتری مصرف می‌شه.

🔹 Context
تمام اطلاعاتیه که AI در اون لحظه برای تصمیم‌گیری در اختیار داره؛ مثل Prompt، پیام‌های قبلی، فایل‌های پروژه، کدها، Skillها و خروجی ابزارها.

🔹 Context Window
حداکثر حجمی از Tokenهاست که مدل می‌تونه هم‌زمان پردازش کنه. وقتی این فضا پر بشه، ممکنه اطلاعات قدیمی‌تر از Context خارج بشن و AI بعضی جزئیات قبلی پروژه رو فراموش کنه.

💡 پس در Vibe Coding فقط Prompt مهم نیست؛ باید یاد بگیری Context رو درست مدیریت کنی، اطلاعات اضافه رو حذف کنی و اطلاعات مهم پروژه رو در دسترس AI نگه داری.

این یکی از تفاوت‌های مهم بین «کد زدن با AI» و مهندسی نرم‌افزار با AI هست.

کانال آموزشی کدنایت | آموزش برنامه نویسی 👇👇

https://t.me/codenight_ir
https://t.me/codenight_ir

#AI #VibeCoding #Context #Token #LLM #Programming
Older posts →

About this channel

How can I read @codenight_ir without a Telegram account?
TGViewer shows the public web preview Telegram publishes for ️ CodeNight | آموزش برنامه نویسی: recent posts, photos, videos and the subscriber count, with no app, login or account.
How many subscribers does ️ CodeNight | آموزش برنامه نویسی have?
️ CodeNight | آموزش برنامه نویسی (@codenight_ir) has 811 subscribers on Telegram, refreshed roughly every 30 minutes.
Does ️ CodeNight | آموزش برنامه نویسی know I viewed it here?
No. Public channel previews carry no viewer identity, and TGViewer has no accounts or tracking of what you look up.
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →