️ CodeNight | آموزش برنامه نویسی
836 subscribers
8 photos
1 file
64 links
🚀 کدنایت | آموزش برنامه‌نویسی از صفر تا صد
گولنگ، جاوااسکریپت، نودجی اس، وب، اپلیکیشن و الگوریتم
🧑🏻‍💻 آموزش پروژه‌محور و رایگان
🤖آموزش هوش مصنوعی و vibe coding و Ai engineering

💻 مناسب مبتدی تا پیشرفته
🌐 codenight.ir
Download Telegram
هر چیزی را نباید داخل Context Window نگه داریم

یکی از اشتباهات رایج در ساخت AI Agent این است که تمام تاریخچه گفتگو، نتایج Toolها و اطلاعات قبلی را دائماً داخل Context مدل قرار دهیم.

با طولانی‌شدن Session، سه مشکل ایجاد می‌شود:

Token Cost ↑
Latency ↑
Noise ↑

معماری بهتر، حافظه Agent را به چند لایه تقسیم می‌کند:

Working Memory → Short-term Context

Conversation Summary → Compressed Memory

Long-term Memory → Database / Vector DB

Business Data → Source of Truth

نکته مهم این است که Vector Database هم نباید به «محل ذخیره همه‌چیز» تبدیل شود. اطلاعات ساختاریافته مثل سفارش، پروفایل یا وضعیت پروژه بهتر است همچنان از Database اصلی خوانده شوند.

📌 خود Context Window حافظه دائمی Agent نیست؛ یک Working Memory محدود و گران‌قیمت است.

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

https://t.me/codenight_ir
👍2👎1
🟢 اگر از Stream استفاده می‌کنی؟ پس باید Backpressure را هم بشناسی

فرض کنید در Node.js یک فایل بزرگ را می‌خوانیم و داده را به مقصد دیگری می‌فرستیم.

اگر Producer سریع‌تر از Consumer داده تولید کند:

Producer >>> Consumer

داده شروع به جمع‌شدن در Memory می‌کند.

اینجاست که مفهوم Backpressure اهمیت پیدا می‌کند.

در Node.js Streamها مکانیزم‌هایی دارند که به Producer اجازه می‌دهند وقتی Consumer عقب افتاده، سرعت تولید را کاهش دهد.

به‌جای مدیریت دستی:

read → write → buffer → memory pressure

در بسیاری از سناریوها بهتر است از:

stream.pipeline()

استفاده شود تا جریان داده، Error Handling و Cleanup قابل‌کنترل‌تر شوند.

📌 در Stream فقط برای «کم‌کردن Memory» نیست؛ Flow Control بخش مهم‌تر ماجراست.

مستندات نودجی اس درباره Stream در کدنایت⁠

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

https://t.me/codenight_ir
❤2👍1
سیستم Cache می‌تواند Database را نجات دهد؛ یا یک‌دفعه همه Requestها را روی آن بریزد!

فرض کنید یک Query پرمصرف را ۵ دقیقه Cache کرده‌ایم.
Cache Expire می‌شود و همان لحظه ۱۰۰۰ Request می‌رسد.

اگر همه ببینند Cache خالی است:
1000 Requests → Database
این مشکل را Cache Stampede می‌نامند.

یکی از Patternهای کاربردی، Request Coalescing یا Single Flight است:

اولین Request داده را Refresh می‌کند و بقیه منتظر همان نتیجه می‌مانند.

1000 Requests → 1 DB Query → Cache → 1000 Responses

راهکارهای دیگر:
TTL Jitter Stale-While-Revalidate Distributed Lock
📌 در Cache Strategy فقط انتخاب TTL نیست؛ باید رفتار سیستم هنگام Cache Miss همزمان را هم طراحی کنیم.

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

https://t.me/codenight_ir
👍5❤1🔥1
مصرف CPU پایین است، ولی API کند شده؛ مشکل شاید Event Loop باشد

در Node.js یک Request می‌تواند بدون مصرف عجیب CPU، Event Loop را برای مدت زیادی Block کند.

مثلاً:

JSON پردازش بسیار بزرگ
اجرای Regex سنگین
اجرای Loop محاسباتی
کار CPU-bound داخل Request

نتیجه؟

حالا Request های دیگر باید منتظر بمانند.

در توسعه ی اپ های مبتنی بر نودجی اس فقط این‌ها کافی نیستند:

CPU + RAM + Request Count

در Production بهتر است Event Loop Delay / Utilization هم مانیتور شود.

در Node.js برای این کار APIهایی مثل:

monitorEventLoopDelay()

و

eventLoopUtilization()

را در perf_hooks ارائه می‌دهد.

📌 اگر کار CPU-heavy دارید، راه‌حل همیشه افزایش Replica نیست؛ گاهی باید Task را به Worker Thread یا Background Worker منتقل کنید.


