11 KiB
11 KiB
مشخصات درسنامه: ساختار و آناتومی پروژه (Project Anatomy & File Architecture)
- شناسه در سیلابس:
L3.8 - فصل: فصل ۳: راهاندازی محیط کار (Ch 3)
- نوع محتوا: 📘 درسنامه متنی
- زمان تقریبی مطالعه: ۱۲ دقیقه
- پیشنیازهای مستقیم:
L3.7(استفاده از Skillها و MCPها)
۱. اهداف یادگیری (Learning Objectives - Bloom's Taxonomy)
دانشجو پس از مطالعهٔ این درسنامه باید بتواند:
- درک کند (Understand): نقش و جایگاه پوشهها و فایلهای اصلی یک پروژه مدرن وب (کانفیگهای ریشه، پوشه سورس کد
src/، پوشه فایلهای استاتیکpublic/و مخزن پکیجهاnode_modules/) چیست. - تحلیل/ارزیابی کند (Evaluate): فایل حیاتی
package.jsonرا بازخوانی کند؛ ساختار بخش اسکریپتها (scripts) و لیست وابستگیها (dependencies) را به عنوان شناسنامه پروژه تحلیل نماید. - درک کند (Understand): پوشه حجیم
node_modules/چیست، چرا هرگز نباید دستی ویرایش یا در گیت ذخیره شود، و چگونه با یک فرمان سادهnpm installدوباره دانلود و بازسازی میشود. - بهکار ببندد (Apply): فایل محیطی
.envرا به عنوان صندوقچه امن رمزها بشناسد و متغیرهای حساس را جدا از کدهای پروژه نگهداری کند. - بهکار ببندد (Apply): دستورات مشاهده ساختار درختی پروژه در ترمینال را بر اساس سیستمعامل خود (ویندوز، مک، لینوکس) با منوهای کشویی اجرا کند.
۲. محدوده و مرزهای محتوا (Scope & Boundaries)
آنچه باید پوشش داده شود (In-Scope):
- شکستن ترس از شلوغی کدهای پروژه:
- در نخستین نگاه به درخت فایلهای یک پروژه وب، دهها پوشه و فایل نامفهوم دیده میشود. در این درس معماری استاندارد و منطق پشت هرکدام را کالبدشکافی میکنیم.
- آناتومی ۴ گانه ساختار پروژه:
- ۱. پوشه سورس کد (
src/یاapp/): قلب تپنده نرمافزار؛ کدهایی که ایجنت مینویسد، صفحات، دکمهها و استایلها اینجا قرار دارند. - ۲. پوشه فایلهای ایستا (
public/): انبار عکسها، آیکونها، فونتها و فایلهایی که بدون تغییر به کاربر تحویل داده میشوند. - ۳. انبار پکیجها (
node_modules/): پوشه غولپیکری که npm تمام کتابخانههای دانلودشده را در آن میریزد. - ۴. فایلهای پیکربندی ریشه (Root Config Files): نگهبانان و شناسنامه پروژه.
- ۱. پوشه سورس کد (
- کالبدشکافی فایل شناسنامه پروژه (
package.json):- نام و نسخه پروژه (
name,version). - دستورات اجرایی (
scriptsمثلnpm run devبرای بالا آوردن سرور محلی یاnpm run build). - فهرست پکیجها و کتابخانههای مورد نیاز (
dependencies).
- نام و نسخه پروژه (
- راز پوشه مخوف
node_modules(The Scary Folder):- استعاره انبار بزرگ قطعات یدکی خودرو.
- چرا نباید از حجم بالای آن ترسید؟ اگر این پوشه پاک شود، فقط با تایپ
npm installدر چند ثانیه مجدداً ساخته میشود.
- فایل محرمانه
.env(صندوقچه امن):- چرا کلیدهای هوش مصنوعی، رمزهای پایگاه داده و درگاه پرداخت نباید داخل کدهای برنامه هاردکد (Hardcode) شوند.
- تفاوت فایل نمونه
.env.exampleبا فایل اصلی.env.
- مشاهده ساختار پروژه در ترمینال با منوهای کشویی سیستمعاملها:
<details><summary>دستورات در ویندوز (PowerShell / CMD)</summary> ... </details>: دستورdirوtree /F.<details><summary>دستورات در مکاواس (macOS Terminal)</summary> ... </details>: دستورls -laوtree.<details><summary>دستورات در لینوکس (Linux Bash)</summary> ... </details>: دستورls -laو پکیجtree.
- کالاوتهای Quera:
<details class="violet">: کالبدشکافی سریعpackage.json؛ روش حرفهای بررسی یک پروژه جدید در کمتر از ۲ دقیقه.<details class="red">: قانون ممنوعه: هرگز کدهای درون پوشهnode_modulesرا با دست تغییر ندهید چون با اولین آپدیت بازنویسی میشوند!
آنچه نباید وارد آن شویم (Out-of-Scope):
- کانفیگهای پیچیده بیلد مانند Webpack یا Rollup و Vite پلاگینهای تخصصی.
- نوشتن کدهای کامپوننتهای فرانتاند (شروع از فصل ۶).
۳. مفاهیم کلیدی و کلمات تخصصی (Key Concepts & Terms)
| اصطلاح انگلیسی | معادل فارسی مصوب | توضیح یکخطی ساده |
|---|---|---|
| Project Anatomy | آناتومی / ساختار پروژه | معماری و نحوه چیدمان استاندارد فایلها و پوشهها در یک نرمافزار |
| package.json | شناسنامه و مانیفست پروژه | فایل مرکزی در پروژههای جاوااسکریپت که اطلاعات، پکیجها و دستورات اجرایی را فهرست میکند |
| Dependencies | وابستگیها / پکیجهای پیشنیاز | کتابخانهها و ابزارهای خارجی که پروژه شما برای کار کردن به آنها وابسته است |
| node_modules | پوشه پکیجهای نصبشده | پوشه محلی ذخیرهسازی فایلهای کتابخانههای دانلودشده توسط مدیریت پکیج npm |
| Environment Variables (.env) | متغیرهای محیطی | فایل محرمانه نگهداری آدرسها، رمزها و کلیدهای API دور از چشم عموم و کدهای عمومی |
۴. جایگاههای تصاویر و نمودارها (Visual & Diagram Placeholders)
راهنمای ایجنت نویسنده: تمام تصاویر باید در پوشهٔ
images/قرار گرفته و در قالب جدول تکخانهای وسطچین با کپشن تفصیلی درج شوند:
- تصویر کاور درس:
images/cover.png- موضوع: کاور مدرن نمایشدهنده کالبدشکافی شماتیک ساختار درختی فایلها به همراه نورپردازی آیکونهای کد، انبار داده و پوشهها.
- اسکلت و آناتومی پروژه مدرن وب:
images/project-anatomy-skeleton.png- موضوع: تصویر شماتیک بدن یک اپلیکیشن: پوشه
src(قلب و اندامها)، پوشهpublic(لباس و ویترین)،package.json(کارت ملی) وnode_modules(انبار ابزارها).
- موضوع: تصویر شماتیک بدن یک اپلیکیشن: پوشه
- کالبدشکافی فایل
package.json:images/package-json-anatomy.png- موضوع: اسکرینشات برچسبگذاریشده با فلشهای رنگی که بخشهای Scripts، Dependencies و DevDependencies را توضیح میدهد.
- استعاره انبار
node_modulesو بازسازی آن:images/node-modules-warehouse.png- موضوع: تصویر انبار بزرگ قطعات و فلش اجرای دستور
npm installکه نشان میدهد در صورت حذف پوشه، فوراً قابل بازسازی است.
- موضوع: تصویر انبار بزرگ قطعات و فلش اجرای دستور
- صندوقچه امن متغیرهای محیطی (
.env):images/env-secrets-vault.png- موضوع: دیاگرام یک گاوصندوق دیجیتال محرمانه که کلیدهای API را از دید کدهای عمومی و گیتهاب پنهان نگه میدارد.
۵. بخشبندی و ساختار محتوایی پیشنهادی درسنامه (README.md)
- تیتر اصلی:
# ساختار و آناتومی پروژه: رمزگشایی از فایلها و پوشهها - مقدمه: چرا یادگیری نقشه فایلهای پروژه، ترس شما از مواجهه با کدبیسها را برای همیشه از بین میبرد؟
- جدول کاور درس
- چهار ستون تشکیلدهنده یک پروژه وب: مرور پوشههای اصلی
src،public،node_modulesو فایلهای ریشه. - شناسنامه پروژه: کالبدشکافی
package.json:- نام و اسکریپتهای کاربردی (
npm run dev). - لیست وابستگیها و پکیجها.
- نام و اسکریپتهای کاربردی (
- باکس نکته Quera (
<details class="violet">): اولین جایی که یک مهندس حرفهای در یک پروژه ناشناس باز میکند. - اسرار پوشه
node_modules: چرا انقدر بزرگ است؟: استعاره انبار و آموزش دستور نجاتبخشnpm install. - باکس هشدار Quera (
<details class="red">): هرگز فایلهای درونnode_modulesرا ویرایش نکنید! - صندوقچه امن کلیدها: فایل
.env: نحوه نگهداری کلیدهای هوش مصنوعی دور از کدهای مخزن. - دستورات مشاهده ساختار فایلها در ترمینال:
- کشوی ویندوز (Windows).
- کشوی مکاواس (macOS).
- کشوی لینوکس (Linux).
- جمعبندی درسنامه: پایان موفقیتآمیز دروس آموزشی فصل ۳ و آمادهسازی برای آزمون جامع راهاندازی محیط کار.
۶. معیارهای پذیرش (Acceptance Criteria for Reviewer)
- ساختار پوشهها و فایلهای کلیدی (
package.json،node_modules،.env،src،public) بدون ابهام و با زبان ساده تشریح شده باشد. - چرخه حیات
package.jsonو نحوه بازسازی پوشهnode_modulesباnpm installآموزش داده شود. - مفهوم امنیت متغیرهای محیطی در فایل
.envمورد تاکید قرار گیرد. - دستورات ترمینالی در ۳ منوی کشویی مجزا برای سیستمعاملها پیاده شوند.