دوره رایگان مرتبط با پرفورمنس و worker thread در کدنایت ⁠

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

https://t.me/codenight_ir
❤4
🎯 این اسم ها یا سه واژه این روزا خیلی قاطی استفاده می‌شن، ولی هرکدوم یه سطح متفاوت از کنترل و مسئولیت رو نشون می‌دن. فرقشون رو بدونی، انتخاب درستی تری برای هر تسک می‌کنی.

🧩 AI-Assisted Coding
کلی‌ترین اصطلاح: هر جایی که AI به‌صورت نقطه‌ای کمکت می‌کنه (اتوکامپلیت، توضیح کد، ریفکتور یک تابع). خط به خط دست خودته، AI فقط دستیاره.

🌀 Vibe Coding
طبق تعریف اصلی Karpathy: با زبان طبیعی به AI می‌گی چی می‌خوای، کد رو کامل ریویو نمی‌کنی، فقط نتیجه رو تست می‌کنی. مالکیت کد میفته دست AI. عالیه برای پروتوتایپ و MVP، خطرناکه برای production.

🤖 Agentic Engineering
تو هدف و قیدها (constraints) رو مشخص می‌کنی، ایجنت‌ها plan/code/test رو خودشون انجام می‌دن، ولی زیر نظارت ساختاریافته‌ی تو: code review، تست خودکار، معماری همچنان مسئولیت خودته.
مثال یه پرامپت برای همون تسک با دو رویکرد:

# به سبک  👇Vibe Coding

"یه endpoint برای ثبت سفارش بساز که کار کنه"

# به سبک 👇Agentic Engineering

"یه POST /orders در NestJS با TypeORM بساز:
- DTO با class-validator
- تراکنش روی MySQL برای کسر موجودی
- تست unit برای rollback در خطا
بعد از ساخت، diff رو نشونم بده."


💡 نکته طلایی: مشکل کلمه‌ها نیست، مشکل جایی‌ه که سبک اشتباه رو برای تسک اشتباه انتخاب کنی. برای production همیشه سمت Agentic Engineering برو، نه Vibe Coding خام.

کانال آموزشی کدنایت | آموزش برنامه نویسی
https://t.me/codenight_ir


#VibeCoding #کدنایت #Agentic_Engineering #AI_Assisted_Coding #هوش_مصنوعی
👏1
تیم Node.js درحال وارد کرد جدی تر Benchmarking در Runtime می‌باشد

ورژن Node.js 26.9.0 در ۱۶ سپتامبر منتشر شد و یکی از قابلیت‌های جالبش API آزمایشی جدید node:bench است.

در همین نسخه چند قابلیت مهم دیگر هم آمده:
چند قابلیت جدید و مهم در Node.js:

• پکیج node:bench برای Benchmark
برای تست و مقایسه سرعت کدها؛ مثلاً بفهمیم کدام الگوریتم یا روش پیاده‌سازی سریع‌تر اجرا می‌شود.

• Web Workers Support
برای اجرای کارهای سنگین در Threadهای جدا و جلوگیری از بلاک شدن برنامه.

• FFI به‌صورت پیش‌فرض
برای ارتباط مستقیم‌تر Node.js با توابع و کتابخانه‌های Native مثل C/C++.

• Virtual File System برای CJS و ESM
امکان مدیریت و شبیه‌سازی فایل‌ها برای هر دو سیستم ماژول CommonJS و ES Modules.

• Generic MAC API در Crypto
یک API عمومی‌تر برای تولید Message Authentication Code و کارهای امنیتی مرتبط با رمزنگاری.

همچنین APIهای جدیدی برای تحلیل Histogram در perf_hooks اضافه شده‌اند.

برای Backend Developerها، node:bench می‌تواند مسیر Benchmarkهای قابل‌تکرار را ساده‌تر کند.

📌 نکته: Node.js 26 ورژن Current است؛ برای Production بدون بررسی compatibility مستقیماً Upgrade نکنید و حتما از ورژن LTS استفاده کنید

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

https://t.me/codenight_ir
👋 به کدنایت خوش اومدی 💚

کدنایت یک پلتفرم آموزش برنامه‌نویسی و توسعه نرم‌افزاره؛ از شروع مسیر تا مباحث حرفه‌ای.

اینجا درباره این موضوعات محتوا داریم:

💻 مباحث Backend و Frontend
🤖 هوش مصنوعی و vibe coding و AI Engineering
🟢 آموزش Node.js و NestJS
🐹 آموزش پایه تا پیشرفته Golang
🏗 مهندسی و معماری نرم‌افزار
📄 رزومه، بازار کار و مسیر شغلی
🛠 ابزارها و تکنولوژی‌های جدید

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

🌐 codenight.ir
📢 @codenight_ir

از شروع برنامه‌نویسی تا حرفه‌ای شدن، کنار کدنایت باش.
❤6
🛡️ اعتبارسنجی ورودی‌ها در Express.js با Zod
یکی از مهم‌ترین بخش‌های ساخت API امن و قابل اعتماد، بررسی داده‌های ورودی کاربره.
با استفاده از Zod می‌تونیم خیلی ساده مشخص کنیم هر ورودی چه ساختاری داشته باشه، چه فیلدهایی اجباری باشن و چه محدودیت‌هایی روی داده‌ها اعمال بشه.
مثلاً قبل از اینکه اطلاعات وارد منطق برنامه یا دیتابیس بشن، می‌تونیم بررسی کنیم:

• ایمیل معتبره یا نه
• مقدارها نوع درستی دارن یا نه
• فیلدهای ضروری ارسال شدن یا نه
• داده‌ها محدودیت‌های تعریف‌شده رو رعایت می‌کنن یا نه

در این مقاله نحوه پیاده‌سازی Validation در Express.js با Zod رو بررسی کردیم 👇

https://codenight.ir/articles/express-validation-zod

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

https://t.me/codenight_ir
❤3
️ CodeNight | آموزش برنامه نویسی pinned «👋 به کدنایت خوش اومدی 💚 کدنایت یک پلتفرم آموزش برنامه‌نویسی و توسعه نرم‌افزاره؛ از شروع مسیر تا مباحث حرفه‌ای. اینجا درباره این موضوعات محتوا داریم: 💻 مباحث Backend و Frontend 🤖 هوش مصنوعی و vibe coding و AI Engineering 🟢 آموزش Node.js و NestJS 🐹 آموزش…»
🔓 ریسک امنیتی که Vibe Coding با خودش می‌آورد

سرعت وسوسه‌انگیز Vibe Coding یک قیمت پنهان دارد: کد تولیدشده اغلب کار می‌کند، اما امن نیست. این فاصله‌ی بین «کار کردن» و «امن بودن» همین حالا موضوع داغ تحقیقات امنیتی است.

📊 عدد نگران‌کننده
پژوهش Carnegie Mellon نشان داد ۶۱٪ کدهای تولیدشده با AI به‌درستی اجرا می‌شوند، اما فقط ۱۰.۵٪ از بازبینی امنیتی سربلند بیرون می‌آیند. یعنی اکثر کدهایی که «کار می‌کنند»، حفره امنیتی هم دارند.

⚖️ چرا این‌طور می‌شود؟
تست Veracode نشان داد وقتی مدل بین یک پیاده‌سازی امن و یک ناامن حق انتخاب دارد، در ۴۵٪ موارد گزینه ناامن‌تر را پیشنهاد می‌دهد؛ چون رایج‌ترین الگو در داده‌های آموزشی همیشه امن‌ترین الگو نیست.

🔬 شاهد میدانی
تیم Georgia Tech با ابزار Vibe Security Radar روی بیش از ۴۳ هزار گزارش امنیتی، ده‌ها آسیب‌پذیری بحرانی (command injection، bypass احراز هویت، SSRF) را ردیابی کرد که مستقیماً از کد AI-generated آمده بود — و روند در سال ۲۰۲۶ به‌شدت صعودی است.

💻 مثال ملموس (NestJS + TypeORM):

// ❌ الگویی که مدل‌ها گاهی پیشنهاد می‌دهند
const user = await this.repo.query(
`SELECT * FROM users WHERE email='${email}'`
);

// ✅ همیشه پارامتری بنویس
const user = await this.repo.query(
"SELECT * FROM users WHERE email = ?",

[email]
);


🎯 نکته طلایی: هیچ‌وقت کدی که AI نوشته را بدون یک پاس امنیتی جدا (SAST یا review دستی روی auth و input) مرج نکن. سرعت Vibe Coding نباید جای Code Review را بگیرد.

کانال آموزشی کدنایت | آموزش برنامه نویسی
https://t.me/codenight_ir

#VibeCoding #کدنایت #امنیت_کد #AI_Agent #برنامه_نویسی #NestJS
.
❤3
👨🏻‍💻 مفاهیمی که هر وایب‌کدری باید بدونه

اگه با 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
سرویس 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
🛡 چطور با چند خط کانفیگ 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
🧠 فایل‌هایی که هر وایب‌کدری باید توی پروژه بشناسه

وقتی با ابزارهایی مثل 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
🧠 ساختار پیشنهادی پروژه برای 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
وقتی 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
یک 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
🔌 مفهوم 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
🚀 ورژن 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
🚀 اولین قدم یک 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
☕️ اقا سلام
چه خبر جمعه‌تون چطور می‌گذره ‌؟
خدااروشکر با وجود ai میتونیم یه جمعه رو برای خودمون داشته باشیم 🫠

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

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

ببینیم امروز چند نفر واقعاً استراحت می‌کنن و چند نفر هنوز درگیر کدن! 😂💻
👨‍💻12✍3🍾3💩1👌1